--- - name: Install needed packages become: true ansible.builtin.apt: name: - dovecot-pgsql - dovecot-imapd - dovecot-managesieved - dovecot-lmtpd - name: Create a LV for /var/vmail become: true community.general.lvol: vg: "vg_{{ ansible_hostname }}" lv: vmail state: present size: 5g resizefs: true - name: Format vmail LV to ext4 become: true community.general.filesystem: dev: "/dev/vg_{{ ansible_hostname }}/vmail" fstype: ext4 resizefs: true state: present - name: Mount /var/vmail become: true ansible.posix.mount: src: "/dev/vg_{{ ansible_hostname }}/vmail" path: /var/vmail state: mounted fstype: ext4 - name: Create vmail group become: true ansible.builtin.group: name: vmail gid: 5000 state: present - name: Create vmail user become: true ansible.builtin.user: name: vmail uid: 5000 group: vmail home: /var/vmail create_home: false state: present - name: Set ownership for /var/vmail become: true ansible.builtin.file: path: /var/vmail state: directory owner: vmail group: vmail recurse: true - name: Add login to auth_mechanisms become: true ansible.builtin.lineinfile: path: /etc/dovecot/conf.d/10-auth.conf regexp: '^auth_mechanisms =.*' line: auth_mechanisms = plain login notify: Reload dovecot service - name: Remove system auth become: true ansible.builtin.lineinfile: path: /etc/dovecot/conf.d/10-auth.conf regexp: '^#?\!include auth-system.conf.ext' line: '#!include auth-system.conf.ext' notify: Reload dovecot service - name: Add SQL auth become: true ansible.builtin.lineinfile: path: /etc/dovecot/conf.d/10-auth.conf regexp: '^#?\!include auth-sql.conf.ext' line: '!include auth-sql.conf.ext' notify: Reload dovecot service - name: Configure mail_location become: true ansible.builtin.lineinfile: path: /etc/dovecot/conf.d/10-mail.conf regexp: '^mail_location =.*' line: 'mail_location = maildir:~/Maildir' notify: Reload dovecot service - name: Add quota plugin become: true ansible.builtin.lineinfile: path: /etc/dovecot/conf.d/10-mail.conf regexp: '^#?mail_plugins =.*' line: 'mail_plugins = quota' notify: Reload dovecot service - name: Add postfix auth socket config become: true ansible.builtin.blockinfile: path: /etc/dovecot/conf.d/10-master.conf block: | {% filter indent(width=2, first=true) %} unix_listener /var/spool/postfix/private/auth { mode = 0600 user = postfix group = postfix } {% endfilter %} insertafter: '# Postfix smtp-auth' marker: " # {mark} ANSIBLE MANAGED BLOCK AUTH" notify: Reload dovecot service - name: Add postfix lmtp socket config become: true ansible.builtin.blockinfile: path: /etc/dovecot/conf.d/10-master.conf block: | {% filter indent(width=2, first=true) %} unix_listener /var/spool/postfix/private/dovecot-lmtp { mode = 0600 user = postfix group = postfix } {% endfilter %} insertafter: 'service lmtp' marker: " # {mark} ANSIBLE MANAGED BLOCK LMTP" notify: Reload dovecot service - name: Add ssl cert and key config become: true loop: - regexp: '^ssl_cert =.*' line: "ssl_cert =