not all of our LDAP servers were under supervision, so we wrapped it in the following define:
define ldap_service($supervise=false) {
if($supervise) {
service { "${name}":
provider => daemontools,
require => [ File["service-${name}"], File["slapd.conf"], File["ldap-${fqdn}.cert"], ],
ensure => running,
enable => true,
}
supervise::link { "slapd":
target => "/etc/service.d/slapd",
}
} else {
service{ "slapd":
ensure => running,
enable => true,
hasrestart => true,
require => [ File["slapd.conf"], File["ldap-${fqdn}.cert"], ],
}
}
}
and then called it like:
ldap_service{ "slapd":
supervise => true,
require => File["/etc/service.d/slapd"],
}