puppet/saslauthd/manifests/init.pp

87 lines
2.2 KiB
Puppet

# Install saslauthd daemon.
#
# === Global variables
#
# $saslauthd_mech:
# Authentication mechanism to use. Defaults to system default.
#
class saslauthd::server {
package { "cyrus-sasl":
ensure => installed,
}
case $saslauthd_mech {
"","pam": { }
"kerberos5": {
package { "cyrus-sasl-gssapi":
ensure => installed,
before => Service["saslauthd"],
}
augeas { "set-saslauthd-mech":
context => "/files/etc/sysconfig/saslauthd",
changes => "set MECH kerberos5",
require => Package["cyrus-sasl"],
notify => Service["saslauthd"],
}
}
default: {
fail("Unknown mechanism ${saslauthd_mech} for saslauthd::server")
}
}
service { "saslauthd":
ensure => running,
enable => true,
require => Package["cyrus-sasl"],
}
file { "/etc/sasldb2":
ensure => present,
mode => "0644",
owner => "root",
group => "root",
require => Exec["generate-sasldb2"],
}
exec { "generate-sasldb2":
command => "saslpasswd2 -d foobar ; true",
path => "/bin:/usr/bin:/sbin:/usr/sbin",
creates => "/etc/sasldb2",
require => Package["cyrus-sasl"],
}
}
# Install saslauthd service config
#
# === Parameters
#
# $name:
# Service name.
#
# === Sample usage
#
# saslauthd::service { "Sendmail": }
#
define saslauthd::service() {
case $architecture {
"i386": { $libdir = "/usr/lib/sasl2" }
"x86_64": { $libdir = "/usr/lib64/sasl2" }
default: { fail("Unknown architecture ${architecture}") }
}
file { "${libdir}/${name}.conf":
ensure => present,
source => [ "puppet:///files/saslauthd/${name}.${fqdn}.conf",
"puppet:///files/saslauthd/${name}.conf",
"puppet:///files/saslauthd/service.conf",
"puppet:///modules/saslauthd/service.conf", ],
mode => "0644",
owner => "root",
group => "root",
require => Service["saslauthd"],
}
}