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