--- - name: "Run pacstrap" ansible.builtin.command: cmd: "pacstrap -K {{ mnt_root_path }} base linux linux-firmware" changed_when: true - name: "Generate fstab" ansible.builtin.shell: cmd: "genfstab -t PARTLABEL {{ mnt_root_path }} > {{ mnt_root_path }}/etc/fstab" changed_when: true - name: "Run bootclt" ansible.builtin.command: cmd: "arch-chroot {{ mnt_root_path }} bootctl install" changed_when: true - name: "Enable systemd-boot-update" ansible.builtin.command: cmd: "arch-chroot {{ mnt_root_path }} systemctl enable systemd-boot-update" changed_when: false - name: "Template systemd-boot files" ansible.builtin.template: src: "{{ item.src }}" dest: "{{ item.dest }}" mode: "0644" with_items: - src: "loader.conf.j2" dest: "{{ mnt_boot_path }}/loader/loader.conf" - src: "archlinux.conf.j2" dest: "{{ mnt_boot_path }}/loader/entries/archlinux.conf" - name: "Create distro kernel directory" ansible.builtin.file: path: "{{ mnt_boot_path }}/archlinux" state: "directory" mode: "0700" - name: "Copy kernel to efi partition" ansible.builtin.copy: src: "{{ item }}" dest: "{{ mnt_boot_path }}/archlinux/" remote_src: true mode: "0700" with_items: - "{{ mnt_root_path }}/boot/vmlinuz-linux" - "{{ mnt_root_path }}/boot/initramfs-linux.img" - "{{ mnt_root_path }}/boot/initramfs-linux-fallback.img" - name: "Configure pacman hook for updating kernel" ansible.builtin.copy: dest: "{{ mnt_root_path }}/etc/pacman.d/100-systemd-boot.hook" mode: "0644" content: | [Trigger] Type = Package Operation = Upgrade Target = linux [Action] Description = Updating systemd-boot When = PostTransaction Exec = /usr/bin/cp /boot/vmlinuz-linux /boot/efi/archlinux/vmlinuz-linux Exec = /usr/bin/cp /boot/initramfs-linux.img /boot/efi/archlinux/initramfs-linux.img Exec = /usr/bin/cp /boot/initramfs-linux-fallback.img /boot/efi/archlinux/initramfs-linux-fallback.img - name: "Configure hostname in chroot" ansible.builtin.copy: dest: "{{ mnt_root_path }}/etc/hostname" mode: "0644" content: "{{ hostname }}" - name: "Configure pacman in chroot" ansible.builtin.copy: src: "/etc/pacman.conf" dest: "{{ mnt_root_path }}/etc/pacman.conf" remote_src: true force: false mode: "0644" - name: "Configure system in chroot" ansible.builtin.command: cmd: "arch-chroot {{ mnt_root_path }} {{ item }}" changed_when: true with_items: - "pacman-key --init" - "pacman-key --populate" - "pacman -Syyu --noconfirm" - name: "Ensure ansible dependencies are installed in chroot" ansible.builtin.command: cmd: "arch-chroot {{ mnt_root_path }} pacman -S --noconfirm python3" changed_when: true