- name: Create GRUB directory become: true file: path: "{{ vyos_install_root }}/boot/grub" state: directory # It is necessary to mount and bind /dev, /proc, /sys and /boot in order to execute grub-install # and install GRUB correctly within the {{ volume_drive }} using chroot # XXX: ansible mount module requires fstype so it cannot be used for binding an already # mounted location, we get to use mount directly at least for /boot - name: Mount and bind /dev /proc /sys and {{ vyos_write_root }}/boot to {{ vyos_install_root }} become: true shell: mount --bind /dev {{ vyos_install_root }}/dev && mount --bind /proc {{ vyos_install_root }}/proc && mount --bind /sys {{ vyos_install_root }}/sys && mount --bind {{ vyos_write_root }} {{ vyos_install_root }}/boot - name: Create efi directory become: true file: path: "{{ vyos_install_root }}/boot/grub" state: directory - name: Mount EFI become: true mount: src: "{{ vyos_target_drive }}p{{ partition_num_efi }}" path: "{{ vyos_install_root }}/boot/efi" fstype: vfat state: mounted boot: no when: partition_num_efi is defined - name: Install GRUB in the boot sector of {{ vyos_target_drive }} become: true command: "chroot {{ vyos_install_root }} grub-install --no-floppy --target=i386-pc --root-directory=/boot {{ loop_device.stdout }} --force" args: creates: "{{ vyos_install_root }}/boot/grub/grubenv" when: (vyos_parttable_type == "mbr") or (vyos_parttable_type == "hybrid") - name: Install EFI GRUB to {{ vyos_target_drive }}p{{ partition_num_efi }} become: true command: "chroot {{ vyos_install_root }} grub-install --no-floppy --recheck --target=x86_64-efi --force-extra-removable --root-directory=/boot --efi-directory=/boot/efi --bootloader-id='VyOS' --no-uefi-secure-boot" when: partition_num_efi is defined - name: Configure GRUB become: true template: src: templates/boot/grub/grub.cfg.j2 dest: "{{ vyos_write_root }}/boot/grub/grub.cfg" mode: 0644 - name: Unmount EFI become: true mount: src: "{{ vyos_target_drive }}p{{ partition_num_efi }}" path: "{{ vyos_install_root }}/boot/efi" fstype: vfat state: absent boot: no when: partition_num_efi is defined