--- - name: Configre work environment become: true block: - name: Wait for connection ansible.builtin.wait_for_connection: timeout: 30 delay: 5 - name: Gather facts ansible.builtin.setup: - name: Check if host is booted from the Arch install media ansible.builtin.stat: path: /run/archiso register: archiso_stat - name: Abort if the host is not booted from the Arch install media ansible.builtin.fail: msg: This host is not booted from the Arch install media! when: not archiso_stat.stat.exists - name: Setect Interface when: hypervisor == "vmware" ansible.builtin.shell: "set -o pipefail && ip l | awk -F': ' '!/lo/{print $2; exit}'" changed_when: interface_name.rc == 0 register: interface_name - name: Set IP-Address when: hypervisor == "vmware" ansible.builtin.command: "ip addr replace {{ ansible_host }}/{{ vm_nms | default(24) }} dev {{ interface_name.stdout }}" changed_when: result.rc == 0 register: result - name: Set Default Gateway when: hypervisor == "vmware" ansible.builtin.command: "ip route replace default via {{ vm_gw }}" changed_when: result.rc == 0 register: result - name: Synchronize clock via NTP ansible.builtin.command: timedatectl set-ntp true changed_when: result.rc == 0 register: result - name: Speed-up Bootstrap process ansible.builtin.lineinfile: path: /etc/pacman.conf regexp: ^#ParallelDownloads = line: ParallelDownloads = 20 - name: Wait for Pacman ansible.builtin.wait_for: timeout: 15 - name: Setup Pacman community.general.pacman: update_cache: true force: true name: "{{ item.name }}" state: latest loop: - { name: glibc } - { name: dnf, os: [almalinux, fedora, rhel9, rhel8, rocky] } - { name: debootstrap, os: [debian11, debian12, ubuntu, ubuntu-lts] } - { name: debian-archive-keyring, os: [debian11, debian12] } - { name: ubuntu-keyring, os: [ubuntu, ubuntu-lts] } when: "'os' not in item or os in item.os" retries: 4 delay: 15 - name: Prepare /iso mount and repository for RHEL-based systems when: os | lower in ["rhel8", "rhel9"] block: - name: Create /iso directory ansible.builtin.file: path: /usr/local/install/redhat/dvd state: directory mode: '0755' - name: Mount RHEL ISO ansible.posix.mount: src: /dev/sr2 path: /usr/local/install/redhat/dvd fstype: iso9660 opts: "ro,loop" state: mounted - name: Configure RHEL Repos for installation when: os | lower in ["almalinux", "fedora", "rhel8", "rhel9", "rocky"] block: - name: Create directories for repository files and RPM GPG keys ansible.builtin.file: path: /etc/yum.repos.d state: directory mode: '0755' - name: Create RHEL repository file ansible.builtin.template: src: "{{ os | lower }}.repo.j2" dest: /etc/yum.repos.d/{{ os | lower }}.repo mode: '0644'