diff --git a/roles/global_defaults/tasks/system.yml b/roles/global_defaults/tasks/system.yml index bca8439..68ffdf4 100644 --- a/roles/global_defaults/tasks/system.yml +++ b/roles/global_defaults/tasks/system.yml @@ -48,6 +48,28 @@ }, recursive=True) }} +- name: Populate primary network fields from first interface (pre-computed) + when: + - system_cfg is defined + - _bootstrap_needs_enrichment | default(false) | bool + - system_cfg.network.interfaces | default([]) | length > 0 + - system_cfg.network.bridge | default('') | string | length == 0 + vars: + _primary: "{{ system_cfg.network.interfaces[0] }}" + ansible.builtin.set_fact: + system_cfg: >- + {{ + system_cfg | combine({ + 'network': system_cfg.network | combine({ + 'bridge': _primary.bridge | default(''), + 'vlan': _primary.vlan | default(''), + 'ip': _primary.ip | default(''), + 'prefix': _primary.prefix | default(''), + 'gateway': _primary.gateway | default('') + }) + }, recursive=True) + }} + - name: Derive convenience facts from pre-computed system_cfg when: - system_cfg is defined