refactor(bootstrap,configuration): add per-role _normalize.yml for platform resolution
This commit is contained in:
24
roles/bootstrap/tasks/_normalize.yml
Normal file
24
roles/bootstrap/tasks/_normalize.yml
Normal file
@@ -0,0 +1,24 @@
|
||||
---
|
||||
# Resolve the OS-specific variable namespace and task file for the bootstrap role.
|
||||
- name: Validate OS is supported for bootstrap
|
||||
ansible.builtin.assert:
|
||||
that:
|
||||
- os is defined
|
||||
- os in bootstrap_os_task_map
|
||||
fail_msg: >-
|
||||
Unsupported OS '{{ os | default("undefined") }}' for bootstrap.
|
||||
Supported: {{ bootstrap_os_task_map | dict2items | map(attribute='key') | join(', ') }}
|
||||
quiet: true
|
||||
vars:
|
||||
bootstrap_os_task_map:
|
||||
almalinux: _dnf_family.yml
|
||||
alpine: alpine.yml
|
||||
archlinux: archlinux.yml
|
||||
debian: debian.yml
|
||||
fedora: _dnf_family.yml
|
||||
opensuse: opensuse.yml
|
||||
rocky: _dnf_family.yml
|
||||
rhel: rhel.yml
|
||||
ubuntu: ubuntu.yml
|
||||
ubuntu-lts: ubuntu.yml
|
||||
void: void.yml
|
||||
@@ -1,6 +1,9 @@
|
||||
---
|
||||
- name: Normalize bootstrap
|
||||
ansible.builtin.import_tasks: _normalize.yml
|
||||
|
||||
- name: Create API filesystem mountpoints in installroot
|
||||
when: is_rhel | bool
|
||||
when: os_family == 'RedHat'
|
||||
ansible.builtin.file:
|
||||
path: "/mnt/{{ item }}"
|
||||
state: directory
|
||||
@@ -11,7 +14,7 @@
|
||||
- sys
|
||||
|
||||
- name: Mount API filesystems into installroot
|
||||
when: is_rhel | bool
|
||||
when: os_family == 'RedHat'
|
||||
ansible.posix.mount:
|
||||
src: "{{ item.src }}"
|
||||
path: "/mnt/{{ item.path }}"
|
||||
|
||||
16
roles/configuration/tasks/_normalize.yml
Normal file
16
roles/configuration/tasks/_normalize.yml
Normal file
@@ -0,0 +1,16 @@
|
||||
---
|
||||
# Resolve platform-specific configuration for the target OS family.
|
||||
# Sets _configuration_platform from configuration_platform_config[os_family].
|
||||
- name: Resolve platform-specific configuration
|
||||
ansible.builtin.assert:
|
||||
that:
|
||||
- os_family is defined
|
||||
- os_family in configuration_platform_config
|
||||
fail_msg: >-
|
||||
Unsupported os_family '{{ os_family | default("undefined") }}'.
|
||||
Extend configuration_platform_config in vars/main.yml.
|
||||
quiet: true
|
||||
|
||||
- name: Set platform configuration
|
||||
ansible.builtin.set_fact:
|
||||
_configuration_platform: "{{ configuration_platform_config[os_family] }}"
|
||||
@@ -1,7 +1,6 @@
|
||||
---
|
||||
- name: Resolve platform-specific configuration
|
||||
ansible.builtin.set_fact:
|
||||
_configuration_platform: "{{ configuration_platform_config[os_family] }}"
|
||||
- name: Normalize configuration
|
||||
ansible.builtin.import_tasks: _normalize.yml
|
||||
|
||||
- name: Include configuration tasks
|
||||
when: configuration_task.when | default(true)
|
||||
|
||||
Reference in New Issue
Block a user