make sure /etc/default/grub.d is just populated by puppet
[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         } elsif $::hostname in [mirror-skroutz,aagaard,acker,arm-arm-01,fasolo] {
12                 $grub_manage = true
13                 $grub_do_kernel_serial = true
14                 $grub_do_grub_serial = true
15         } elsif $::hostname in [acker,arm-arm-03] {
16                 $grub_manage = true
17                 $grub_do_kernel_serial = true
18                 $grub_do_grub_serial = false
19         } else {
20                 $grub_manage = false
21         }
22
23         $grub_do_nopat = $::hostname in [ubc-enc2bl01,ubc-enc2bl02,ubc-enc2bl09,ubc-enc2bl10,casulana,mirror-anu,sallinen,storace,mirror-accumu]
24         $grub_do_extra = $::hostname in [fasolo]
25
26         if $grub_manage {
27                 file { '/etc/default/grub':
28                         # restore to default
29                         source => 'puppet:///modules/grub/etc-default-grub',
30                         notify  => Exec['update-grub']
31                 }
32
33                 file { '/etc/default/grub.d':
34                         ensure => directory,
35                         mode   => '0555',
36                         purge   => true,
37                         force   => true,
38                         recurse => true,
39                         source  => 'puppet:///files/empty/',
40                 }
41
42                 file { '/etc/default/grub.d/puppet-grub-serial.cfg':
43                         ensure => $grub_do_kernel_serial ? { true  => 'present', default => 'absent' },
44                         content  => template('grub/puppet-grub-serial.cfg.erb'),
45                         notify  => Exec['update-grub']
46                 }
47
48                 file { '/etc/default/grub.d/puppet-kernel-serial.cfg':
49                         ensure => $grub_do_grub_serial ? { true  => 'present', default => 'absent' },
50                         content  => template('grub/puppet-kernel-serial.cfg.erb'),
51                         notify  => Exec['update-grub']
52                 }
53
54                 file { '/etc/default/grub.d/puppet-net-ifnames.cfg':
55                         ensure => $grub_do_ifnames ? { true  => 'present', default => 'absent' },
56                         content  => template('grub/puppet-net-ifnames.cfg.erb'),
57                         notify  => Exec['update-grub']
58                 }
59
60                 file { '/etc/default/grub.d/puppet-kernel-nopat.cfg':
61                         ensure => $grub_do_nopat ? { true  => 'present', default => 'absent' },
62                         content  => template('grub/puppet-kernel-nopat.cfg.erb'),
63                         notify  => Exec['update-grub']
64                 }
65
66                 file { '/etc/default/grub.d/puppet-kernel-extra.cfg':
67                         ensure => $grub_do_extra ? { true  => 'present', default => 'absent' },
68                         content  => template('grub/puppet-kernel-extra.cfg.erb'),
69                         notify  => Exec['update-grub']
70                 }
71         }
72
73         exec { 'update-grub':
74                 refreshonly => true,
75                 path        => '/usr/bin:/usr/sbin:/bin:/sbin',
76         }
77 }