From 8cce1ff3e54c89dbfb80851cf51dfbb7232f2d76 Mon Sep 17 00:00:00 2001 From: Dmitry Ilvokhin Date: Sat, 6 Apr 2024 19:51:43 +0100 Subject: Add dovecot role --- roles/dovecot/files/dovecot.conf | 74 ++++++++++++++++++++++++++++++++++++++++ roles/dovecot/files/dovecot.sh | 3 ++ roles/dovecot/files/users | 12 +++++++ roles/dovecot/handlers/main.yml | 7 ++++ roles/dovecot/meta/main.yml | 2 ++ roles/dovecot/tasks/main.yml | 63 ++++++++++++++++++++++++++++++++++ 6 files changed, 161 insertions(+) create mode 100644 roles/dovecot/files/dovecot.conf create mode 100644 roles/dovecot/files/dovecot.sh create mode 100644 roles/dovecot/files/users create mode 100644 roles/dovecot/handlers/main.yml create mode 100644 roles/dovecot/meta/main.yml create mode 100644 roles/dovecot/tasks/main.yml (limited to 'roles/dovecot') diff --git a/roles/dovecot/files/dovecot.conf b/roles/dovecot/files/dovecot.conf new file mode 100644 index 0000000..35e8c3f --- /dev/null +++ b/roles/dovecot/files/dovecot.conf @@ -0,0 +1,74 @@ +# Protocols we want to be serving. +protocols = imap pop3 + +# Path to the mail directory. +mail_location = maildir:/var/mail/%d/%n/Maildir + +# Path to SSL certificate files. +ssl_cert = /dev/null diff --git a/roles/dovecot/meta/main.yml b/roles/dovecot/meta/main.yml new file mode 100644 index 0000000..f645703 --- /dev/null +++ b/roles/dovecot/meta/main.yml @@ -0,0 +1,2 @@ +dependencies: + - role: certmail diff --git a/roles/dovecot/tasks/main.yml b/roles/dovecot/tasks/main.yml new file mode 100644 index 0000000..3ed1a46 --- /dev/null +++ b/roles/dovecot/tasks/main.yml @@ -0,0 +1,63 @@ +- name: Install dovecot + ansible.builtin.package: + name: + - dovecot + state: present + +- name: Create vmail group + ansible.builtin.group: + name: vmail + gid: 5000 + state: present + +- name: Create vmail user + ansible.builtin.user: + name: vmail + uid: 5000 + group: vmail + shell: /usr/bin/nologin + state: present + +- name: Setup dovecot config directory + ansible.builtin.file: + path: /etc/dovecot + state: directory + owner: root + group: root + mode: u+rw,g+r,o+r + +# Note: use `doveadm pw -s SHA512-CRYPT` to generate a new password. +- name: Copy dovecot passwd file + ansible.builtin.copy: + src: files/users + dest: /etc/dovecot/passwd + owner: root + group: root + mode: u+rw,g+r,o+r + notify: + - Reload dovecot + +- name: Configure dovecot + ansible.builtin.copy: + src: files/dovecot.conf + dest: /etc/dovecot/dovecot.conf + owner: root + group: root + mode: u+rw,g+r,o+r + notify: + - Check dovecot + - Reload dovecot + +- name: Copy dovecot certificate renewal hook + ansible.builtin.copy: + src: files/dovecot.sh + dest: /etc/letsencrypt/renewal-hooks/deploy/dovecot.sh + owner: root + group: root + mode: u+rwx,g+r,o+r + +- name: Enable dovecot systemd service + ansible.builtin.service: + name: dovecot + enabled: yes + state: started -- cgit v1.2.3-70-g09d2