diff options
Diffstat (limited to 'roles/bootstrap/tasks')
| -rw-r--r-- | roles/bootstrap/tasks/install-archlinux-mac.yml | 49 | ||||
| -rw-r--r-- | roles/bootstrap/tasks/install-archlinux.yml | 48 | ||||
| -rw-r--r-- | roles/bootstrap/tasks/install-ubuntu-mac.yml | 40 | ||||
| -rw-r--r-- | roles/bootstrap/tasks/install-ubuntu.yml | 53 |
4 files changed, 81 insertions, 109 deletions
diff --git a/roles/bootstrap/tasks/install-archlinux-mac.yml b/roles/bootstrap/tasks/install-archlinux-mac.yml index ebf8059..26ae9ee 100644 --- a/roles/bootstrap/tasks/install-archlinux-mac.yml +++ b/roles/bootstrap/tasks/install-archlinux-mac.yml @@ -1,53 +1,4 @@ --- -# Apple EFI 1.x does not expose ext4 volumes via SimpleFileSystem, so the -# kernel must live on the FAT32 EFI partition where rEFInd already scans \boot\. -- name: "Ensure boot directory exists on EFI partition" - ansible.builtin.file: - path: "{{ mnt_boot_path }}/boot" - state: directory - mode: "0755" - -- name: "Copy kernel to EFI partition" - ansible.builtin.copy: - src: "{{ mnt_root_path }}/boot/{{ item }}" - dest: "{{ mnt_boot_path }}/boot/{{ item }}" - remote_src: true - mode: "0644" - loop: - - "vmlinuz-linux" - - "initramfs-linux.img" - -- name: "Configure rEFInd boot options on EFI partition" - ansible.builtin.template: - src: "refind_linux.conf.j2" - dest: "{{ mnt_boot_path }}/boot/refind_linux.conf" - mode: "0644" - -- name: "Install kernel sync script for EFI partition" - ansible.builtin.copy: - dest: "{{ mnt_root_path }}/usr/local/bin/refind-sync-kernel" - mode: "0755" - content: | - #!/bin/sh - cp /boot/vmlinuz-linux /boot/efi/boot/ - cp /boot/initramfs-linux.img /boot/efi/boot/ - -- name: "Override pacman hook to sync kernel to EFI partition" - ansible.builtin.copy: - dest: "{{ mnt_root_path }}/etc/pacman.d/100-refind.hook" - mode: "0644" - content: | - [Trigger] - Type = Package - Operation = Install - Operation = Upgrade - Target = linux - - [Action] - Description = Syncing kernel to EFI partition after kernel update - When = PostTransaction - Exec = /usr/local/bin/refind-sync-kernel - - name: "Install broadcom-wl driver" ansible.builtin.command: cmd: "arch-chroot {{ mnt_root_path }} pacman -S --noconfirm broadcom-wl" diff --git a/roles/bootstrap/tasks/install-archlinux.yml b/roles/bootstrap/tasks/install-archlinux.yml index f4ce711..f32aebc 100644 --- a/roles/bootstrap/tasks/install-archlinux.yml +++ b/roles/bootstrap/tasks/install-archlinux.yml @@ -35,30 +35,58 @@ - "pacman-key --populate" - "pacman -Syyu --noconfirm" -- name: "Ensure rEFInd bootloader installed" +- name: "Ensure rEFInd package installed" ansible.builtin.command: cmd: "arch-chroot {{ mnt_root_path }} pacman -S --noconfirm refind" changed_when: true -- name: "Install rEFInd" +- name: "Install rEFInd to EFI partition" ansible.builtin.command: cmd: "arch-chroot {{ mnt_root_path }} refind-install" changed_when: true -- name: "Configure rEFInd boot options" +- name: "Configure rEFInd base settings" ansible.builtin.template: - src: "refind_linux.conf.j2" - dest: "{{ mnt_root_path }}/boot/refind_linux.conf" + src: "refind.conf.j2" + dest: "{{ mnt_boot_path }}/EFI/refind/refind.conf" mode: "0644" + # NOTE: this is skipped because the docker test doesn't have proper EFI/refind directory created + tags: ["molecule-notest"] -- name: "Configure rEFInd settings" +- name: "Ensure arch EFI boot directory exists" + ansible.builtin.file: + path: "{{ mnt_boot_path }}/EFI/arch" + state: directory + mode: "0755" + +- name: "Copy kernel to EFI partition" + ansible.builtin.copy: + src: "{{ mnt_root_path }}/boot/{{ item }}" + dest: "{{ mnt_boot_path }}/EFI/arch/{{ item }}" + remote_src: true + mode: "0644" + loop: + - "vmlinuz-linux" + - "initramfs-linux.img" + +- name: "Configure Arch Linux boot entries" ansible.builtin.template: - src: "refind.conf.j2" - dest: "{{ mnt_boot_path }}/EFI/refind/refind.conf" + src: "refind_arch.conf.j2" + dest: "{{ mnt_boot_path }}/EFI/refind/arch.conf" mode: "0644" # NOTE: this is skipped because the docker test doesn't have proper EFI/refind directory created tags: ["molecule-notest"] +- name: "Install kernel sync script for EFI partition" + ansible.builtin.copy: + dest: "{{ mnt_root_path }}/usr/local/bin/refind-sync-kernel" + mode: "0755" + content: | + #!/bin/sh + mkdir -p /boot/efi/EFI/arch + cp /boot/vmlinuz-linux /boot/efi/EFI/arch/ + cp /boot/initramfs-linux.img /boot/efi/EFI/arch/ + - name: "Configure pacman hook for rEFInd kernel updates" ansible.builtin.copy: dest: "{{ mnt_root_path }}/etc/pacman.d/100-refind.hook" @@ -71,9 +99,9 @@ Target = linux [Action] - Description = Updating rEFInd after kernel update + Description = Syncing kernel to EFI partition after kernel update When = PostTransaction - Exec = /usr/bin/refind-install + Exec = /usr/local/bin/refind-sync-kernel - name: "Ensure ansible dependencies are installed in chroot" ansible.builtin.command: diff --git a/roles/bootstrap/tasks/install-ubuntu-mac.yml b/roles/bootstrap/tasks/install-ubuntu-mac.yml index 005c403..2cdbd7d 100644 --- a/roles/bootstrap/tasks/install-ubuntu-mac.yml +++ b/roles/bootstrap/tasks/install-ubuntu-mac.yml @@ -1,44 +1,4 @@ --- -# Apple EFI 1.x does not expose ext4 volumes via SimpleFileSystem, so the -# kernel must live on the FAT32 EFI partition where rEFInd already scans \boot\. -- name: "Ensure boot directory exists on EFI partition" - ansible.builtin.file: - path: "{{ mnt_boot_path }}/boot" - state: directory - mode: "0755" - -- name: "Copy kernel to EFI partition" - ansible.builtin.copy: - src: "{{ mnt_root_path }}/boot/{{ item }}" - dest: "{{ mnt_boot_path }}/boot/{{ item }}" - remote_src: true - follow: true - mode: "0644" - loop: - - "vmlinuz" - - "initrd.img" - -- name: "Configure rEFInd boot options on EFI partition" - ansible.builtin.template: - src: "refind_linux.conf.j2" - dest: "{{ mnt_boot_path }}/boot/refind_linux.conf" - mode: "0644" - -- name: "Ensure kernel post-install hook directory exists" - ansible.builtin.file: - path: "{{ mnt_root_path }}/etc/kernel/postinst.d" - state: directory - mode: "0755" - -- name: "Install kernel sync script for EFI partition" - ansible.builtin.copy: - dest: "{{ mnt_root_path }}/etc/kernel/postinst.d/refind-sync-kernel" - mode: "0755" - content: | - #!/bin/sh - cp /boot/vmlinuz /boot/efi/boot/ - cp /boot/initrd.img /boot/efi/boot/ - - name: "Install bcmwl-kernel-source in chroot" ansible.builtin.command: cmd: "arch-chroot {{ mnt_root_path }} apt-get install -y bcmwl-kernel-source" diff --git a/roles/bootstrap/tasks/install-ubuntu.yml b/roles/bootstrap/tasks/install-ubuntu.yml index 3c18b0e..cb4add5 100644 --- a/roles/bootstrap/tasks/install-ubuntu.yml +++ b/roles/bootstrap/tasks/install-ubuntu.yml @@ -44,28 +44,61 @@ - "apt-get update" - "apt-get install -y {{ bootstrap_distro.packages | join(' ') }}" -- name: "Ensure rEFInd bootloader installed" +- name: "Ensure rEFInd package installed" ansible.builtin.command: cmd: "arch-chroot {{ mnt_root_path }} apt-get install -y refind" changed_when: true -- name: "Install rEFInd" +- name: "Install rEFInd to EFI partition" ansible.builtin.command: cmd: "arch-chroot {{ mnt_root_path }} refind-install" changed_when: true -- name: "Configure rEFInd boot options" +- name: "Configure rEFInd base settings" ansible.builtin.template: - src: "refind_linux.conf.j2" - dest: "{{ mnt_root_path }}/boot/refind_linux.conf" + src: "refind.conf.j2" + dest: "{{ mnt_boot_path }}/EFI/refind/refind.conf" mode: "0644" + # NOTE: this is skipped because the docker test doesn't have proper EFI/refind directory created + tags: ["molecule-notest"] + +- name: "Ensure ubuntu EFI boot directory exists" + ansible.builtin.file: + path: "{{ mnt_boot_path }}/EFI/ubuntu" + state: directory + mode: "0755" -- name: "Configure rEFInd settings" +- name: "Copy kernel to EFI partition" ansible.builtin.copy: - dest: "{{ mnt_boot_path }}/EFI/refind/refind.conf" + src: "{{ mnt_root_path }}/boot/{{ item }}" + dest: "{{ mnt_boot_path }}/EFI/ubuntu/{{ item }}" + remote_src: true + follow: true + mode: "0644" + loop: + - "vmlinuz" + - "initrd.img" + +- name: "Configure Ubuntu boot entries" + ansible.builtin.template: + src: "refind_ubuntu.conf.j2" + dest: "{{ mnt_boot_path }}/EFI/refind/ubuntu.conf" mode: "0644" - content: | - timeout 5 - textonly true # NOTE: this is skipped because the docker test doesn't have proper EFI/refind directory created tags: ["molecule-notest"] + +- name: "Ensure kernel post-install hook directory exists" + ansible.builtin.file: + path: "{{ mnt_root_path }}/etc/kernel/postinst.d" + state: directory + mode: "0755" + +- name: "Install kernel sync script for EFI partition" + ansible.builtin.copy: + dest: "{{ mnt_root_path }}/etc/kernel/postinst.d/refind-sync-kernel" + mode: "0755" + content: | + #!/bin/sh + mkdir -p /boot/efi/EFI/ubuntu + cp /boot/vmlinuz /boot/efi/EFI/ubuntu/ + cp /boot/initrd.img /boot/efi/EFI/ubuntu/ |
