Skip to content

mmitucha/pdns-ansible

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

19 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

PowerDNS Authoritative Server

An Ansible role created by the folks behind PowerDNS to install and configure the PowerDNS Authoritative Server.

Even though PowerDNS supports numerous backends, database servers are not (and will not) be installed by this role.

This role is considered alpha quality at the moment, but issues and pull requests are accepted.

Requirements

An Ansible installation.

Role Variables

pdns_backends

A dict that allows you configure the backends, this also installs the correct packages for these backends. By default, no backends are installed and PowerDNS will be unable to start.

pdns_config

A dict detailing the configuration of PowerDNS. You should not set the following options here (other variables set these):

  • config-dir
  • set-uid
  • set-gid
  • any backend related options

See below for an example.

pdns_config_dir

The directory where the configuration (pdns.conf) is stored. '/etc/powerdns' by default.

pdns_installation_type

How to install PowerDNS, either 'packages' or 'source'. 'packages' by default.

pdns_repo_provider

When using 'packages' for pdns_installation_type, use operating system packages ('os') or the PowerDNS repository ('PowerDNS'). This is 'os' by default.

pdns_repo_branch

When installing from the PowerDNS repository, what branch should be installed? Currently only 'master' is supported.

pdns_user

The user to run PowerDNS as, this is 'pdns' by default. This user is not (yet) created.

pdns_group

The group to run PowerDNS as, this is 'pdns' by default. This group is not (yet) created.

Example Playbook

Run as a master using the bind backend (when you already have a named.conf):

- hosts: ns1.example.net
  roles:
    - role: PowerDNS.pdns
  vars:
    pdns_config:
      master: true
      local-address: '192.0.2.53'
    pdns_backends:
      bind:
        config: '/etc/named/named.conf'

Run the PowerDNS masterbranch from a package from repo.powerdns.com as a slave with the MySQL backend:

- hosts: ns2.example.net
  roles:
    - role: PowerDNS.pdns
  vars:
    pdns_config:
      master: false
      slave: true
      local-address: '192.0.2.54'
    pdns_backends:
      gmysql:
        host: 192.0.2.120
        port: 3306
        user: powerdns
        password: P0w3rDn5
        dbname: pdns
    pdns_repo_provider: 'powerdns'
    pdns_repo_branch: 'master'

Run as a master on port 5300, using two different PostgreSQL databases:

- hosts: ns2.example.net
  roles:
    - role: PowerDNS.pdns
  vars:
    pdns_config:
      master: true
      local-port: 5300
      local-address: '192.0.2.111'
    pdns_backends:
      'gpgsql:serverone':
        host: 192.0.2.124
        user: powerdns
        password: P0w3rDn5
        dbname: pdns2
      'gpgsql:otherserver':
        host: 192.0.2.125
        user: root
        password: root
        dbname: dns

License

(C) 2015 - PowerDNS.COM BV

This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.

Author Information

Pieter Lexis [email protected]

To Do

  • Travis CI testing (kitchen + AWS?)
  • Installation from source

About

PowerDNS Authoritative Ansible role

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Ruby 100.0%