Version information
This version is compatible with:
- Puppet Enterprise 2023.5.x, 2023.4.x, 2023.3.x, 2023.2.x, 2023.1.x, 2023.0.x, 2021.7.x, 2021.6.x, 2021.5.x, 2021.4.x, 2021.3.x, 2021.2.x, 2021.1.x, 2021.0.x, 2019.8.x, 2019.7.x, 2019.5.x, 2019.4.x, 2019.3.x, 2019.2.x, 2019.1.x, 2019.0.x, 2018.1.x, 2017.3.x, 2017.2.x, 2017.1.x, 2016.5.x, 2016.4.x
- Puppet >= 3.8.0
- , , , , ,
Start using this module
Add this module to your Puppetfile:
mod 'eyp-dovecot', '0.1.12'
Learn more about managing modules with a PuppetfileDocumentation
dovecot
Table of Contents
Overview
basic dovecot installation
Module Description
This module is intended to be used by eyp-postfix to setup a virtual domains for postfix using SASL authentication. Anyway, it can also be used to configure dovecot as a standalone service but eyp-postfix is a dependency
Setup
What dovecot affects
- package management
- service management
- configuration management:
- general config file: /etc/dovecot/dovecot.conf
- local usernames (default: /etc/dovecot/passwd)
Setup Requirements
This module requires pluginsync enabled.
dovecot::mail_location is a prerequisite to be able to deploy dovecot
Beginning with dovecot
basic setup (dovecot with SASL authentication using a file to store passwords):
class { 'dovecot': }
class { 'dovecot::userdb': }
class { 'dovecot::passdb': }
class { 'dovecot::auth': }
class { 'dovecot::auth::unixlistener': }
class { 'dovecot::imaplogin': }
dovecot::account { 'demo@demo.systemadmin.es':
password => 'demopassw0rd',
}
Usage
Right now does not support may options, it's intended to be in a small MTA server (for example, does not support LDAP auth)
Reference
classes
dovecot
docvecot installation and basic configuration:
- manage_package: = true,
- package_ensure: = 'installed',
- manage_service: = true,
- manage_docker_service: = true,
- service_ensure: = 'running',
- service_enable: = true,
- listen: = [ * ],
- login_greeting: = 'ready to rock',
- verbose_proctitle: = true,
- shutdown_clients: = true,
- protocols: = [ 'imap', 'lmtp' ],
- disable_plaintext_auth: = false,
- auth_mechanisms: = [ 'plain', 'login' ],
- mail_access_groups: = 'postfix',
- default_login_user: = 'postfix',
- first_valid_uid: = $dovecot::params::postfix_username_uid_default,
- first_valid_gid: = $dovecot::params::postfix_username_gid_default,
- mail_location: = 'maildir:/var/vmail/%d/%n',
- ssl: = false,
- base_dir: = '/var/run/dovecot/',
- imap_idle_notify_interval_minutes: = '2',
dovecot::auth
service auth:
- user: (default: root)
dovecot::auth::unixlistener
- user: = $dovecot::default_login_user,
- group: = $dovecot::mail_access_groups,
- mode: = '0660',
- socket: = 'auth-client',
dovecot::imaplogin
- process_min_avail: = $::processorcount,
- user: = $dovecot::default_login_user,
dovecot::passdb
- driver: = 'passwd-file',
- scheme: = 'SHA1',
- passwdfile: = $dovecot::params::passwdfile_default,
dovecot::userdb
- driver: = 'static',
- uid: = $dovecot::params::postfix_username_uid_default,
- gid: = $dovecot::params::postfix_username_gid_default,
- home: = '/var/vmail/%d/%n',
- allow_all_users: = true,
defines
dovecot::account
- password:,
- account: = $name,
- passwdfile: = $dovecot::params::passwdfile_default,
- password_scheme: = 'sha1',
Limitations
Tested on:
- CentOS 6
- CentOS 7
- Ubuntu 14.04
- Ubuntu 16.04
Development
We are pushing to have acceptance testing in place, so any new feature should have some test to check both presence and absence of any feature
TODO
- lots of dovecot functionalities still needs to be implemented in this module
Contributing
- Fork it
- Create your feature branch (
git checkout -b my-new-feature
) - Commit your changes (
git commit -am 'Added some feature'
) - Push to the branch (
git push origin my-new-feature
) - Create new Pull Request
CHANGELOG
0.1.12
- Added Ubuntu 18.04 support
0.1.11
- added password_scheme to dovecot::account
0.1.10
- process_min_avail is set to the number of CPU cores in the system
0.1.9
- added dovecot-lmtpd as a default installed package in Ubuntu 14.04 and 16.04
0.1.8
- added Ubuntu 16.04 support
0.1.7
- added imap_idle_notify_interval in minutes using variable imap_idle_notify_interval_minutes
0.1.4
- ubuntu 14.04 support
0.1.3
- bugfix for new installs - bandcamp contribution: https://github.com/NTTCom-MS/eyp-dovecot/pull/3
0.1.2
- added dependency for dovecot::account
0.1.1
- added socket variable for dovecot::auth::unix-listener
- base_dir management
0.1.0
- initial release
Dependencies
- puppetlabs/stdlib (>= 1.0.0)
- eyp/eyplib (>= 0.1.0 < 0.2.0)
- eyp/postfix (>= 0.2.15 < 0.3.0)
- puppetlabs/concat (>= 1.2.3)