fix: Dovecot in Debian Trixie => 2.4 has add / deprecated configurations
All checks were successful
Molecule Tests / molecule-tests (pull_request) Successful in 7m18s
All checks were successful
Molecule Tests / molecule-tests (pull_request) Successful in 7m18s
This commit is contained in:
@@ -1,4 +1,5 @@
|
|||||||
FROM docker.io/library/debian:stable
|
ARG MOLECULE_DISTRO=docker.io/library/debian:stable
|
||||||
|
FROM ${MOLECULE_DISTRO}
|
||||||
|
|
||||||
RUN apt-get update && \
|
RUN apt-get update && \
|
||||||
apt-get install -y --no-install-recommends \
|
apt-get install -y --no-install-recommends \
|
||||||
|
|||||||
@@ -2,5 +2,10 @@
|
|||||||
---
|
---
|
||||||
- name: Converge
|
- name: Converge
|
||||||
hosts: all
|
hosts: all
|
||||||
|
vars:
|
||||||
|
postfix_mail_domain: "test.local"
|
||||||
|
dovecot_users:
|
||||||
|
- name: "testuser"
|
||||||
|
pass: "testpass"
|
||||||
roles:
|
roles:
|
||||||
- role: ansible_role_mail
|
- role: ansible_role_mail
|
||||||
|
|||||||
@@ -13,6 +13,8 @@ platforms:
|
|||||||
image: docker.io/library/debian:stable
|
image: docker.io/library/debian:stable
|
||||||
pre_build_image: false
|
pre_build_image: false
|
||||||
dockerfile: Dockerfile
|
dockerfile: Dockerfile
|
||||||
|
buildargs:
|
||||||
|
MOLECULE_DISTRO: docker.io/library/debian:stable
|
||||||
privileged: true
|
privileged: true
|
||||||
systemd: always
|
systemd: always
|
||||||
command: /usr/sbin/init
|
command: /usr/sbin/init
|
||||||
@@ -21,6 +23,8 @@ platforms:
|
|||||||
image: docker.io/library/debian:oldstable
|
image: docker.io/library/debian:oldstable
|
||||||
pre_build_image: false
|
pre_build_image: false
|
||||||
dockerfile: Dockerfile
|
dockerfile: Dockerfile
|
||||||
|
buildargs:
|
||||||
|
MOLECULE_DISTRO: docker.io/library/debian:oldstable
|
||||||
privileged: true
|
privileged: true
|
||||||
systemd: always
|
systemd: always
|
||||||
command: /usr/sbin/init
|
command: /usr/sbin/init
|
||||||
@@ -29,6 +33,8 @@ platforms:
|
|||||||
image: docker.io/library/ubuntu:latest
|
image: docker.io/library/ubuntu:latest
|
||||||
pre_build_image: false
|
pre_build_image: false
|
||||||
dockerfile: Dockerfile
|
dockerfile: Dockerfile
|
||||||
|
buildargs:
|
||||||
|
MOLECULE_DISTRO: docker.io/library/ubuntu:latest
|
||||||
privileged: true
|
privileged: true
|
||||||
systemd: always
|
systemd: always
|
||||||
command: /usr/sbin/init
|
command: /usr/sbin/init
|
||||||
@@ -37,6 +43,8 @@ platforms:
|
|||||||
image: docker.io/library/ubuntu:jammy
|
image: docker.io/library/ubuntu:jammy
|
||||||
pre_build_image: false
|
pre_build_image: false
|
||||||
dockerfile: Dockerfile
|
dockerfile: Dockerfile
|
||||||
|
buildargs:
|
||||||
|
MOLECULE_DISTRO: docker.io/library/ubuntu:jammy
|
||||||
privileged: true
|
privileged: true
|
||||||
systemd: always
|
systemd: always
|
||||||
command: /usr/sbin/init
|
command: /usr/sbin/init
|
||||||
|
|||||||
@@ -62,13 +62,16 @@
|
|||||||
owner: root
|
owner: root
|
||||||
group: root
|
group: root
|
||||||
mode: '0644'
|
mode: '0644'
|
||||||
|
register: virtual_mailbox_maps_template
|
||||||
notify: Restart Postfix
|
notify: Restart Postfix
|
||||||
tags:
|
tags:
|
||||||
- postfix_config
|
- postfix_config
|
||||||
- dovecot_config
|
- dovecot_config
|
||||||
|
|
||||||
- name: "POSTFIX | Create hash map for virtual mailbox maps"
|
- name: "POSTFIX | Create hash map for virtual mailbox maps"
|
||||||
when: dovecot_enabled | default(false) and dovecot_postfix_lmtp_enable | default(false)
|
when:
|
||||||
|
- dovecot_enabled | default(false) and dovecot_postfix_lmtp_enable | default(false)
|
||||||
|
- virtual_mailbox_maps_template.changed
|
||||||
ansible.builtin.command:
|
ansible.builtin.command:
|
||||||
cmd: postmap hash:/etc/postfix/virtual_mailbox_maps
|
cmd: postmap hash:/etc/postfix/virtual_mailbox_maps
|
||||||
changed_when: true
|
changed_when: true
|
||||||
@@ -168,6 +171,22 @@
|
|||||||
tags:
|
tags:
|
||||||
- dovecot_config
|
- dovecot_config
|
||||||
|
|
||||||
|
- name: "DOVECOT | Detect Dovecot version"
|
||||||
|
when: dovecot_enabled | default(false)
|
||||||
|
ansible.builtin.shell:
|
||||||
|
cmd: "dovecot --version | awk '{print $1}' | cut -d'(' -f1"
|
||||||
|
register: dovecot_version_raw
|
||||||
|
changed_when: false
|
||||||
|
tags:
|
||||||
|
- dovecot_config
|
||||||
|
|
||||||
|
- name: "DOVECOT | Set Dovecot major version fact"
|
||||||
|
when: dovecot_enabled | default(false)
|
||||||
|
ansible.builtin.set_fact:
|
||||||
|
dovecot_major_version: "{{ dovecot_version_raw.stdout.split('.')[0] | int }}.{{ dovecot_version_raw.stdout.split('.')[1] | int }}"
|
||||||
|
tags:
|
||||||
|
- dovecot_config
|
||||||
|
|
||||||
- name: "DOVECOT | Configure dovecot.conf"
|
- name: "DOVECOT | Configure dovecot.conf"
|
||||||
when: dovecot_enabled | default(false)
|
when: dovecot_enabled | default(false)
|
||||||
ansible.builtin.template:
|
ansible.builtin.template:
|
||||||
|
|||||||
@@ -1,7 +1,11 @@
|
|||||||
# Dovecot authentication configuration
|
# Dovecot authentication configuration
|
||||||
# Ansible managed: {{ ansible_managed }}
|
# Ansible managed: {{ ansible_managed }}
|
||||||
|
|
||||||
|
{% if dovecot_major_version is defined and dovecot_major_version is version('2.4', '>=') %}
|
||||||
|
auth_allow_cleartext = {{ 'no' if dovecot_ssl == 'required' else 'yes' }}
|
||||||
|
{% else %}
|
||||||
disable_plaintext_auth = {{ 'yes' if dovecot_ssl == 'required' else 'no' }}
|
disable_plaintext_auth = {{ 'yes' if dovecot_ssl == 'required' else 'no' }}
|
||||||
|
{% endif %}
|
||||||
auth_mechanisms = {{ dovecot_auth_mechanisms }}
|
auth_mechanisms = {{ dovecot_auth_mechanisms }}
|
||||||
|
|
||||||
!include auth-dovecot-users.conf.ext
|
!include auth-dovecot-users.conf.ext
|
||||||
|
|||||||
@@ -1,7 +1,13 @@
|
|||||||
# Dovecot mail location configuration
|
# Dovecot mail location configuration
|
||||||
# Ansible managed: {{ ansible_managed }}
|
# Ansible managed: {{ ansible_managed }}
|
||||||
|
{% if dovecot_major_version is defined and dovecot_major_version is version('2.4', '>=') %}
|
||||||
|
{% set _driver = dovecot_mail_location.split(':')[0] %}
|
||||||
|
{% set _path = dovecot_mail_location.split(':')[1] %}
|
||||||
|
mail_driver = {{ _driver }}
|
||||||
|
mail_path = {{ _path }}
|
||||||
|
{% else %}
|
||||||
mail_location = {{ dovecot_mail_location }}
|
mail_location = {{ dovecot_mail_location }}
|
||||||
|
{% endif %}
|
||||||
namespace inbox {
|
namespace inbox {
|
||||||
inbox = yes
|
inbox = yes
|
||||||
|
|
||||||
|
|||||||
@@ -2,5 +2,10 @@
|
|||||||
# Ansible managed: {{ ansible_managed }}
|
# Ansible managed: {{ ansible_managed }}
|
||||||
|
|
||||||
ssl = {{ dovecot_ssl }}
|
ssl = {{ dovecot_ssl }}
|
||||||
|
{% if dovecot_major_version is defined and dovecot_major_version is version('2.4', '>=') %}
|
||||||
|
ssl_server_cert_file = {{ mail_ssl_cert }}
|
||||||
|
ssl_server_key_file = {{ mail_ssl_key }}
|
||||||
|
{% else %}
|
||||||
ssl_cert = <{{ mail_ssl_cert }}
|
ssl_cert = <{{ mail_ssl_cert }}
|
||||||
ssl_key = <{{ mail_ssl_key }}
|
ssl_key = <{{ mail_ssl_key }}
|
||||||
|
{% endif %}
|
||||||
|
|||||||
@@ -1,5 +1,21 @@
|
|||||||
# Dovecot local users authentication
|
# Dovecot local users authentication
|
||||||
# Ansible managed: {{ ansible_managed }}
|
# Ansible managed: {{ ansible_managed }}
|
||||||
|
{% if dovecot_major_version is defined and dovecot_major_version is version('2.4', '>=') %}
|
||||||
|
|
||||||
|
passdb passwd-file {
|
||||||
|
default_password_scheme = SHA512-CRYPT
|
||||||
|
auth_username_format = %{user|username}
|
||||||
|
passwd_file_path = /etc/dovecot/users
|
||||||
|
}
|
||||||
|
|
||||||
|
userdb static {
|
||||||
|
fields {
|
||||||
|
uid = vmail
|
||||||
|
gid = vmail
|
||||||
|
home = /var/vmail/%{user|username}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
{% else %}
|
||||||
|
|
||||||
passdb {
|
passdb {
|
||||||
driver = passwd-file
|
driver = passwd-file
|
||||||
@@ -10,3 +26,4 @@ userdb {
|
|||||||
driver = static
|
driver = static
|
||||||
args = uid=vmail gid=vmail home=/var/vmail/%n
|
args = uid=vmail gid=vmail home=/var/vmail/%n
|
||||||
}
|
}
|
||||||
|
{% endif %}
|
||||||
|
|||||||
@@ -1,5 +1,9 @@
|
|||||||
# Dovecot configuration file
|
# Dovecot configuration file
|
||||||
# Ansible managed: {{ ansible_managed }}
|
# Ansible managed: {{ ansible_managed }}
|
||||||
|
{% if dovecot_major_version is defined and dovecot_major_version is version('2.4', '>=') %}
|
||||||
|
dovecot_config_version = 2.4.0
|
||||||
|
dovecot_storage_version = 2.4.0
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
protocols = {{ dovecot_protocols }}
|
protocols = {{ dovecot_protocols }}
|
||||||
{% if dovecot_imap_capability | default('') | length > 0 %}
|
{% if dovecot_imap_capability | default('') | length > 0 %}
|
||||||
|
|||||||
Reference in New Issue
Block a user