diff --git a/manifests/grub2/kernel_option.pp b/manifests/grub2/kernel_option.pp new file mode 100644 index 0000000000000000000000000000000000000000..d0b13fd6871718c67ba117d98b209dc212f6171a --- /dev/null +++ b/manifests/grub2/kernel_option.pp @@ -0,0 +1,45 @@ +# Copyright © 2017 Thomas Bellman, Linköping, Sweden +# Licensed under the GNU LGPL v3+; see the README file for more information. + + +/* + * Internal helper for the bootloader::kernel_option definition. + */ +define bootloader::grub2::kernel_option($ensure, $value) +{ + include bootloader::grub2::rebuild_grub_cfg + + $prefix = '^(GRUB_CMDLINE_LINUX="?(|.*\s))' + $suffix = '((|\s.*)("?))\s*$' + $qname = regexp_quote($name) + + if ($ensure == 'absent') + { + regexp_replace_lines { + "bootloader::grub2::kernel_option::${name}": + file => '/etc/default/grub', + pattern => "${prefix}${qname}(=[^ \t\"]*)?${suffix}", + replacement => '\1\4', + notify => Class['bootloader::grub2::rebuild_grub_cfg']; + } + } + elsif ($ensure != 'present') + { + fail("Bootloader::Grub2::Kernel_Option[${title}]: ", + "Bad ensure parameter, ${ensure}") + } + elsif ($value == true or $value == false) + { + # Detecting if the option is already present is not easily done + # using regexps... + fail("Bootloader::Grub2::Kernel_option[${title}]: ", + "Setting a kernel option is not yet implemented.") + } + else + { + # Detecting if the option is already present is not easily done + # using regexps... + fail("Bootloader::Grub2::Kernel_option[${title}]: ", + "Setting a kernel option is not yet implemented.") + } +} diff --git a/manifests/kernel_option.pp b/manifests/kernel_option.pp index 5c896fb251c915c1bac32e8e684123f1f6ef652c..6bb146402c8298a76045e13d2fd0e9570cf173ed 100644 --- a/manifests/kernel_option.pp +++ b/manifests/kernel_option.pp @@ -34,6 +34,12 @@ define bootloader::kernel_option($ensure='present', $value=undef) name => $name, ensure => $ensure, value => $value; } } + 'grub2': { + bootloader::grub2::kernel_option { + $title: + name => $name, ensure => $ensure, value => $value; + } + } default: { fail("Bootloader::Kernel_option[${title}]: ", "Unsupported bootloader, ${bootloader}")