--- - name: Configure Bootloader block: - name: Install Bootloader vars: configuration_use_efibootmgr: "{{ is_rhel | bool }}" configuration_efi_dir: "{{ partitioning_efi_mountpoint }}" configuration_bootloader_id: >- {{ "ubuntu" if os | lower in ["ubuntu", "ubuntu-lts"] else os }} configuration_efi_vendor: >- {{ "redhat" if os | lower in ["rhel8", "rhel9", "rhel10"] else os | lower }} configuration_efibootmgr_cmd: >- /usr/sbin/efibootmgr -c -L '{{ os }}' -d "{{ install_drive }}" -p 1 -l '\efi\EFI\{{ configuration_efi_vendor }}\shimx64.efi' configuration_grub_cmd: >- /usr/sbin/grub-install --target=x86_64-efi --efi-directory={{ configuration_efi_dir }} --bootloader-id={{ configuration_bootloader_id }} configuration_bootloader_cmd: >- {{ configuration_efibootmgr_cmd if configuration_use_efibootmgr else configuration_grub_cmd }} ansible.builtin.command: "arch-chroot /mnt {{ configuration_bootloader_cmd }}" register: configuration_bootloader_result changed_when: configuration_bootloader_result.rc == 0 - name: Ensure lvm2 for non btrfs filesystems when: os | lower == "archlinux" and filesystem != "btrfs" ansible.builtin.lineinfile: path: /mnt/etc/mkinitcpio.conf regexp: "^(HOOKS=.*block)(?!.*lvm2)(.*)" line: '\1 lvm2\2' backrefs: true - name: Regenerate initramfs vars: configuration_initramfs_cmd: >- {{ '/usr/sbin/mkinitcpio -P' if os | lower == "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: "arch-chroot /mnt {{ configuration_initramfs_cmd }}" register: configuration_initramfs_result changed_when: configuration_initramfs_result.rc == 0 - name: Generate grub config vars: configuration_efi_vendor: >- {{ "redhat" if os | lower in ["rhel8", "rhel9", "rhel10"] else os | lower }} configuration_grub_cfg_cmd: >- {{ '/usr/sbin/grub2-mkconfig -o ' + partitioning_efi_mountpoint + '/EFI/' + configuration_efi_vendor + '/grub.cfg' if is_rhel | bool else '/usr/sbin/grub-mkconfig -o /boot/grub/grub.cfg' }} ansible.builtin.command: "arch-chroot /mnt {{ configuration_grub_cfg_cmd }}" register: configuration_grub_result changed_when: configuration_grub_result.rc == 0