--- - name: Include Packages ansible.builtin.include_vars: file: packages.yml name: role_packages - name: Run OS-specific bootstrap process block: - name: Bootstrap ArchLinux when: os | lower == 'archlinux' ansible.builtin.command: pacstrap /mnt {{ role_packages.archlinux | join(' ') }} --asexplicit changed_when: result.rc == 0 register: result - name: Bootstrap Debian System when: os | lower in ['debian11', 'debian12'] ansible.builtin.command: "{{ item }}" changed_when: result.rc == 0 register: result with_items: - debootstrap --include={{ role_packages[os].base | join(',') }} {{ 'bullseye' if os == 'debian11' else 'bookworm' }} /mnt http://deb.debian.org/debian/ - arch-chroot /mnt apt install -y {{ role_packages[os].extra | join(' ') }} - arch-chroot /mnt apt remove -y libcups2 libavahi-common3 libavahi-common-data - name: Bootstrap Ubuntu System when: os | lower in ['ubuntu', 'ubuntu-lts'] ansible.builtin.command: "{{ item }}" changed_when: result.rc == 0 register: result with_items: - debootstrap --include={{ role_packages[os].base | join(',') }} {{ 'oracular' if os == 'ubuntu' else 'noble' }} /mnt http://archive.ubuntu.com/ubuntu/ - ln -sf /run/systemd/resolve/resolv.conf /mnt/etc/resolv.conf - arch-chroot /mnt sed -i '1s|$| universe|' /etc/apt/sources.list - arch-chroot /mnt apt update -y - arch-chroot /mnt apt install -y {{ role_packages[os].extra | join(' ') }} - name: Bootstrap AlmaLinux 9 when: os | lower == 'almalinux' ansible.builtin.command: "{{ item }}" changed_when: result.rc == 0 register: result with_items: - dnf --releasever=9 --best --repo=alma-baseos --installroot=/mnt --setopt=install_weak_deps=False groupinstall -y base core - ln -sf /run/systemd/resolve/resolv.conf /mnt/etc/resolv.conf - arch-chroot /mnt dnf --releasever=9 --setopt=install_weak_deps=False install -y {{ role_packages.almalinux | join(' ') }} - name: Bootstrap Fedora 41 when: os | lower == 'fedora' ansible.builtin.command: "{{ item }}" changed_when: result.rc == 0 register: result with_items: - dnf --releasever=41 --best --repo=fedora --repo=fedora-updates --installroot=/mnt --setopt=install_weak_deps=False groupinstall -y critical-path-base core - ln -sf /run/systemd/resolve/resolv.conf /mnt/etc/resolv.conf - arch-chroot /mnt dnf --releasever=41 --setopt=install_weak_deps=False install -y {{ role_packages.fedora | join(' ') }} - arch-chroot /mnt dnf reinstall -y kernel-core - name: Bootstrap RockyLinux 9 when: os | lower == 'rocky' ansible.builtin.command: "{{ item }}" changed_when: result.rc == 0 register: result with_items: - dnf --releasever=9 --best --repo=rocky-baseos --installroot=/mnt --setopt=install_weak_deps=False --setopt=optional_metadata_types=filelists groupinstall -y base core - ln -sf /run/systemd/resolve/resolv.conf /mnt/etc/resolv.conf - arch-chroot /mnt dnf --releasever=9 --setopt=install_weak_deps=False install -y {{ role_packages.rocky | join(' ') }} - name: Bootstrap RHEL System when: os | lower in ['rhel8', 'rhel9'] block: - name: Install base packages in chroot environment ansible.builtin.command: >- dnf --releasever={{ '8' if os == 'rhel8' else '9' }} --repo={{ os | lower }}-baseos --installroot=/mnt --setopt=install_weak_deps=False --setopt=optional_metadata_types=filelists groupinstall -y base core changed_when: result.rc == 0 register: result - name: Prepare chroot environment ansible.builtin.shell: | ln -sf /run/systemd/resolve/resolv.conf /mnt/etc/resolv.conf mkdir -p /mnt/usr/local/install/redhat/dvd mount --bind /usr/local/install/redhat/dvd /mnt/usr/local/install/redhat/dvd arch-chroot /mnt rpm --rebuilddb changed_when: result.rc == 0 register: result - name: Copy RHEL repo file into chroot environment ansible.builtin.copy: src: /etc/yum.repos.d/{{ os | lower }}.repo dest: /mnt/etc/yum.repos.d/{{ os | lower }}.repo mode: '0644' remote_src: true - name: Install additional packages in chroot ansible.builtin.command: >- arch-chroot /mnt dnf --releasever={{ '8' if os == 'rhel8' else '9' }} --setopt=install_weak_deps=False install -y {{ role_packages[os] | join(' ') }} changed_when: result.rc == 0 register: result