--- - name: Bootstrap RHEL System block: - name: Install base packages in chroot environment vars: bootstrap_rhel_release: "{{ bootstrap_os_key | replace('rhel', '') }}" ansible.builtin.command: >- dnf --releasever={{ bootstrap_rhel_release }} --repo={{ bootstrap_os_key }}-baseos --installroot=/mnt --setopt=install_weak_deps=False --setopt=optional_metadata_types=filelists groupinstall -y core base standard register: bootstrap_result changed_when: bootstrap_result.rc == 0 - name: Ensure chroot has resolv.conf ansible.builtin.file: src: /run/NetworkManager/resolv.conf dest: /mnt/etc/resolv.conf state: link force: true - name: Ensure chroot RHEL DVD directory exists ansible.builtin.file: path: /mnt/usr/local/install/redhat/dvd state: directory mode: "0755" - name: Bind mount RHEL DVD into chroot ansible.posix.mount: src: /usr/local/install/redhat/dvd path: /mnt/usr/local/install/redhat/dvd fstype: none opts: bind state: mounted - name: Rebuild RPM database inside chroot ansible.builtin.command: argv: - arch-chroot - /mnt - rpm - --rebuilddb register: bootstrap_rpm_rebuild_result changed_when: bootstrap_rpm_rebuild_result.rc == 0 - name: Copy RHEL repo file into chroot environment ansible.builtin.copy: src: /etc/yum.repos.d/{{ bootstrap_os_key }}.repo dest: /mnt/etc/yum.repos.d/redhat.repo mode: "0644" remote_src: true - name: Install additional packages in chroot vars: bootstrap_rhel_release: "{{ bootstrap_os_key | replace('rhel', '') }}" bootstrap_rhel_extra: >- {{ lookup('vars', bootstrap_var_key) | reject('equalto', '') | join(' ') }} ansible.builtin.command: >- arch-chroot /mnt dnf --releasever={{ bootstrap_rhel_release }} --setopt=install_weak_deps=False install -y {{ bootstrap_rhel_extra }} register: bootstrap_result changed_when: bootstrap_result.rc == 0