# 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"], } }