diff --git a/saslauthd/files/service.conf b/saslauthd/files/service.conf new file mode 100644 index 0000000..74ef83f --- /dev/null +++ b/saslauthd/files/service.conf @@ -0,0 +1 @@ +pwcheck_method:saslauthd diff --git a/saslauthd/manifests/init.pp b/saslauthd/manifests/init.pp new file mode 100644 index 0000000..d7a64a5 --- /dev/null +++ b/saslauthd/manifests/init.pp @@ -0,0 +1,62 @@ +# Install saslauthd daemon. +# +class saslauthd::server { + + package { "cyrus-sasl": + ensure => installed, + } + + 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" } + } + + file { "${libdir}/${name}": + ensure => present, + source => [ "puppet:///files/saslauthd/${name}.${fqdn}", + "puppet:///files/saslauthd/${name}", + "puppet:///files/saslauthd/service.conf", + "puppet:///saslauthd/service.conf", ], + mode => 0644, + owner => root, + group => root, + require => Service["saslauthd"], + } + +}