--- - name: Configure Bootloader vars: _efi_vendor: >- {{ "redhat" if os == "rhel" else ("ubuntu" if os in ["ubuntu", "ubuntu-lts"] else os) }} _efi_loader: >- {{ "shimx64.efi" if is_rhel | bool else "grubx64.efi" }} block: - name: Install GRUB EFI binary when: not (is_rhel | bool) ansible.builtin.command: >- {{ chroot_command }} /usr/sbin/grub-install --target=x86_64-efi --efi-directory={{ partitioning_efi_mountpoint }} --bootloader-id={{ _efi_vendor }} --no-nvram register: configuration_bootloader_result changed_when: configuration_bootloader_result.rc == 0 - name: Check existing EFI boot entries ansible.builtin.command: efibootmgr register: configuration_efi_entries changed_when: false - name: Ensure EFI boot entry exists when: ('* ' + _efi_vendor) not in configuration_efi_entries.stdout ansible.builtin.command: >- efibootmgr -c -L '{{ _efi_vendor }}' -d '{{ install_drive }}' -p 1 -l '\EFI\{{ _efi_vendor }}\{{ _efi_loader }}' register: configuration_efi_entry_result changed_when: configuration_efi_entry_result.rc == 0 - name: Ensure lvm2 for non btrfs filesystems when: os == "archlinux" and system_cfg.filesystem != "btrfs" ansible.builtin.lineinfile: path: /mnt/etc/mkinitcpio.conf regexp: "^(HOOKS=.*block)(?!.*lvm2)(.*)" line: "\\1 lvm2\\2" backrefs: true - name: Regenerate initramfs when: os not in ["alpine", "void"] vars: configuration_initramfs_cmd: >- {{ '/usr/sbin/mkinitcpio -P' if os == "archlinux" else ( '/usr/bin/env PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin ' + '/usr/sbin/update-initramfs -u -k all' if is_debian | bool else '/usr/bin/dracut --regenerate-all --force' ) }} ansible.builtin.command: "{{ chroot_command }} {{ configuration_initramfs_cmd }}" register: configuration_initramfs_result changed_when: configuration_initramfs_result.rc == 0 - name: Generate grub config vars: configuration_grub_cfg_cmd: >- {{ '/usr/sbin/grub2-mkconfig -o ' + partitioning_efi_mountpoint + '/EFI/' + _efi_vendor + '/grub.cfg' if is_rhel | bool else '/usr/sbin/grub-mkconfig -o /boot/grub/grub.cfg' }} ansible.builtin.command: "{{ chroot_command }} {{ configuration_grub_cfg_cmd }}" register: configuration_grub_result changed_when: configuration_grub_result.rc == 0