refactor(bootstrap,configuration): add per-role _normalize.yml for platform resolution

This commit is contained in:
2026-02-22 02:27:46 +01:00
parent 3deb3ea751
commit 87fd69b825
4 changed files with 47 additions and 5 deletions

View 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

View File

@@ -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 }}"

View 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] }}"

View File

@@ -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)