69 lines
1.5 KiB
Puppet
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"],
|
|
}
|
|
|
|
}
|