From 9edbc6ae125fd4942eec28947b361784c697a343 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timo=20M=E4kinen?= Date: Thu, 7 Jan 2010 13:11:10 +0200 Subject: [PATCH] Added support for enabling/removing avahi services. --- avahi/manifests/init.pp | 45 +++++++++++++++++++++++++++++++++++++ avahi/templates/service.erb | 16 +++++++++++++ 2 files changed, 61 insertions(+) create mode 100644 avahi/templates/service.erb diff --git a/avahi/manifests/init.pp b/avahi/manifests/init.pp index 207cfe1..ee41e76 100644 --- a/avahi/manifests/init.pp +++ b/avahi/manifests/init.pp @@ -19,3 +19,48 @@ class avahi::daemon { } } + + +# Modify avahi service. +# +# === Parameters +# +# $name: +# Service name +# $description: +# Description of service. Defaults to local hostname. +# $port: +# Port which service listens on. +# $type: +# Service type for this service. e.g. "_http._tcp". +# $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": +# ensure => present, +# port => 22, +# type => "_ssh._tcp", +# } +# +define avahi::service($type, $port, $description = "%h", $ensure = "present", $txt = []) { + + $srvtype = $type + + file { "/etc/avahi/services/${name}.service": + ensure => $ensure, + content => template("avahi/service.erb"), + mode => 0644, + owner => root, + group => $operatingsystem ? { + openbsd => wheel, + default => root, + }, + notify => Service["avahi-daemon"], + } + +} diff --git a/avahi/templates/service.erb b/avahi/templates/service.erb new file mode 100644 index 0000000..924904c --- /dev/null +++ b/avahi/templates/service.erb @@ -0,0 +1,16 @@ + + + + + + <%= description %> + + + <%= srvtype %> + <%= port %> +<% txt.each do |val| -%> + <%= val %> +<% end -%> + + +