cookbooks/fb_grub/attributes/default.rb (74 lines of code) (raw):

# vim: syntax=ruby:expandtab:shiftwidth=2:softtabstop=2:tabstop=2 # # Copyright (c) 2016-present, Facebook, Inc. # All rights reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # version = node.centos6? ? 1 : 2 grub2_base_dir = '/boot/grub2' if node.centos6? || node.redhat? vendor = 'redhat' elsif node.debian? grub2_base_dir = '/boot/grub' vendor = 'debian' elsif node.ubuntu? vendor = 'ubuntu' grub2_base_dir = '/boot/grub' else vendor = 'centos' end fb_grub = { '_device_hints' => [], '_efi_vendor_dir' => '/notdefined', '_grub_base_dir' => '/boot/grub', '_grub2_base_dir' => grub2_base_dir, '_grub2_copy_path' => nil, '_grub2_module_path' => '/notdefined', '_rootflags' => nil, '_vendor' => vendor, 'enable_bls' => node.centos? && node.major_platform_version.to_i >= 8, 'kernel_cmdline_args' => [], 'kernels' => {}, 'manage_packages' => true, 'saved_opts' => '', 'serial' => { 'unit' => 0, 'speed' => 57600, 'word' => 8, 'parity' => 'no', 'stop' => 1, }, 'tboot' => { '_grub_modules' => [ 'relocator.mod', 'multiboot2.mod', ], 'enable' => false, 'kernel_extra_args' => [ 'intel_iommu=on', 'noefi', ], 'logging' => [ 'memory', ], 'tboot_extra_args' => [], }, 'terminal' => [ 'console', ], 'timeout' => 5, 'use_labels' => (version == 2), 'version' => version, 'force_both_efi_and_bios' => true, 'users' => {}, 'require_auth_on_boot' => false, 'environment' => {}, } # Set the path to the grub config files vendor_dir = "/boot/efi/EFI/#{vendor}" fb_grub['_efi_vendor_dir'] = vendor_dir fb_grub['_grub_config_efi'] = "#{vendor_dir}/grub.conf" fb_grub['_grub2_config_efi'] = "#{vendor_dir}/grub.cfg" fb_grub['_grub_config_bios'] = "#{fb_grub['_grub_base_dir']}/grub.conf" fb_grub['_grub2_config_bios'] = "#{fb_grub['_grub2_base_dir']}/grub.cfg" # Have a 'current' variable that will point to the one that should be in use if node.efi? fb_grub['_grub_config'] = fb_grub['_grub_config_efi'] fb_grub['_grub2_config'] = fb_grub['_grub2_config_efi'] else fb_grub['_grub_config'] = fb_grub['_grub_config_bios'] fb_grub['_grub2_config'] = fb_grub['_grub2_config_bios'] end # Finally set the defaults default['fb_grub'] = fb_grub