48 lines
1.8 KiB
YAML
48 lines
1.8 KiB
YAML
---
|
|
- name: "Bootstrap {{ os | capitalize }}"
|
|
vars:
|
|
_dnf_config: "{{ lookup('vars', bootstrap_var_key) }}"
|
|
_dnf_repos: "{{ _dnf_config.repos | map('regex_replace', '^', '--repo=') | join(' ') }}"
|
|
_dnf_groups: "{{ _dnf_config.base | join(' ') }}"
|
|
_dnf_extra: >-
|
|
{{
|
|
((_dnf_config.extra | default([])) + (_dnf_config.conditional | default([])))
|
|
| reject('equalto', '')
|
|
| join(' ')
|
|
}}
|
|
block:
|
|
- name: "Install base system for {{ os | capitalize }}"
|
|
ansible.builtin.command: >-
|
|
dnf --releasever={{ os_version }} --best {{ _dnf_repos }}
|
|
--installroot=/mnt --setopt=install_weak_deps=False
|
|
groupinstall -y {{ _dnf_groups }}
|
|
register: bootstrap_dnf_base_result
|
|
changed_when: bootstrap_dnf_base_result.rc == 0
|
|
|
|
- name: Ensure chroot has DNS resolution
|
|
ansible.builtin.file:
|
|
src: /run/NetworkManager/resolv.conf
|
|
dest: /mnt/etc/resolv.conf
|
|
state: link
|
|
force: true
|
|
|
|
- name: Install extra packages
|
|
ansible.builtin.command: >-
|
|
{{ chroot_command }} dnf --releasever={{ os_version }} --setopt=install_weak_deps=False
|
|
install -y {{ _dnf_extra }}
|
|
register: bootstrap_dnf_extra_result
|
|
changed_when: bootstrap_dnf_extra_result.rc == 0
|
|
|
|
- name: Detect installed kernel package name
|
|
ansible.builtin.command: "{{ chroot_command }} rpm -q kernel-core"
|
|
register: bootstrap_dnf_kernel_check
|
|
changed_when: false
|
|
failed_when: false
|
|
|
|
- name: Reinstall kernel package
|
|
vars:
|
|
_kernel_pkg: "{{ 'kernel-core' if bootstrap_dnf_kernel_check.rc == 0 else 'kernel' }}"
|
|
ansible.builtin.command: "{{ chroot_command }} dnf reinstall -y {{ _kernel_pkg }}"
|
|
register: bootstrap_dnf_kernel_result
|
|
changed_when: bootstrap_dnf_kernel_result.rc == 0
|