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