dovecot
: This class allows simple configuration of the dovecot server.
dovecot::configuration
: This class handles dovecot configuration.dovecot::install
: This class handles packages.dovecot::poolmon
: Installs and configures Poolmon.dovecot::service
: This class handles services.
dovecot::config
: This type manages a single config entry.dovecot::configentry
: Manages a single dovecot config entry.dovecot::configfile
: Manages a single dovecot config filedovecot::extconfigfile
: Resource for external config files providing a very basic key-value interface.dovecot::file
: Simple file resource that notifies the dovecot service.dovecot::sieve
: Simple sieve script resource that gets compiled by sievec and
dovecot::create_config_file_resources
: create {dovecot::config} resources from a nested hash (e.g. from hiera)dovecot::create_config_resources
: create dovecot::config resources from a nested hash (e.g. from hiera)dovecot::create_extconfigfile_resources
: create {dovecot::extconfigfile} resources from a nested hash (e.g. from hiera)dovecot::print_config_value
: returns a properly quoted dovecot config value
There is no semantic abstraction done in this class, all config parameters are passed directly to dovecot via config files.
$config = hiera_hash("${title}::config", {})
$configs = hiera_hash("${title}::configs", {})
$plugins = hiera_array("${title}::plugins", undef)
class { 'dovecot':
plugins => $plugins,
config => $config,
configs => $configs,
}
The following parameters are available in the dovecot
class:
config
config_path
configs
configs_mode
directory_private_manage
extconfigs
extconfigs_mode
package_ensure
package_manage
package_name
plugin
plugins
poolmon_archive_params
poolmon_basepath
poolmon_config
poolmon_config_file
poolmon_exec
poolmon_manage
poolmon_service_enable
poolmon_service_ensure
poolmon_service_file
poolmon_service_mode
poolmon_service_provider
poolmon_version
purge_unmanaged
service_enable
service_ensure
service_manage
service_name
sievec
Data type: Hash
A hash of config file entries, with nested hashes parsed as sections.
Data type: String
The path to the dovecot config dir.
Data type: Hash
A hash of conf.d file names to $config-style hashes.
Data type: String
The file permissions that should be applied.
Data type: Boolean
Whether to manage the private directory.
Data type: Hash
A hash of external config files.
Data type: String
The file permissions that should be applied.
Data type: String
Whether to install the dovecot package, and what version to install. Values: 'present', 'latest', or a specific version number. Default value: 'present'.
Data type: Boolean
Whether to install the dovecot core and plugin packages.
Data type: Array[String]
The name of the main dovecot package.
Data type: Hash
Contains a package_name parameter for each plugin (if available).
Data type: Array[String[1]]
The list of plugins to install.
Data type: Hash
Additional parameters that should be passed through to the archive
resource.
Data type: String
The base path for installing poolmon.
Data type: Hash
A list of config options.
Data type: String
The path and filename of the configuration file.
Data type: String
The path to the poolmon binary.
Data type: Boolean
Whether to manage the poolmon service. Default value: false.
Data type: Boolean
Whether the poolmon service should be configured for automatic startup.
Data type: Enum['running', 'stopped']
The desired state for the service.
Data type: String
The path to the service file.
Data type: String
File permissions for the service file.
Data type: Enum['init', 'rc', 'systemd']
The provider used to handle services, e.g. systemd.
Data type: String
The version of poolmon that should be installed.
Data type: Boolean
Whether to purge all unmanaged files in the dovecot directory.
Data type: Boolean
Whether to enable the dovecot service at boot. Default value: true.
Data type: Enum['running', 'stopped']
Whether the dovecot service should be running. Default value: 'running'.
Data type: Boolean
Whether to manage the dovecot service.
Data type: String
The dovecot service to manage. Default value: varies by operating system.
Data type: Stdlib::Absolutepath
The path to the sievec binary.
Dovecot uses its own config format. This format basically allows to define a hierarchy of configuration sections (and syntactically identical filters, so they will just be treated as sections by this module).
Since in puppet, we want to map each single config entry as its own resource, the hierarchy has been "flattened" to hierarchical keys.
A key/value pair foo = bar
nested in a section
object, would look like
this in a dovecot config file:
section {
foo = bar
}
To reference this key in a dovecot::config variable, you would use the
notation section.foo
.
This module can manage both a global dovecot.conf and single conf.d files. The module author recommends single file setups for puppet-managed hosts, but users can choose to split their managed config into single files.
To specify which file a config entry should got to, you can use the file
parameter.
For convenience reasons, however, this resource also allows to encode the values for $sections, $key, and $file into the resource's name (which is usally the same as its title).
If the $name of the resource matches the format "[:][.]", and all of $file, $sections, and $key have not been specified, the values from the name are used. This simplifies creating unique resources for identical settings in different files.
The following parameters are available in the dovecot::config
defined type:
Data type: Optional[Array[String]]
An array of section names that define the hierarchical name of this key.
E.g. ["protocol imap", "plugin"] to denote the
protocol imap { plugin {` section.
Default value: undef
Data type: Optional[String]
The key name of the config setting. The key is expected as a single non-hierachical
name without any sections/filters.
The special values !include
and !include_try
can be used for includes.
Default value: undef
Data type: Optional[String]
The file to put the value in. If undef (the default), the value is put into the
global dovecot.conf, otherwise the value si written to conf.d/${file}.conf
The value of this parameter must not include any path information or file extension.
E.g. 10-auth
Default value: undef
Data type: Variant[Boolean, Integer, String]
the value of this config entry.
Data type: Optional[String]
an optional comment that will be written to the config file above the entry
Default value: undef
Data type: Enum['present', 'absent']
whether this entry should be present
or absent
. Usually not needed at all,
because the config file will be fully managed by puppet and re-created each time.
Default value: 'present'
Manages a single dovecot config entry.
-
Note This class is only for internal use, use dovecot::config instead.
-
See also
- dovecot::config
The following parameters are available in the dovecot::configentry
defined type:
Data type: Optional[String]
an optional comment to be printed above the entry
Default value: undef
Data type: Enum['present', 'absent']
Whether the entry should be present
or absent
.
Default value: 'present'
Data type: Stdlib::Absolutepath
The file to put the entry in.
Data type: String
The entry's key, or !include/!include_try.
Data type: Array[String]
The entry's sections as an array.
Default value: []
Data type: Variant[Boolean, Integer, String]
The entry's value.
Manages a single dovecot config file
-
Note This define is only for internal use, use dovecot::config instead.
-
See also
- dovecot::config
The following parameters are available in the dovecot::configfile
defined type:
Data type: Optional[String]
An optional comment to be printed at the top of the file instead of the default warning.
Default value: undef
Data type: Enum['present', 'absent']
Whether the file should be present
or absent
.
Default value: 'present'
Data type: Stdlib::Absolutepath
The file to put the entry in.
Default value: $title
Data type: Variant[Integer, String]
The group that should own the file.
Default value: 0
Data type: Variant[Integer, String]
The permissions for the file.
Default value: $dovecot::configs_mode
Data type: Variant[Integer, String]
The user that should own the file.
Default value: 'root'
Resource for external config files providing a very basic key-value interface.
The following parameters are available in the dovecot::extconfigfile
defined type:
Data type: Optional[String]
Additional content for the file.
Default value: undef
Data type: Hash[String, String]
A hash of string=string entries. All values will be written as-is to the file, any escaping must already be applied.
Data type: Variant[Integer, String]
The group that should own the file.
Default value: 0
Data type: Variant[Integer, String]
The permissions for the file.
Default value: $dovecot::extconfigs_mode
Data type: Variant[Integer, String]
The user that should own the file.
Default value: 'root'
Data type: String
The path of the external config file relative to dovecot::config_path, including the desired extension. Defaults to the resource title.
Default value: $title
Data type: Variant[Boolean, String]
Whether to prepend the default warning (if true
), a
custom warning (if a String
), or nothing at all.
Default value: true
Simple file resource that notifies the dovecot service.
The following parameters are available in the dovecot::file
defined type:
Data type: String
The content of the file.
Data type: Variant[Integer, String]
The group that should own the file.
Default value: 0
Data type: Variant[Integer, String]
The permissions for the file.
Default value: '0644'
Data type: Variant[Integer, String]
The user that should own the file.
Default value: 'root'
Data type: Stdlib::Absolutepath
The target path for the file.
notifies the dovecot service.
The following parameters are available in the dovecot::sieve
defined type:
Data type: String
The content of the file.
Default value: undef
Data type: Variant[Integer, String]
The group that should own the file.
Default value: 0
Data type: Variant[Integer, String]
The permissions for the file.
Default value: '0644'
Data type: Variant[Integer, String]
The user that should own the file.
Default value: 'root'
Data type: Stdlib::Absolutepath
The target path for the file.
Default value: $name
Data type: Stdlib::Absolutepath
The path to the sievec binary.
Default value: $dovecot::sievec
Data type: Optional[String]
Optional source for the file resource to use instead of $content
.
Default value: undef
Type: Puppet Language
Create {dovecot::config} resources from a nested hash, suitable for conveniently loading values from hiera.
The first level of keys is the config files to be written to, the values being the hierarchical values that will be passed to the {dovecot::create_config_resources} function
dovecot::create_config_file_resources(Hash[String, Hash] $configfile_hash, Boolean $include_in_main_config = true, Hash $params = {})
Create {dovecot::config} resources from a nested hash, suitable for conveniently loading values from hiera.
The first level of keys is the config files to be written to, the values being the hierarchical values that will be passed to the {dovecot::create_config_resources} function
Returns: Any
Data type: Hash[String, Hash]
a hash of config file names mapped to config hashes
Data type: Boolean
whether the single config files should be included from dovecot.conf
Data type: Hash
a hash of params passed to the {dovecot::config} resource (:file will be overridden)
Type: Puppet Language
Create dovecot::config resources from a nested hash, suitable for conveniently loading values from hiera. The key-value pairs from the hash represent config keys and values passed to dovecot::config for simple values, Hash values recursively create nested sections, and Array values are joined with spaces.
dovecot::create_config_resources(Hash[String, NotUndef] $config_hash, Hash $params = {}, Array[String] $sections = [])
Create dovecot::config resources from a nested hash, suitable for conveniently loading values from hiera. The key-value pairs from the hash represent config keys and values passed to dovecot::config for simple values, Hash values recursively create nested sections, and Array values are joined with spaces.
Returns: Any
Data type: Hash[String, NotUndef]
a hash of (non-hierarchical) key names mapped to values
Data type: Hash
a hash of params passed to dovecot::config (must not include :sections, :key, or :value)
Data type: Array[String]
the section names of the hierarchical key, will usually only be specified on recursive calls from within this function itself
Type: Puppet Language
Create {dovecot::extconfigfile} resources from a nested hash, suitable for conveniently loading values from hiera.
The first level of keys is the config files to be written to, the values being the hierarchical values that will be passed to the extconfigfile resource.
Values can either be a Hash[String, String], or a hash containing two properties
entries
and additional_content
.
Create {dovecot::extconfigfile} resources from a nested hash, suitable for conveniently loading values from hiera.
The first level of keys is the config files to be written to, the values being the hierarchical values that will be passed to the extconfigfile resource.
Values can either be a Hash[String, String], or a hash containing two properties
entries
and additional_content
.
Returns: Any
Data type: Hash[String, Hash]
a hash of config file names mapped to config hashes
Type: Puppet Language
Returns: Any
the formatted config value suitable for inclusion in a dovecot config file
Data type: Any
the value to be printed