manage grub on arm-arm-03
[mirror/dsa-puppet.git] / modules / grub / manifests / init.pp
1 class grub {
2         if ($::kernel == 'Linux' and $::is_virtual and $::virtual == 'kvm') {
3                 $grub_manage = true
4                 $grub_do_kernel_serial = true
5                 $grub_do_grub_serial = true
6                 $grub_do_ifnames = true
7         } elsif $::hostname in [ubc-enc2bl01,ubc-enc2bl02,ubc-enc2bl09,ubc-enc2bl10,casulana,mirror-anu,sallinen,storace,mirror-accumu] {
8                 $grub_manage = true
9                 $grub_do_kernel_serial = true
10                 $grub_do_grub_serial = true
11                 $grub_do_nopat = true
12         } elsif $::hostname in [mirror-skroutz,aagard,acker,arm-arm-01] {
13                 $grub_manage = true
14                 $grub_do_kernel_serial = true
15                 $grub_do_grub_serial = true
16                 $grub_do_nopat = false
17         } elsif $::hostname in [acker,arm-arm-03] {
18                 $grub_manage = true
19                 $grub_do_kernel_serial = true
20                 $grub_do_grub_serial = false
21                 $grub_do_nopat = false
22         } else {
23                 $grub_manage = false
24         }
25
26
27         if $grub_manage {
28                 file { '/etc/default/grub':
29                         # restore to default
30                         source => 'puppet:///modules/grub/etc-default-grub',
31                         notify  => Exec['update-grub']
32                 }
33
34                 file { '/etc/default/grub.d':
35                         ensure => directory
36                 }
37
38                 file { '/etc/default/grub.d/puppet-grub-serial.cfg':
39                         ensure => $grub_do_kernel_serial ? { true  => 'present', default => 'absent' },
40                         content  => template('grub/puppet-grub-serial.cfg.erb'),
41                         notify  => Exec['update-grub']
42                 }
43
44                 file { '/etc/default/grub.d/puppet-kernel-serial.cfg':
45                         ensure => $grub_do_grub_serial ? { true  => 'present', default => 'absent' },
46                         content  => template('grub/puppet-kernel-serial.cfg.erb'),
47                         notify  => Exec['update-grub']
48                 }
49
50                 file { '/etc/default/grub.d/puppet-net-ifnames.cfg':
51                         ensure => $grub_do_ifnames ? { true  => 'present', default => 'absent' },
52                         content  => template('grub/puppet-net-ifnames.cfg.erb'),
53                         notify  => Exec['update-grub']
54                 }
55
56                 file { '/etc/default/grub.d/puppet-kernel-nopat.cfg':
57                         ensure => $grub_do_nopat ? { true  => 'present', default => 'absent' },
58                         content  => template('grub/puppet-kernel-nopat.cfg.erb'),
59                         notify  => Exec['update-grub']
60                 }
61         }
62
63         exec { 'update-grub':
64                 refreshonly => true,
65                 path        => '/usr/bin:/usr/sbin:/bin:/sbin',
66         }
67 }