No description
| .vscode | ||
| defaults | ||
| files | ||
| handlers | ||
| meta | ||
| tasks | ||
| templates | ||
| .gitignore | ||
| README.md | ||
Dovecot
This role installs Dovecot (>= 2.4) with the following features:
- Protocols: IMAP, LMTP, POP, SIEVE
- User quota with quota warning notifications via email
- File based last login information
- Login methods: PLAIN, LOGIN, XOAUTH2
The role does not use the split configuration under conf.d. All settings are managed via dovecot.conf.
Required Variables
In defaults/main.yml you will find most of the required variables.. You should definitly adapt these
variables to you needs. Additionally you need to add these variables:
| Variable | Type | Dovecot setting |
|---|---|---|
dovevot_ssl_server_cert_file |
str | ssl_server_cert_file |
dovecot_ssl_server_key_file |
str | ssl_server_key_file |
dovecot_ssl_server_dh_file |
str | ssl_server_dh_file |
dovecot_quota_warning_mail_from_address |
str | |
ansible_managed |
str |
Authentification
For authentification to work you need to configure passdb and userdb lookups like this:
passdb
dovecot_passdb:
- type: ldap
options:
bind: "no"
filter: '(&(objectClass=mailAccount)(|(|(cn=%{user})(mail=%{user}))(mailAlternateAddress=%{user})))'
fields:
user: "%{ldap:cn}"
password: "%{ldap:userPassword}"
- type: oauth2
options:
active_attribute: "active"
active_value: "true"
force_introspection: "yes"
introspection_url: "https://<client_id>:<client_secret>@auth.example.org/application/o/introspect/"
introspection_mode: "post"
tokeninfo_url: "https://auth.example.org/application/o/userinfo/?access_token="
tls_ca_cert_file: "/etc/ssl/certs/ca-certificates.crt"
username_attribute: "preferred_username"
userdb lookup
dovecot_userdb:
- type: ldap
options:
filter: '(&(objectClass=mailAccount)(|(|(cn=%{user})(mail=%{user}))(mailAlternateAddress=%{user})))'
fields:
user: "%{ldap:cn}"
home: "{{ dovecot_mail_root }}/%{ldap:cn}"
iterate_filter: "(objectClass=mailAccount)"
iterate_fields:
user: "%{ldap:cn}"
LDAP Auth
If you want to use LDAP as an authentification backend you need to configure the LDAP connection:
dovecot_ldap:
ldap_uris:
- "ldap://ldap.example.org"
ldap_base: ou=People,o=server,dc=example,dc=org
Optional Variables
| Variable | Type | Dovecot setting |
|---|---|---|
dovecot_first_valid_uid |
int | first_valid_uid |
dovecot_last_valid_uid |
int | last_valid_uid |
dovecot_login_trusted_networks |
list (int) | login_trusted_networks |
dovecot_enable_mail_crypt |
bool | mail_plugins --> mail_crypt |
Self-signed certificates for local connections
dovecot_local_names:
- name: "dovecot.host"
ssl_server_cert_file: "/etc/ssl/certs/dovecot.host/fullchain.pem"
ssl_server_key_file: "/etc/ssl/certs/dovecot.host/privkey.pem"
Import Environment Variables
dovecot_import_environment:
userli_api_access_token: ""
userli_host: ""
tmpdir: /dovecot-tmp