Puppet Class: wal_e::install

Defined in:
manifests/install.pp

Overview



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
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
# File 'manifests/install.pp', line 1

class wal_e::install{

  file {$wal_e::env_dir:
    ensure => 'directory',
    owner => $wal_e::user,
    group => $wal_e::group,
    mode => '0750',
  }->
  file {"$wal_e::env_dir/env":
    ensure => 'directory',
    owner => $wal_e::user,
    group => $wal_e::group,
    mode => '0750',
    recurse => true,
    purge => true,
  }

  case $wal_e::install_method {
    'pip': {
      class {'wal_e::packages':
        require => File[$wal_e::env_dir]
      } ->
      exec {'install_wall_e':
        command => "pip install -b ${wal_e::env_dir} -q wal_e==${wal_e::version}",
        path => ['/bin', '/usr/bin', '/sbin', '/usr/sbin', '/usr/local/bin'],
        creates => "${wal_e::env_dir}/.installed_flag",
        require => File[$wal_e::env_dir],
        unless => "pip freeze |grep -q wal-e==${wal_e::version}",
      }
    }
    'source': {
      $src_install_dir = "${::wal_e::env_dir}/.src"
      class {'wal_e::packages':
      } ->
      vcsrepo { $src_install_dir:
        ensure => 'present',
        provider => 'git',
        source => $wal_e::repository_url,
        revision => $wal_e::git_version,
      }
      exec {'wal_e_install_src':
        cwd => $src_install_dir,
        command => '/usr/bin/python .setup.py install',
        refreshonly => true,
        subscribe => Vcsrepo[$src_install_dir],
      }
    }
    'package': {
      package {'python-wal-e':
        ensure => 'present',
      }
    }
  }

  #base backup cmd
  file { "${wal_e::env_dir}/base_backup.sh":
    ensure => 'present',
    content => "envdir ${::wal_e::env_dir}/env wal-e backup-push ${::wal_e::base_backup_options} ${::wal_e::pgdata_dir}",
    mode => '0754',
    owner => $::wal_e::user,
    group => $::wal_e::group,
    require => File[$::wal_e::env_dir]
  }

  file { "${wal_e::env_dir}/base_backup_list.sh":
    ensure => 'present',
    content => "envdir ${::wal_e::env_dir}/env wal-e backup-list",
    mode => '0754',
    owner => $::wal_e::user,
    group => $::wal_e::group,
    require => File[$::wal_e::env_dir]
  }

  file { "${wal_e::env_dir}/purge_base_backup.sh":
    ensure => 'present',
    content => template('wal_e/purge_base_backup.sh.erb'),
    mode => '0754',
    owner => $::wal_e::user,
    group => $::wal_e::group,
    require => File[$::wal_e::env_dir]
  }

  #now config cron job if it is enabled
  if $wal_e::base_backup_purge_enabled {
    $cron_cmd = "${::wal_e::env_dir}/base_backup.sh && ${::wal_e::env_dir}/purge_base_backup.sh"
  } else {
    $cron_cmd = "${::wal_e::env_dir}/base_backup.sh"
  }
  if $::wal_e::base_backup_enabled {
    $base_cron_ensure = 'present'
  }else {
    $base_cron_ensure = 'absent'
  }
  cron { 'wal_e_base_backup':
    ensure => $base_cron_ensure,
    command => $cron_cmd,
    user => $wal_e::user,
    hour => $::wal_e::base_backup_hour,
    minute => $::wal_e::base_backup_minute,
    monthday => $::wal_e::base_backup_day,
    month => $::wal_e::base_backup_month,
    weekday => $::wal_e::base_backup_weekday
  }

}