/puppet-avahi

Puppet Module for managing Avahi

Primary LanguageRubyApache License 2.0Apache-2.0

avahi

Build Status Codecov Puppet Forge version Puppet Forge downloads Puppet Forge - PDK version

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 https://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.