Puppet Class: powerdns::postgresql

Inherits:
powerdns::params
Defined in:
manifests/postgresql.pp

Overview

Public: Install the powerdns postgresql backend

package - which package to install ensure - ensure postgres backend to be present or absent source - where to get the package from user - which user powerdns should connect as password - which password to use with user host - host to connect to port - port to connect to dbname - which database to use dnssec - enable or disable dnssec either yes or no

Parameters:

  • package (Any) (defaults to: $powerdns::params::package_psql)
  • ensure (Any) (defaults to: 'present')
  • source (Any) (defaults to: '')
  • user (Any) (defaults to: '')
  • password (Any) (defaults to: '')
  • host (Any) (defaults to: 'localhost')
  • port (Any) (defaults to: '5432')
  • dbname (Any) (defaults to: 'pdns')
  • dnssec (Any) (defaults to: 'yes')


13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
# File 'manifests/postgresql.pp', line 13

class powerdns::postgresql(
  $package  = $powerdns::params::package_psql,
  $ensure   = 'present',
  $source   = '',
  $user     = '',
  $password = '',
  $host     = 'localhost',
  $port     = '5432',
  $dbname   = 'pdns',
  $dnssec   = 'yes'
) inherits powerdns::params {

  $postgres_schema = $dnssec ? {
    /(yes|true)/ => 'puppet:///modules/powerdns/postgresql_schema.dnssec.sql',
    default      => 'puppet:///modules/powerdns/postgresql_schema.sql'
  }

  $package_source = $source ? {
    ''      => undef,
    default => $source
  }

  $package_provider = $source ? {
    ''      => undef,
    default => $powerdns::params::package_provider
  }

  package { $package:
    ensure   => $ensure,
    require  => Package[$powerdns::params::package],
    provider => $package_provider,
    source   => $package_source
  }

  file { $powerdns::params::postgresql_cfg_path:
    ensure  => $ensure,
    owner   => root,
    group   => root,
    mode    => '0600',
    backup  => '.bak',
    content => template('powerdns/pdns.pgsql.local.erb'),
    notify  => Service['pdns'],
    require => Package[$powerdns::params::package],
  }

  file { '/opt/powerdns_schema.sql':
    ensure => $ensure,
    owner  => root,
    group  => root,
    mode   => '0644',
    source => $postgres_schema
  }

}