Defined Type: postgresql::pgdumpbackup

Defined in:
manifests/pgdumpbackup.pp

Overview

Parameters:

  • destination (Any)
  • ensure (Any) (defaults to: 'present')
  • backupname (Any) (defaults to: $name)
  • pgroot (Any) (defaults to: undef)
  • instance (Any) (defaults to: undef)
  • retention (Any) (defaults to: '7')
  • dbs (Any) (defaults to: 'ALL')
  • mailto (Any) (defaults to: undef)
  • idhost (Any) (defaults to: undef)
  • basedir (Any) (defaults to: '/usr/local/bin')
  • username (Any) (defaults to: 'postgres')
  • setcronjob (Any) (defaults to: true)
  • hour_cronjob (Any) (defaults to: '2')
  • minute_cronjob (Any) (defaults to: '0')
  • month_cronjob (Any) (defaults to: undef)
  • monthday_cronjob (Any) (defaults to: undef)
  • weekday_cronjob (Any) (defaults to: undef)


1
2
3
4
5
6
7
8
9
10
11
12
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
67
68
69
70
71
72
73
74
75
76
77
78
79
# File 'manifests/pgdumpbackup.pp', line 1

define postgresql::pgdumpbackup (
                      $destination,
                      $ensure           = 'present',
                      $backupname       = $name,
                      $pgroot           = undef,
                      $instance         = undef,
                      $retention        = '7',
                      $dbs              = 'ALL',
                      $mailto           = undef,
                      $idhost           = undef,
                      $basedir          = '/usr/local/bin',
                      $username         = 'postgres',
                      #cron
                      $setcronjob       = true,
                      $hour_cronjob     = '2',
                      $minute_cronjob   = '0',
                      $month_cronjob    = undef,
                      $monthday_cronjob = undef,
                      $weekday_cronjob  = undef,
                    ) {

  Exec {
    path => '/usr/sbin:/usr/bin:/sbin:/bin',
  }

  # validate_absolute_path($basedir)
  # validate_absolute_path($destination)

  #source => "puppet:///modules/${module_name}/backup_pgdump.sh",
  file { "${basedir}/pgdumpbackup.sh":
    ensure  => $ensure,
    owner   => 'root',
    group   => $username,
    mode    => '0750',
    content => file("${module_name}/backup_pgdump.sh"),
    require => Class['::postgresql::service'],
  }

  file { "${basedir}/pgdumpbackup.config":
    ensure  => $ensure,
    owner   => 'root',
    group   => $username,
    mode    => '0640',
    content => template("${module_name}/backup/backup_pgdump_config.erb"),
    require => Class['::postgresql::service'],
  }

  exec { "mkdir p ${destination} backup":
    command => "mkdir -p ${destination}",
    creates => $destination,
    require => Class['::postgresql::service'],
  }

  file { $destination:
    ensure  => 'directory',
    owner   => 'root',
    group   => $username,
    mode    => '0770',
    require => Exec["mkdir p ${destination} backup"],
  }

  if($setcronjob)
  {
    cron { "cronjob logical postgres backup: ${backupname}":
      ensure   => $ensure,
      command  => "${basedir}/pgdumpbackup.sh",
      user     => $username,
      hour     => $hour_cronjob,
      minute   => $minute_cronjob,
      month    => $month_cronjob,
      monthday => $monthday_cronjob,
      weekday  => $weekday_cronjob,
      require  => File[ [ "${basedir}/pgdumpbackup.config",
                          "${basedir}/pgdumpbackup.sh"
                      ] ],
    }
  }

}