puppet/avahi/manifests/init.pp

69 lines
1.5 KiB
Puppet

# Install and enable avahi daemon.
#
class avahi::daemon {
package { "avahi":
ensure => installed,
}
service { "avahi-daemon":
ensure => running,
enable => true,
status => "avahi-daemon -c",
start => $operatingsystem ? {
openbsd => "avahi-daemon -D",
default => undef,
},
require => Package["avahi"],
}
}
# Modify avahi service.
#
# === Parameters
#
# $name:
# Service type. e.g. "_http._tcp".
# $description:
# Description of service. Defaults to local hostname.
# $port:
# Port which service listens on. Defaults to port found from
# /etc/services.
# $txt:
# Array containing TXT record data.
# $ensure:
# If set to present service will be created and if set to absent
# service will be removed.
#
# === Sample usage
#
# avahi::service { "_ssh._tcp":
# ensure => present,
# }
#
define avahi::service($port = "AUTO", $description = "%h", $ensure = "present", $txt = []) {
$filename = regsubst($name, '^_([^.]+)\._.*', '\1.service')
if $port == "AUTO" {
$realport = avahi_service_port($name)
} else {
$realport = $port
}
file { "/etc/avahi/services/${filename}":
ensure => $ensure,
content => template("avahi/service.erb"),
mode => 0644,
owner => root,
group => $operatingsystem ? {
openbsd => wheel,
default => root,
},
notify => Service["avahi-daemon"],
}
}