This Puppet module manages PowerDNS installation and configuration. It supports authoritive and recursive name servers and can be backed by either a SQLite or PostgreSQL database.
class { ::powerdns::server :
ensure => present,
password => 'MDM5YW=mZmFi' # API password
}
The above snippet will install a fully configured PowerDNS Authoritive name server, a recursive name server for which to forward non-authoritive searches on to, the PowerDNS API, and a local SQLite3 backend.
For standalone installations this should be adequate for most use cases.
class { ::powerdns::server :
ensure => present,
password => 'MDM5YW=mZmFi', # API password
postgresql => {
host => '127.0.0.1', # Database host address
port => 5432, # Database host port
user => 'pdns', # Database user account
password => 'xY2U%OWFhMjg', # Database password
database => 'powerdns' # Database logical name
}
}
The above snippet will follow similar behaviour to the one displayed above under Quick Install but will use a PostgreSQL database instead of a local SQLite database.
This has the benefit of allowing multiple active authoritive name servers because the database does not need to sit on the same machine.
Configures PowerDNS YUM repository
Parameter | Values | Description |
---|---|---|
ensure |
present / absent |
Adds/removes repository in YUM |
High-level class configuring both PowerDNS and PowerDNS Recursor together with sane options
Parameter | Default value | Description |
---|---|---|
ensure |
present |
Adds/removes PDNS & PDNS-Recursor |
password |
password |
Password used to connect to PDNS API |
api_port |
8081 |
Listening port that PDNS API should bind to |
postgresql |
See Note 1 | Configures PDNS to use PostgreSQL backend |
sqlite_path |
See Note 1 | Configures PDNS to use a non-default SQLite database |
Configures PowerDNS Authoritive Name Server
Parameter | Default value | Description |
---|---|---|
ensure |
present |
Adds/removes PDNS |
password |
password |
Password used to connect to PDNS API |
port |
53 |
Listening port that PDNS should bind to |
api_port |
8081 |
Listening port that PDNS API should bind to |
postgresql |
See Note 1 | Configures PDNS to use PostgreSQL backend |
sqlite_path |
See Note 1 | Configures PDNS to use a non-default SQLite database |
recursor |
See Note 2 | Configures PDNS to forward requests to a recursive name server |
Configures PowerDNS Recursive Name Server
Parameter | Default value | Description |
---|---|---|
ensure |
present |
Adds/removes PDNS-Recursor |
address |
127.0.0.1 |
Listening address that the recursor should bind to |
port |
1053 |
Listening port that the recursor should bind to |
Configures PostgreSQL database backend
Parameter | Default value | Description |
---|---|---|
ensure |
present |
Adds/removes PostgreSQL resources |
config |
See Note 1 | Configures PostgreSQL database schema |
Configures SQLite database backend
Parameter | Default value | Description |
---|---|---|
ensure |
present |
Adds/removes SQLite resources |
path |
/var/lib/pdns/pdns.db |
Absolute path where SQLite database will be stored |
user |
pdns |
User account which should be used to create database file |