diff --git a/roles/bootstrap/tasks/_dnf_family.yml b/roles/bootstrap/tasks/_dnf_family.yml new file mode 100644 index 0000000..0168cce --- /dev/null +++ b/roles/bootstrap/tasks/_dnf_family.yml @@ -0,0 +1,41 @@ +--- +- name: "Bootstrap {{ os | capitalize }}" + vars: + _dnf_os_config: + rocky: + repos: [baseos, appstream] + groups: [core] + almalinux: + repos: [baseos, appstream] + groups: [core] + fedora: + repos: [fedora, fedora-updates] + groups: [critical-path-base, core] + _dnf_repos: "{{ _dnf_os_config[os].repos | map('regex_replace', '^', '--repo=') | join(' ') }}" + _dnf_groups: "{{ _dnf_os_config[os].groups | join(' ') }}" + _dnf_extra: >- + {{ + lookup('vars', bootstrap_var_key) + | reject('equalto', '') + | join(' ') + }} + block: + - name: "Install {{ os | capitalize }} base system" + ansible.builtin.command: >- + dnf --releasever={{ os_version }} --best {{ _dnf_repos }} + --installroot=/mnt --setopt=install_weak_deps=False + groupinstall -y {{ _dnf_groups }} + register: _dnf_base_result + changed_when: _dnf_base_result.rc == 0 + + - name: Install extra packages + ansible.builtin.command: >- + {{ chroot_command }} dnf --releasever={{ os_version }} --setopt=install_weak_deps=False + install -y {{ _dnf_extra }} + register: _dnf_extra_result + changed_when: _dnf_extra_result.rc == 0 + + - name: Reinstall kernel core + ansible.builtin.command: "{{ chroot_command }} dnf reinstall -y kernel-core" + register: _dnf_kernel_result + changed_when: _dnf_kernel_result.rc == 0 diff --git a/roles/bootstrap/tasks/almalinux.yml b/roles/bootstrap/tasks/almalinux.yml deleted file mode 100644 index 98b3072..0000000 --- a/roles/bootstrap/tasks/almalinux.yml +++ /dev/null @@ -1,29 +0,0 @@ ---- -- name: Bootstrap AlmaLinux - vars: - bootstrap_almalinux_extra: >- - {{ - lookup('vars', bootstrap_var_key) - | reject('equalto', '') - | join(' ') - }} - block: - - name: Install AlmaLinux base system - ansible.builtin.command: >- - dnf --releasever={{ os_version }} --best --repo=baseos --repo=appstream - --installroot=/mnt --setopt=install_weak_deps=False - groupinstall -y core - register: bootstrap_almalinux_base_result - changed_when: bootstrap_almalinux_base_result.rc == 0 - - - name: Install extra packages - ansible.builtin.command: >- - {{ chroot_command }} dnf --releasever={{ os_version }} --setopt=install_weak_deps=False - install -y {{ bootstrap_almalinux_extra }} - register: bootstrap_almalinux_extra_result - changed_when: bootstrap_almalinux_extra_result.rc == 0 - - - name: Reinstall kernel core - ansible.builtin.command: "{{ chroot_command }} dnf reinstall -y kernel-core" - register: bootstrap_almalinux_kernel_result - changed_when: bootstrap_almalinux_kernel_result.rc == 0 diff --git a/roles/bootstrap/tasks/fedora.yml b/roles/bootstrap/tasks/fedora.yml deleted file mode 100644 index be93676..0000000 --- a/roles/bootstrap/tasks/fedora.yml +++ /dev/null @@ -1,29 +0,0 @@ ---- -- name: Bootstrap Fedora - vars: - bootstrap_fedora_extra: >- - {{ - lookup('vars', bootstrap_var_key) - | reject('equalto', '') - | join(' ') - }} - block: - - name: Install Fedora base system - ansible.builtin.command: >- - dnf --releasever={{ os_version }} --best --repo=fedora --repo=fedora-updates - --installroot=/mnt --setopt=install_weak_deps=False - groupinstall -y critical-path-base core - register: bootstrap_fedora_base_result - changed_when: bootstrap_fedora_base_result.rc == 0 - - - name: Install extra packages - ansible.builtin.command: >- - {{ chroot_command }} dnf --releasever={{ os_version }} --setopt=install_weak_deps=False - install -y {{ bootstrap_fedora_extra }} - register: bootstrap_fedora_extra_result - changed_when: bootstrap_fedora_extra_result.rc == 0 - - - name: Reinstall kernel core - ansible.builtin.command: "{{ chroot_command }} dnf reinstall -y kernel-core" - register: bootstrap_fedora_kernel_result - changed_when: bootstrap_fedora_kernel_result.rc == 0 diff --git a/roles/bootstrap/tasks/main.yml b/roles/bootstrap/tasks/main.yml index 9908667..7c1928b 100644 --- a/roles/bootstrap/tasks/main.yml +++ b/roles/bootstrap/tasks/main.yml @@ -29,13 +29,13 @@ - name: Run OS-specific bootstrap process vars: bootstrap_os_task_map: - almalinux: almalinux.yml + almalinux: _dnf_family.yml alpine: alpine.yml archlinux: archlinux.yml debian: debian.yml - fedora: fedora.yml + fedora: _dnf_family.yml opensuse: opensuse.yml - rocky: rocky.yml + rocky: _dnf_family.yml rhel: rhel.yml ubuntu: ubuntu.yml ubuntu-lts: ubuntu.yml diff --git a/roles/bootstrap/tasks/rocky.yml b/roles/bootstrap/tasks/rocky.yml deleted file mode 100644 index 856e56c..0000000 --- a/roles/bootstrap/tasks/rocky.yml +++ /dev/null @@ -1,29 +0,0 @@ ---- -- name: Bootstrap Rocky Linux - vars: - bootstrap_rocky_extra: >- - {{ - lookup('vars', bootstrap_var_key) - | reject('equalto', '') - | join(' ') - }} - block: - - name: Install Rocky Linux base system - ansible.builtin.command: >- - dnf --releasever={{ os_version }} --best --repo=baseos --repo=appstream - --installroot=/mnt --setopt=install_weak_deps=False - groupinstall -y core - register: bootstrap_rocky_base_result - changed_when: bootstrap_rocky_base_result.rc == 0 - - - name: Install extra packages - ansible.builtin.command: >- - {{ chroot_command }} dnf --releasever={{ os_version }} --setopt=install_weak_deps=False - install -y {{ bootstrap_rocky_extra }} - register: bootstrap_rocky_extra_result - changed_when: bootstrap_rocky_extra_result.rc == 0 - - - name: Reinstall kernel core - ansible.builtin.command: "{{ chroot_command }} dnf reinstall -y kernel-core" - register: bootstrap_rocky_kernel_result - changed_when: bootstrap_rocky_kernel_result.rc == 0