Install ganeti-reboot-cluster
[mirror/dsa-puppet.git] / modules / ganeti2 / manifests / init.pp
index 3c79be0..1708ba8 100644 (file)
@@ -1,3 +1,11 @@
+# = Class: ganeti2
+#
+# Standard ganeti2 config debian.org hosts
+#
+# == Sample Usage:
+#
+#   include ganeti2
+#
 class ganeti2 {
 
        include ganeti2::params
@@ -5,70 +13,64 @@ class ganeti2 {
 
        $drbd = $ganeti2::params::drbd
 
-       package { 'ganeti2':
+       package { 'ganeti':
                ensure => installed
        }
 
-       package { 'ganeti-instance-debootstrap':
-               ensure => installed
-       }
+       site::linux_module { 'tun': }
 
-       package { 'ganeti-htools':
-               ensure => installed
+       file { '/etc/cron.hourly/puppet-cleanup-watcher-pause-file':
+               source => 'puppet:///modules/ganeti2/cleanup-watcher-pause-file',
+               mode    => '0555',
        }
 
-       if $drbd {
-               package { 'drbd8-utils':
-                       ensure => installed
+       if $::debarchitecture == 'arm64' {
+               file { '/usr/local/bin/qemu-system-aarch64-wrapper':
+                       source => 'puppet:///modules/ganeti2/qemu-system-aarch64-wrapper',
+                       mode   => '0555',
                }
        }
-
-       file {
-               '/etc/ganeti/instance-debootstrap/variants.list':
-                       content => template('ganeti2/instance-debootstrap/variants.list.erb'),
-                       require => Package['ganeti-instance-debootstrap'],
-                       ;
-               '/etc/ganeti/instance-debootstrap/variants/dsa.conf':
-                       content => template('ganeti2/instance-debootstrap/variants/dsa.conf.erb'),
-                       require => Package['ganeti-instance-debootstrap'],
-                       ;
-               '/etc/ganeti/instance-debootstrap/variants/dsa-wheezy.conf':
-                       content => template('ganeti2/instance-debootstrap/variants/dsa-wheezy.conf.erb'),
-                       require => Package['ganeti-instance-debootstrap'],
-                       ;
-               '/etc/ganeti/instance-debootstrap/hooks/00-dsa-configure-networking':
-                       content => template('ganeti2/instance-debootstrap/hooks/00-dsa-configure-networking.erb'),
-                       require => Package['ganeti-instance-debootstrap'],
-                       mode   => '0555',
-                       ;
-               '/etc/ganeti/instance-debootstrap/hooks/10-dsa-install-extra-packages':
-                       content => template('ganeti2/instance-debootstrap/hooks/10-dsa-install-extra-packages.erb'),
-                       require => Package['ganeti-instance-debootstrap'],
-                       mode   => '0555',
-                       ;
-               '/etc/ganeti/instance-debootstrap/hooks/20-dsa-install-bootloader':
-                       content => template('ganeti2/instance-debootstrap/hooks/20-dsa-install-bootloader.erb'),
-                       require => Package['ganeti-instance-debootstrap'],
-                       mode   => '0555',
-                       ;
-               '/etc/ganeti/instance-debootstrap/hooks/30-dsa-install-ssh-keys':
-                       content => template('ganeti2/instance-debootstrap/hooks/30-dsa-install-ssh-keys.erb'),
-                       require => Package['ganeti-instance-debootstrap'],
+       if $::cluster == 'ganeti.bm.debian.org' {
+               file { '/usr/local/sbin/crazy-multipath-restart':
+                       source => 'puppet:///modules/ganeti2/crazy-multipath-restart',
                        mode   => '0555',
-                       ;
-               '/etc/ganeti/instance-debootstrap/hooks/40-dsa-setup-swapfile':
-                       content => template('ganeti2/instance-debootstrap/hooks/40-dsa-setup-swapfile.erb'),
-                       require => Package['ganeti-instance-debootstrap'],
-                       mode   => '0555',
-                       ;
-               '/etc/ganeti/instance-debootstrap/hooks/clear-root-password':
-                       require => Package['ganeti-instance-debootstrap'],
-                       mode   => '0444',
-                       ;
-               '/etc/ganeti/instance-debootstrap/hooks/xen-hvc0':
-                       require => Package['ganeti-instance-debootstrap'],
-                       mode   => '0444',
-                       ;
+               }
+               file { '/etc/cron.d/puppet-crazy-multipath-restart': ensure => absent, }
+               concat::fragment { 'dsa-puppet-stuff--multipath-restart':
+                       target => '/etc/cron.d/dsa-puppet-stuff',
+                       content  => @("EOF"),
+                                       */15 * * * * root /usr/local/sbin/crazy-multipath-restart
+                                       | EOF
+               }
+       }
+       file { '/usr/local/sbin/ganeti-reboot-cluster':
+               source => 'puppet:///modules/ganeti2/ganeti-reboot-cluster',
+               mode   => '0555',
        }
 
+       package { ['python-dbus', 'systemd-container']: ensure => installed }
+       file { '/usr/local/sbin/ganeti-machined-register-instances':
+               source => 'puppet:///modules/ganeti2/ganeti-machined-register-instances',
+               mode   => '0555',
+       }
+       file { [
+               '/etc/ganeti/hooks',
+               '/etc/ganeti/hooks/instance-reboot-post.d',
+               '/etc/ganeti/hooks/instance-migrate-post.d',
+               '/etc/ganeti/hooks/instance-start-post.d',
+               '/etc/ganeti/hooks/instance-failover-post.d',
+               '/etc/ganeti/hooks/instance-add-post.d',
+               ]:
+               ensure => directory,
+       }
+       file { [
+               '/etc/ganeti/hooks/instance-reboot-post.d/00-ganeti-machined-register-instances',
+               '/etc/ganeti/hooks/instance-migrate-post.d/00-ganeti-machined-register-instances',
+               '/etc/ganeti/hooks/instance-start-post.d/00-ganeti-machined-register-instances',
+               '/etc/ganeti/hooks/instance-failover-post.d/00-ganeti-machined-register-instances',
+               '/etc/ganeti/hooks/instance-add-post.d/00-ganeti-machined-register-instances',
+               ]:
+               ensure => link,
+               target => '/usr/local/sbin/ganeti-machined-register-instances',
+       }
 }