--- # hashistack variable injection playbook - name: "Load global variables" block: - name: "Stat global configuration file" ansible.builtin.stat: path: "{{ configuration_directory }}/{{ configuration_global_vars_file }}" register: _global_config_file delegate_to: localhost - name: "Make sure global configuration file exists" ansible.builtin.assert: that: - _global_config_file.stat.exists delegate_to: localhost - name: "Load global variables" ansible.builtin.include_vars: dir: "{{ configuration_directory }}" files_matching: "{{ configuration_global_vars_file }}" depth: 1 delegate_to: localhost - name: "Load group specific variables" block: - name: "Stat group specific config file" ansible.builtin.stat: path: "{{ configuration_directory }}/{{ group_name }}/{{ configuration_global_vars_file }}" register: _group_config_file loop: "{{ group_names }}" loop_control: loop_var: group_name - name: Load group specific variables ansible.builtin.include_vars: dir: "{{ configuration_directory }}/{{ item.group_name }}" files_matching: "{{ configuration_global_vars_file }}" depth: 1 loop: "{{ _group_config_file.results }}" when: item.stat.exists and item.group_name in group_names loop_control: loop_var: item delegate_to: localhost - name: "Load host specific variables" block: - name: "Stat host specific config file" ansible.builtin.stat: path: "{{ configuration_directory }}/{{ group_name }}/{{ inventory_hostname }}/{{ configuration_global_vars_file }}" register: _host_config_file loop: "{{ group_names }}" loop_control: loop_var: group_name delegate_to: localhost - name: Load host specific variables ansible.builtin.include_vars: dir: "{{ configuration_directory }}/{{ item.group_name }}/{{ inventory_hostname }}" files_matching: "{{ configuration_global_vars_file }}" loop: "{{ _host_config_file.results }}" when: item.stat.exists loop_control: loop_var: item delegate_to: localhost - name: "Merge consul configurations" ansible.builtin.import_tasks: file: "consul_vars.yml" when: - enable_consul | bool - "'consul_servers' in group_names" - name: "Merge vault configurations" ansible.builtin.import_tasks: file: "vault_vars.yml" when: - enable_vault | bool - "'vault_servers' in group_names"