Skip to content
This repository has been archived by the owner on Jul 31, 2021. It is now read-only.

jmkeyes/puppet-powerdns

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 Cannot retrieve latest commit at this time.

History

43 Commits
Nov 26, 2016
Nov 26, 2016
Jun 4, 2015
May 29, 2015
Sep 6, 2016
Apr 4, 2016
May 29, 2015
Jun 4, 2015
Sep 14, 2016
Mar 7, 2016
Jul 24, 2016
Jun 4, 2015
Nov 26, 2016

Repository files navigation

Yet Another Puppet ::powerdns Module

Puppet Forge Build Status

Table of Contents

  1. Overview
  2. Description
  3. Todo

Overview

This is yet another Puppet module to manage a PowerDNS DNS server. It currently targets the latest stable release of Puppet, and should support both RedHat and Debian family distributions.

Beware that this module will recursively purge your distribution's default PowerDNS configuration.

Description

To use this module, use either an include-like or resource-like declaration:

# An include-like declaration for Hiera integration.
include ::powerdns

# A resource-like declaration for manual overrides.
class { '::powerdns': }

This module is intended to work with Puppet 4.x.

Configuration

All configuration can be handled either through Hiera or by arguments to the powerdns class.

All parameters specific to a backend can be supplied using the options parameter to the class.

Supported PowerDNS Backends

  • MySQL (gmysql)
  • PostgreSQL (gpgsql)
  • SQLite3 (gsqlite3)
  • LMDB (lmdb)
  • Pipe (pipe)
  • TinyDNS (tinydns)

PowerDNS with MySQL (using manifests)

# Install PowerDNS:
class { '::powerdns': }

# Load the MySQL backend:
class { '::powerdns::backend::gmysql':
  host     => '127.0.0.1',
  user     => 'username',
  password => 'password',
  dbname   => 'powerdns',
  port     => '3306',
  dnssec   => 'yes'
}

PowerDNS with PostgreSQL (using Hiera)

# In Hiera configuration:
classes:
  - 'powerdns'
  - 'powerdns::backend::gpgsql'

powerdns::backend::gpgsql::host:     '127.0.0.1'
powerdns::backend::gpgsql::user:     'username'
powerdns::backend::gpgsql::password: 'password'
powerdns::backend::gpgsql::dbname:   'powerdns'
powerdns::backend::gpgsql::port:     5432
powerdns::backend::gpgsql::dnssec:   'no'

Todo

  • Ensure PowerDNS works with SELinux on distributions that use it.
  • Consider supporting a chrooted installation.
  • Extend support to other distributions.