rename dsa-puppet-stuff to puppet-crontab
[mirror/dsa-puppet.git] / modules / bacula / manifests / director.pp
1 # our bacula director
2 class bacula::director inherits bacula {
3
4   ensure_packages ( [
5    'bacula-director-pgsql',
6    'bacula-common',
7    'bacula-common-pgsql'
8   ], {
9     ensure => 'installed',
10   })
11
12   service { 'bacula-director':
13     ensure    => running,
14     enable    => true,
15     hasstatus => true,
16     require   => Package['bacula-director-pgsql']
17   }
18   dsa_systemd::override { 'bacula-director':
19     content => @(EOT)
20       [Unit]
21       After=unbound.service
22       | EOT
23   }
24
25   exec { 'bacula-director reload':
26     path        => '/usr/bin:/usr/sbin:/bin:/sbin',
27     command     => 'service bacula-director reload',
28     refreshonly => true,
29   }
30
31   file { '/etc/bacula/conf.d':
32     ensure  => directory,
33     mode    => '0755',
34     group   => bacula,
35     purge   => true,
36     force   => true,
37     recurse => true,
38     source  => 'puppet:///files/empty/',
39     notify  => Exec['bacula-director reload']
40   }
41
42   file { '/etc/bacula/bacula-dir.conf':
43     content => template('bacula/bacula-dir.conf.erb'),
44     mode    => '0440',
45     group   => bacula,
46     require => Package['bacula-director-pgsql'],
47     notify  => Exec['bacula-director reload']
48   }
49
50   file { '/etc/bacula/conf.d/empty.conf':
51     content => '',
52     mode    => '0440',
53     group   => bacula,
54     require => Package['bacula-director-pgsql'],
55     notify  => Exec['bacula-director reload']
56   }
57
58   Bacula::Node<<| |>>
59
60   package { 'bacula-console':
61     ensure => installed;
62   }
63
64   file { '/etc/bacula/bconsole.conf':
65     content => template('bacula/bconsole.conf.erb'),
66     mode    => '0640',
67     group   => bacula,
68     require => Package['bacula-console']
69   }
70
71   package { 'python3-psycopg2': ensure => installed }
72   file { '/etc/bacula/scripts/volume-purge-action':
73     mode    => '0555',
74     source  => 'puppet:///modules/bacula/volume-purge-action',
75     ;
76   }
77   file { '/etc/bacula/scripts/volumes-delete-old':
78     mode    => '0555',
79     source  => 'puppet:///modules/bacula/volumes-delete-old',
80     ;
81   }
82   file { '/etc/bacula/storages-list.d':
83     ensure  => directory,
84     mode    => '0755',
85     group   => bacula,
86     purge   => true,
87     force   => true,
88     recurse => true,
89     source  => 'puppet:///files/empty/',
90   }
91   file { '/usr/local/sbin/dsa-bacula-scheduler':
92     source  => 'puppet:///modules/bacula/dsa-bacula-scheduler',
93     mode    => '0555',
94   }
95
96   file { "/etc/cron.d/puppet-bacula-stuff": ensure => absent, }
97   concat::fragment { 'puppet-crontab--bacula-director':
98     target => '/etc/cron.d/puppet-crontab',
99     content  => @(EOF)
100       @daily root chronic /etc/bacula/scripts/volume-purge-action -v
101       @daily root chronic /etc/bacula/scripts/volumes-delete-old -v
102       */3 * * * * root sleep $(( $RANDOM \% 60 )); flock -w 0 -e /usr/local/sbin/dsa-bacula-scheduler /usr/local/sbin/dsa-bacula-scheduler
103       | EOF
104   }
105
106   concat { $bacula::bacula_dsa_client_list:
107   }
108   concat::fragment { 'bacula-dsa-client-list::header' :
109     target => $bacula::bacula_dsa_client_list,
110     content  => "",
111     order  => '00',
112   }
113   Concat::Fragment <<| tag == $bacula::tag_bacula_dsa_client_list |>>
114 }