avahi

Table of Contents

  1. Description

  2. Setup - The basics of getting started with avahi

  3. Usage - Configuration options and additional functionality

  4. Reference - An under-the-hood peek at what the module is doing and how

  5. Limitations - OS compatibility, etc.

  6. Development - Guide for contributing to the module

Description

This module manages Avahi for mDNS/DNS-SD services.

RHEL/CentOS, Ubuntu, Debian and OpenBSD are supported using Puppet 5 or later.

Setup

Beginning with avahi

In the very simplest case, you can just include the following:

include dbus
include avahi

Usage

Install Avahi and add static service definitions for SSH and SFTP:

include dbus
include avahi

avahi::service { 'ssh':
  description       => '%h',
  replace_wildcards => true,
  services          => [
    {
      'type' => '_ssh._tcp',
      'port' => 22,
    },
  ],
}

avahi::service { 'sftp-ssh':
  description       => '%h',
  replace_wildcards => true,
  services          => [
    {
      'type' => '_sftp-ssh._tcp',
      'port' => 22,
    },
  ],
}

Install Avahi and add a static host entry on behalf of an mDNS-unaware router:

include dbus
include avahi

avahi_host { 'router.local':
  ensure => present,
  ip     => '192.0.2.1',
}

Reference

The reference documentation is generated with puppet-strings and the latest version of the documentation is hosted at bodgit.github.io/puppet-avahi/ and available also in the REFERENCE.md.

Limitations

This module has been built on and tested against Puppet 5 and higher.

The module has been tested on:

  • Red Hat/CentOS Enterprise Linux 6/7/8

  • Ubuntu 16.04/18.04/20.04

  • Debian 9/10

  • OpenBSD 6.9

Development

The module relies on PDK and has both rspec-puppet and Litmus tests. Run them with:

$ bundle exec rake spec
$ bundle exec rake litmus:*

Please log issues or pull requests at github.