Install ganeti-reboot-cluster
[mirror/dsa-puppet.git] / modules / ganeti2 / manifests / init.pp
1 # = Class: ganeti2
2 #
3 # Standard ganeti2 config debian.org hosts
4 #
5 # == Sample Usage:
6 #
7 #   include ganeti2
8 #
9 class ganeti2 {
10
11         include ganeti2::params
12         include ganeti2::firewall
13
14         $drbd = $ganeti2::params::drbd
15
16         package { 'ganeti':
17                 ensure => installed
18         }
19
20         site::linux_module { 'tun': }
21
22         file { '/etc/cron.hourly/puppet-cleanup-watcher-pause-file':
23                 source => 'puppet:///modules/ganeti2/cleanup-watcher-pause-file',
24                 mode    => '0555',
25         }
26
27         if $::debarchitecture == 'arm64' {
28                 file { '/usr/local/bin/qemu-system-aarch64-wrapper':
29                         source => 'puppet:///modules/ganeti2/qemu-system-aarch64-wrapper',
30                         mode   => '0555',
31                 }
32         }
33         if $::cluster == 'ganeti.bm.debian.org' {
34                 file { '/usr/local/sbin/crazy-multipath-restart':
35                         source => 'puppet:///modules/ganeti2/crazy-multipath-restart',
36                         mode   => '0555',
37                 }
38                 file { '/etc/cron.d/puppet-crazy-multipath-restart': ensure => absent, }
39                 concat::fragment { 'dsa-puppet-stuff--multipath-restart':
40                         target => '/etc/cron.d/dsa-puppet-stuff',
41                         content  => @("EOF"),
42                                         */15 * * * * root /usr/local/sbin/crazy-multipath-restart
43                                         | EOF
44                 }
45         }
46         file { '/usr/local/sbin/ganeti-reboot-cluster':
47                 source => 'puppet:///modules/ganeti2/ganeti-reboot-cluster',
48                 mode   => '0555',
49         }
50
51         package { ['python-dbus', 'systemd-container']: ensure => installed }
52         file { '/usr/local/sbin/ganeti-machined-register-instances':
53                 source => 'puppet:///modules/ganeti2/ganeti-machined-register-instances',
54                 mode   => '0555',
55         }
56         file { [
57                 '/etc/ganeti/hooks',
58                 '/etc/ganeti/hooks/instance-reboot-post.d',
59                 '/etc/ganeti/hooks/instance-migrate-post.d',
60                 '/etc/ganeti/hooks/instance-start-post.d',
61                 '/etc/ganeti/hooks/instance-failover-post.d',
62                 '/etc/ganeti/hooks/instance-add-post.d',
63                 ]:
64                 ensure => directory,
65         }
66         file { [
67                 '/etc/ganeti/hooks/instance-reboot-post.d/00-ganeti-machined-register-instances',
68                 '/etc/ganeti/hooks/instance-migrate-post.d/00-ganeti-machined-register-instances',
69                 '/etc/ganeti/hooks/instance-start-post.d/00-ganeti-machined-register-instances',
70                 '/etc/ganeti/hooks/instance-failover-post.d/00-ganeti-machined-register-instances',
71                 '/etc/ganeti/hooks/instance-add-post.d/00-ganeti-machined-register-instances',
72                 ]:
73                 ensure => link,
74                 target => '/usr/local/sbin/ganeti-machined-register-instances',
75         }
76 }