ansible-role-dbmail/tasks/install.yml

96 lines
2.6 KiB
YAML

---
- name: Set list of required software
set_fact:
required_software:
- libsieve2-1
- libzdb11
- libglib2.0-dev
- libgmime-3.0-dev
- libsieve2-dev
- libmhash-dev
- libzdb-dev
- libevent-dev
- libldap-dev
- libssl-dev
- asciidoc
- python3-pymysql
- name: Ensure required software is installed
package:
name: "{{ required_software }}"
- name: Ensure log folder exists
file:
path: "{{ dbmail_logfolder }}"
state: directory
#owner: ???
#group: ???
- name: Download source
get_url:
url: "https://github.com/dbmail/dbmail/archive/refs/tags/v{{ dbmail_version }}.tar.gz"
dest: "/tmp/dbmail.{{ dbmail_version }}.tar.gz"
- name: Decompress source
unarchive:
remote_src: true
src: "/tmp/dbmail.{{ dbmail_version }}.tar.gz"
dest: /usr/src
creates: "/usr/src/dbmail-{{ dbmail_version }}/configure"
- name: Compile source
shell: "/usr/src/dbmail-{{ dbmail_version }}/configure --with-zdb=/usr --with-sieve --with-ldap --localstatedir=/var/run/dbmail --runstatedir=/run/dbmail --enable-systemd --enable-manpages --sysconfdir=/etc/dbmail --with-logdir={{ dbmail_logfolder }}"
args:
chdir: "/usr/src/dbmail-{{ dbmail_version }}/"
creates: "/usr/src/dbmail-{{ dbmail_version }}/Makefile"
- name: Make source
shell: "make"
args:
chdir: "/usr/src/dbmail-{{ dbmail_version }}/"
creates: "/usr/src/dbmail-{{ dbmail_version }}/src/dbmail-imapd"
- name: Make installation
shell: "make install"
args:
chdir: "/usr/src/dbmail-{{ dbmail_version }}/"
creates: /usr/local/sbin/dbmail-imapd
- name: Copy cron task
copy:
remote_src: true
src: "/usr/src/dbmail-{{ dbmail_version }}/debian/dbmail.cron.d"
dest: /etc/cron.d/dbmail-util
- name: Copy logrotate configuration
copy:
remote_src: true
src: "/usr/src/dbmail-{{ dbmail_version }}/debian/dbmail.logrotate"
dest: /etc/logrotate.d/dbmail
- name: Ensure dbmail group exists
group:
name: "{{ dbmail_group }}"
- name: Ensure dbmail user exists
user:
name: "{{ dbmail_user }}"
group: "{{ dbmail_group }}"
shell: /dev/null
- name: Set properties of service unit
set_fact:
unit_description: 'DBMail HTTP daemon to manage user mailbox'
unit_exec_start: '/usr/local/sbin/dbmail-httpd -D'
- name: Ensure dbmail-httpd service unit is present
template:
src: templates/service.unit.j2
dest: /etc/systemd/system/dbmail-httpd.service
- name: Ensure DBMail HTTP service is enabled
ansible.builtin.systemd:
state: started
daemon_reload: true
enabled: true
name: dbmail-httpd