diff --git a/REFERENCE.md b/REFERENCE.md index bbc59bf3..52767c43 100644 --- a/REFERENCE.md +++ b/REFERENCE.md @@ -100,6 +100,7 @@ The following parameters are available in the `postfix` class: * [`ldap_base`](#-postfix--ldap_base) * [`ldap_host`](#-postfix--ldap_host) * [`ldap_options`](#-postfix--ldap_options) +* [`ldap_packages`](#-postfix--ldap_packages) * [`lookup_table_type`](#-postfix--lookup_table_type) * [`mail_user`](#-postfix--mail_user) * [`mailman`](#-postfix--mailman) @@ -257,6 +258,14 @@ Example: `start_tls = yes`. Default value: `undef` +##### `ldap_packages` + +Data type: `Array[String[1]]` + +An array of package names to install for LDAP support if $ldap is true. + +Default value: `[]` + ##### `lookup_table_type` Data type: `String` diff --git a/data/osfamily/Debian.yaml b/data/osfamily/Debian.yaml index b4bd741b..006d43d7 100644 --- a/data/osfamily/Debian.yaml +++ b/data/osfamily/Debian.yaml @@ -1,4 +1,5 @@ --- postfix::params::mailx_package: 'bsd-mailx' postfix::params::master_os_template: 'postfix/master.cf.debian.erb' +postfix::ldap_packages: ['postfix-ldap'] ... diff --git a/data/osfamily/RedHat/9.yaml b/data/osfamily/RedHat/9.yaml index d3c6617b..33c39359 100644 --- a/data/osfamily/RedHat/9.yaml +++ b/data/osfamily/RedHat/9.yaml @@ -1,3 +1,4 @@ --- postfix::params::mailx_package: 's-nail' +postfix::ldap_packages: ['postfix-ldap'] diff --git a/manifests/init.pp b/manifests/init.pp index eb012871..e46057ed 100644 --- a/manifests/init.pp +++ b/manifests/init.pp @@ -86,6 +86,9 @@ # A free form string that can define any LDAP options to be passed through (ldap_table(5)). # Example: `start_tls = yes`. # +# @param ldap_packages +# An array of package names to install for LDAP support if $ldap is true. +# # @param lookup_table_type # Table format type as described in http://www.postfix.org/DATABASE_README.html#types. # Type has to be supported by system, see "postconf -m" for supported types. @@ -262,6 +265,7 @@ Optional[String] $ldap_base = undef, Optional[String] $ldap_host = undef, Optional[String] $ldap_options = undef, + Array[String[1]] $ldap_packages = [], String $lookup_table_type = 'hash', String $mail_user = 'vmail', # postfix_mail_user Boolean $mailman = false, diff --git a/manifests/ldap.pp b/manifests/ldap.pp index df3077fb..76a80086 100644 --- a/manifests/ldap.pp +++ b/manifests/ldap.pp @@ -8,11 +8,9 @@ assert_type(String, $postfix::ldap_host) assert_type(String, $postfix::ldap_options) - if $facts['os']['family'] == 'Debian' or ($facts['os']['family'] == 'RedHat' and $facts['os']['release']['major'] >= '8') { - package { 'postfix-ldap': - ensure => installed, - before => File["${postfix::confdir}/ldap-aliases.cf"], - } + package { $postfix::ldap_packages: + ensure => installed, + before => File["${postfix::confdir}/ldap-aliases.cf"], } if ! $postfix::ldap_base {