aboutsummaryrefslogtreecommitdiff
path: root/modules/base_installation/manifests/grub.pp
blob: 9ced43f974a61307837b54590d690b367fb9a678 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
class base_installation::grub inherits base_installation {
  ensure_packages(['grub'])

  if !empty($base_installation::grub_efi_device) {
    ensure_packages(['efibootmgr'])
    exec { 'install GRUB UEFI':
      command   => "/usr/bin/mkdir /boot/efi && /usr/bin/mount ${base_installation::grub_efi_device} /boot/efi && /usr/bin/grub-install --efi-directory=/boot/efi --target=x86_64-efi && /usr/bin/umount /boot/efi && /usr/bin/rmdir /boot/efi",
      creates   => "/boot/grub/x86_64-efi",
      subscribe => Package["grub"],
    }
  } elsif !empty($base_installation::grub_device) {
    exec { 'install GRUB MBR':
      command   => "/usr/bin/grub-install --target=i386-pc $base_installation::grub_device",
      creates   => "/boot/grub/i386-pc",
      subscribe => Package["grub"],
    }
  }

  if ($environment == "workstation" and !empty($base_installation::cryptroot_device)) {
    file_line { "/etc/default/grub#GRUB_CMDLINE_LINUX":
      path    => "/etc/default/grub",
      line    => "GRUB_CMDLINE_LINUX=\" cryptdevice=UUID=${base_installation::cryptroot_device}:cryptroot\"",
      match   => '^GRUB_CMDLINE_LINUX=',
      require => Package["grub"],
      notify  => Exec["update GRUB config"],
    }
  } elsif ($environment != "workstation") {
    file_line { "/etc/default/grub#GRUB_CMDLINE_LINUX":
      path    => "/etc/default/grub",
      line    => 'GRUB_CMDLINE_LINUX=" console=tty0 console=ttyS0,115200"',
      match   => '^GRUB_CMDLINE_LINUX=',
      require => Package["grub"],
      notify  => Exec["update GRUB config"],
    }
  }

  exec { 'update GRUB config':
    command     => "/usr/bin/grub-mkconfig -o /boot/grub/grub.cfg",
    refreshonly => true
  }
}