Skip to content

Commit 6593f3a

Browse files
authored
Merge pull request voxpupuli#184 from saz/use-hiera
replace params.pp with hiera data
2 parents 2045241 + 6c46af2 commit 6593f3a

21 files changed

+260
-289
lines changed

data/common.yaml

+6-1
Original file line numberDiff line numberDiff line change
@@ -1 +1,6 @@
1-
--- {}
1+
---
2+
powerdns::authoritative_package_ensure: installed
3+
powerdns::authoritative_extra_packages_ensure: installed
4+
powerdns::authoritative_version: '4.8'
5+
powerdns::recursor_package_ensure: installed
6+
powerdns::recursor_version: '4.9'

data/os/Archlinux.yaml

+21
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
---
2+
powerdns::db_dir: /var/lib/powerdns
3+
powerdns::db_file: "%{lookup('powerdns::db_dir')}/powerdns.sqlite3"
4+
powerdns::mysql_schema_file: /usr/share/doc/powerdns/schema.mysql.sql
5+
powerdns::pgsql_schema_file: /usr/share/doc/powerdns/schema.pgsql.sql
6+
powerdns::sqlite_schema_file: /usr/share/doc/powerdns/schema.sqlite3.sql
7+
powerdns::mysql_backend_package_name: nil
8+
powerdns::ldap_backend_package_name: nil
9+
powerdns::pgsql_backend_package_name: nil
10+
powerdns::sqlite_backend_package_name: nil
11+
powerdns::lmdb_backend_package_name: nil
12+
powerdns::sqlite_package_name: sqlite
13+
powerdns::authoritative_package_name: powerdns
14+
powerdns::authoritative_extra_packages: []
15+
powerdns::authoritative_service_name: pdns
16+
powerdns::authoritative_configdir: /etc/powerdns
17+
powerdns::authoritative_config: "%{lookup('powerdns::authoritative_configdir')}/pdns.conf"
18+
powerdns::recursor_configdir: /etc/powerdns
19+
powerdns::recursor_config: "%{lookup('powerdns::recursor_configdir')}/recursor.conf"
20+
powerdns::recursor_package_name: powerdns-recursor
21+
powerdns::recursor_service_name: pdns-recursor

data/os/Debian.yaml

+22
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
---
2+
powerdns::db_dir: /var/lib/powerdns
3+
powerdns::db_file: "%{lookup('powerdns::db_dir')}/powerdns.sqlite3"
4+
powerdns::mysql_schema_file: /usr/share/doc/pdns-backend-mysql/schema.mysql.sql
5+
powerdns::pgsql_schema_file: /usr/share/doc/pdns-backend-pgsql/schema.pgsql.sql
6+
powerdns::sqlite_schema_file: /usr/share/doc/pdns-backend-sqlite3/schema.sqlite3.sql
7+
powerdns::mysql_backend_package_name: pdns-backend-mysql
8+
powerdns::ldap_backend_package_name: pdns-backend-ldap
9+
powerdns::pgsql_backend_package_name: pdns-backend-pgsql
10+
powerdns::sqlite_backend_package_name: pdns-backend-sqlite3
11+
powerdns::lmdb_backend_package_name: pdns-backend-lmdb
12+
powerdns::sqlite_package_name: sqlite3
13+
powerdns::authoritative_package_name: pdns-server
14+
powerdns::authoritative_extra_packages:
15+
- dirmngr
16+
powerdns::authoritative_service_name: pdns
17+
powerdns::authoritative_configdir: /etc/powerdns
18+
powerdns::authoritative_config: "%{lookup('powerdns::authoritative_configdir')}/pdns.conf"
19+
powerdns::recursor_configdir: /etc/powerdns
20+
powerdns::recursor_config: "%{lookup('powerdns::recursor_configdir')}/recursor.conf"
21+
powerdns::recursor_package_name: pdns-recursor
22+
powerdns::recursor_service_name: pdns-recursor

data/os/FreeBSD.yaml

+21
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
---
2+
powerdns::db_dir: /var/db/powerdns
3+
powerdns::db_file: "%{lookup('powerdns::db_dir')}/powerdns.sqlite3"
4+
powerdns::mysql_schema_file: /usr/local/share/doc/powerdns/schema.mysql.sql
5+
powerdns::pgsql_schema_file: /usr/local/share/doc/powerdns/schema.pgsql.sql
6+
powerdns::sqlite_schema_file: /usr/local/share/doc/powerdns/schema.sqlite3.sql
7+
powerdns::mysql_backend_package_name: pdns-backend-mysql
8+
powerdns::ldap_backend_package_name: nil
9+
powerdns::pgsql_backend_package_name: nil
10+
powerdns::sqlite_backend_package_name: nil
11+
powerdns::lmdb_backend_package_name: nil
12+
powerdns::sqlite_package_name: sqlite3
13+
powerdns::authoritative_package_name: powerdns
14+
powerdns::authoritative_extra_packages: []
15+
powerdns::authoritative_service_name: pdns
16+
powerdns::authoritative_configdir: /usr/local/etc/pdns
17+
powerdns::authoritative_config: "%{lookup('powerdns::authoritative_configdir')}/pdns.conf"
18+
powerdns::recursor_configdir: /usr/local/etc/pdns
19+
powerdns::recursor_config: "%{lookup('powerdns::recursor_configdir')}/recursor.conf"
20+
powerdns::recursor_package_name: powerdns-recursor
21+
powerdns::recursor_service_name: pdns-recursor

data/os/RedHat.yaml

+21
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
---
2+
powerdns::db_dir: /var/lib/powerdns
3+
powerdns::db_file: "%{lookup('powerdns::db_dir')}/powerdns.sqlite3"
4+
powerdns::mysql_schema_file: /usr/share/doc/pdns-backend-mysql-4.8.1/schema.mysql.sql
5+
powerdns::pgsql_schema_file: /usr/share/doc/pdns-backend-postgresql-4.8.1/schema.pgsql.sql
6+
powerdns::sqlite_schema_file: /usr/share/doc/pdns-backend-sqlite-4.8.1/schema.sqlite.sql
7+
powerdns::mysql_backend_package_name: pdns-backend-mysql
8+
powerdns::ldap_backend_package_name: pdns-backend-ldap
9+
powerdns::pgsql_backend_package_name: pdns-backend-postgresql
10+
powerdns::sqlite_backend_package_name: pdns-backend-sqlite
11+
powerdns::lmdb_backend_package_name: pdns-backend-lmdb
12+
powerdns::sqlite_package_name: sqlite
13+
powerdns::authoritative_package_name: pdns
14+
powerdns::authoritative_extra_packages: []
15+
powerdns::authoritative_service_name: pdns
16+
powerdns::authoritative_configdir: /etc/pdns
17+
powerdns::authoritative_config: "%{lookup('powerdns::authoritative_configdir')}/pdns.conf"
18+
powerdns::recursor_configdir: /etc/pdns-recursor
19+
powerdns::recursor_config: "%{lookup('powerdns::recursor_configdir')}/recursor.conf"
20+
powerdns::recursor_package_name: pdns-recursor
21+
powerdns::recursor_service_name: pdns-recursor

manifests/authoritative.pp

+5-20
Original file line numberDiff line numberDiff line change
@@ -1,34 +1,19 @@
11
# powerdns::authoritative
22
class powerdns::authoritative (
3-
$package_ensure = $powerdns::params::default_package_ensure,
4-
Optional[Array[String]] $install_packages = $powerdns::install_packages,
53
) inherits powerdns {
64
# install the powerdns package
7-
package { $powerdns::params::authoritative_package:
8-
ensure => $package_ensure,
5+
package { $powerdns::authoritative_package_name:
6+
ensure => $powerdns::authoritative_package_ensure,
97
}
108

11-
stdlib::ensure_packages($install_packages)
12-
13-
$supported_backends = [
14-
'mysql',
15-
'bind',
16-
'postgresql',
17-
'ldap',
18-
'sqlite',
19-
'lmdb',
20-
]
21-
22-
unless $powerdns::backend in $supported_backends {
23-
fail("${powerdns::backend} is not supported. We only support ${supported_backends.join(', ')} at the moment.")
24-
}
9+
stdlib::ensure_packages($powerdns::authoritative_extra_packages, { 'ensure' => $powerdns::authoritative_extra_packages_ensure })
2510

2611
include "powerdns::backends::${powerdns::backend}"
2712

2813
service { 'pdns':
2914
ensure => running,
30-
name => $powerdns::params::authoritative_service,
15+
name => $powerdns::authoritative_service_name,
3116
enable => true,
32-
require => Package[$powerdns::params::authoritative_package],
17+
require => Package[$powerdns::authoritative_package_name],
3318
}
3419
}

manifests/backends/bind.pp

+13-13
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,9 @@
33
# Remove the default simplebind configuration as we prefer to manage PowerDNS
44
# consistently across all operating systems. This file is added to Debian
55
# based systems due to Debian's policies.
6-
file { "${powerdns::params::authoritative_configdir}/pdns.d/pdns.simplebind.conf":
6+
file { "${powerdns::authoritative_configdir}/pdns.d/pdns.simplebind.conf":
77
ensure => absent,
8-
require => Package[$powerdns::params::authoritative_package],
8+
require => Package[$powerdns::authoritative_package_name],
99
}
1010

1111
# set the configuration variables
@@ -19,33 +19,33 @@
1919
powerdns::config { 'bind-config':
2020
ensure => present,
2121
setting => 'bind-config',
22-
value => "${powerdns::params::authoritative_configdir}/named.conf",
22+
value => "${powerdns::authoritative_configdir}/named.conf",
2323
type => 'authoritative',
24-
require => Package[$powerdns::params::authoritative_package],
24+
require => Package[$powerdns::authoritative_package_name],
2525
}
2626

27-
file { "${powerdns::params::authoritative_configdir}/named.conf":
27+
file { "${powerdns::authoritative_configdir}/named.conf":
2828
ensure => file,
2929
mode => '0644',
3030
owner => 'root',
31-
group => 'root',
32-
require => Package[$powerdns::params::authoritative_package],
31+
group => 0,
32+
require => Package[$powerdns::authoritative_package_name],
3333
}
3434

3535
file_line { 'powerdns-bind-baseconfig':
3636
ensure => present,
37-
path => "${powerdns::params::authoritative_configdir}/named.conf",
38-
line => "options { directory \"${powerdns::params::authoritative_configdir}/named\"; };",
37+
path => "${powerdns::authoritative_configdir}/named.conf",
38+
line => "options { directory \"${powerdns::authoritative_configdir}/named\"; };",
3939
match => 'options',
4040
notify => Service['pdns'],
41-
require => File["${powerdns::params::authoritative_configdir}/named.conf"],
41+
require => File["${powerdns::authoritative_configdir}/named.conf"],
4242
}
4343

44-
file { "${powerdns::params::authoritative_configdir}/named":
44+
file { "${powerdns::authoritative_configdir}/named":
4545
ensure => directory,
4646
mode => '0755',
4747
owner => 'root',
48-
group => 'root',
49-
require => Package[$powerdns::params::authoritative_package],
48+
group => 0,
49+
require => Package[$powerdns::authoritative_package_name],
5050
}
5151
}

manifests/backends/ldap.pp

+8-12
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,12 @@
11
# ldap backend for powerdns
2-
class powerdns::backends::ldap ($package_ensure = $powerdns::params::default_package_ensure) inherits powerdns {
2+
class powerdns::backends::ldap (
3+
) inherits powerdns {
34
if $facts['os']['family'] == 'Debian' {
45
# The pdns-server package from the Debian APT repo automatically installs the bind
56
# backend package which we do not want when using another backend such as ldap.
67
package { 'pdns-backend-bind':
78
ensure => purged,
8-
require => Package[$powerdns::params::authoritative_package],
9+
require => Package[$powerdns::authoritative_package_name],
910
}
1011
}
1112

@@ -31,15 +32,10 @@
3132
type => 'authoritative',
3233
}
3334

34-
$_ldap_secret = $powerdns::ldap_secret =~ Sensitive ? {
35-
true => $powerdns::ldap_secret.unwrap,
36-
false => $powerdns::ldap_secret
37-
}
38-
3935
powerdns::config { 'ldap-secret':
4036
ensure => present,
4137
setting => 'ldap-secret',
42-
value => $_ldap_secret,
38+
value => $powerdns::ldap_secret,
4339
type => 'authoritative',
4440
}
4541

@@ -57,12 +53,12 @@
5753
type => 'authoritative',
5854
}
5955

60-
if $powerdns::params::ldap_backend_package_name {
56+
if $powerdns::ldap_backend_package_name {
6157
# set up the powerdns backend
62-
package { $powerdns::params::ldap_backend_package_name:
63-
ensure => $package_ensure,
58+
package { $powerdns::ldap_backend_package_name:
59+
ensure => $powerdns::authoritative_package_ensure,
6460
before => Service['pdns'],
65-
require => Package[$powerdns::params::authoritative_package],
61+
require => Package[$powerdns::authoritative_package_name],
6662
}
6763
}
6864

manifests/backends/lmdb.pp

+7-8
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,18 @@
11
# lmdb backend for powerdns
22
class powerdns::backends::lmdb (
3-
$package_ensure = $powerdns::params::default_package_ensure
43
) inherits powerdns {
54
if $facts['os']['family'] == 'Debian' {
65
# The pdns-server package from the Debian APT repo automatically installs the bind
76
# backend package which we do not want when using another backend such as ldap.
87
package { 'pdns-backend-bind':
98
ensure => purged,
10-
require => Package[$powerdns::params::authoritative_package],
9+
require => Package[$powerdns::authoritative_package_name],
1110
}
1211

1312
# The pdns-backend-lmdb package installs a configuration file that conflicts with this module's backend configuration.
14-
file { "${powerdns::params::authoritative_configdir}/pdns.d/lmdb.conf":
13+
file { "${powerdns::authoritative_configdir}/pdns.d/lmdb.conf":
1514
ensure => absent,
16-
require => Package[$powerdns::params::lmdb_backend_package_name],
15+
require => Package[$powerdns::lmdb_backend_package_name],
1716
before => Service['pdns'],
1817
}
1918
}
@@ -35,12 +34,12 @@
3534
}
3635
}
3736

38-
if $powerdns::params::lmdb_backend_package_name {
37+
if $powerdns::lmdb_backend_package_name {
3938
# set up the powerdns backend
40-
package { $powerdns::params::lmdb_backend_package_name:
41-
ensure => $package_ensure,
39+
package { $powerdns::lmdb_backend_package_name:
40+
ensure => $powerdns::authoritative_package_ensure,
4241
before => Service['pdns'],
43-
require => Package[$powerdns::params::authoritative_package],
42+
require => Package[$powerdns::authoritative_package_name],
4443
}
4544
}
4645

manifests/backends/mysql.pp

+12-21
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
# mysql backend for powerdns
2-
class powerdns::backends::mysql ($package_ensure = $powerdns::params::default_package_ensure) inherits powerdns {
2+
class powerdns::backends::mysql (
3+
) inherits powerdns {
34
# set the configuration variables
45
powerdns::config { 'launch':
56
ensure => present,
@@ -29,16 +30,11 @@
2930
type => 'authoritative',
3031
}
3132

32-
$_db_password = $powerdns::db_password =~ Sensitive ? {
33-
true => $powerdns::db_password.unwrap,
34-
false => $powerdns::db_password
35-
}
36-
37-
if $_db_password {
33+
if $powerdns::db_password {
3834
powerdns::config { 'gmysql-password':
3935
ensure => present,
4036
setting => 'gmysql-password',
41-
value => $_db_password,
37+
value => $powerdns::db_password,
4238
type => 'authoritative',
4339
}
4440
}
@@ -50,24 +46,19 @@
5046
type => 'authoritative',
5147
}
5248

53-
if $powerdns::params::mysql_backend_package_name {
49+
if $powerdns::mysql_backend_package_name {
5450
# set up the powerdns backend
55-
package { $powerdns::params::mysql_backend_package_name:
56-
ensure => $package_ensure,
51+
package { $powerdns::mysql_backend_package_name:
52+
ensure => $powerdns::authoritative_package_ensure,
5753
before => Service['pdns'],
58-
require => Package[$powerdns::params::authoritative_package],
54+
require => Package[$powerdns::authoritative_package_name],
5955
}
6056
}
6157
if $powerdns::backend_install {
6258
# mysql database
6359
if ! defined(Class['mysql::server']) {
64-
$_db_root_password = $powerdns::db_root_password =~ Sensitive ? {
65-
true => $powerdns::db_root_password.unwrap,
66-
false => $powerdns::db_root_password
67-
}
68-
6960
class { 'mysql::server':
70-
root_password => $_db_root_password,
61+
root_password => $powerdns::db_root_password,
7162
create_root_my_cnf => true,
7263
}
7364
}
@@ -77,15 +68,15 @@
7768
}
7869
}
7970

80-
if $powerdns::backend_create_tables and $_db_password {
71+
if $powerdns::backend_create_tables and $powerdns::db_password {
8172
# make sure the database exists
8273
mysql::db { $powerdns::db_name:
8374
user => $powerdns::db_username,
84-
password => $_db_password,
75+
password => $powerdns::db_password,
8576
host => $powerdns::db_host,
8677
grant => ['ALL'],
8778
sql => [$powerdns::mysql_schema_file],
88-
require => Package[$powerdns::params::mysql_backend_package_name],
79+
require => Package[$powerdns::mysql_backend_package_name],
8980
}
9081
}
9182
}

0 commit comments

Comments
 (0)