diff --git a/roles/global_defaults/tasks/system.yml b/roles/global_defaults/tasks/system.yml index 0b1ee4a..1aaaf4d 100644 --- a/roles/global_defaults/tasks/system.yml +++ b/roles/global_defaults/tasks/system.yml @@ -10,3 +10,30 @@ - name: Normalize disk configuration ansible.builtin.include_tasks: _normalize_disks.yml + +- name: Check if pre-computed system_cfg needs enrichment + when: system_cfg is defined + ansible.builtin.set_fact: + _bootstrap_needs_enrichment: "{{ hostname is not defined }}" + +- name: Merge pre-computed system_cfg with bootstrap system_defaults + when: + - system_cfg is defined + - _bootstrap_needs_enrichment | default(false) | bool + ansible.builtin.set_fact: + system_cfg: "{{ system_defaults | combine(system | default({}), recursive=True) | combine(system_cfg, recursive=True) }}" + +- name: Derive convenience facts from pre-computed system_cfg + when: + - system_cfg is defined + - _bootstrap_needs_enrichment | default(false) | bool + ansible.builtin.set_fact: + hostname: "{{ system_cfg.name | default(inventory_hostname) }}" + os: "{{ system_cfg.os | default('') }}" + os_version: "{{ system_cfg.version | default('') | string }}" + +- name: Normalize disk configuration (pre-computed system_cfg) + when: + - system_cfg is defined + - install_drive is not defined + ansible.builtin.include_tasks: _normalize_disks.yml