--- - name: Ensuring config directories exist file: path: "{{ node_config_directory }}/{{ item }}" state: "directory" recurse: yes with_items: - "ironic-api" - "ironic-conductor" - "ironic-inspector" - "ironic-pxe" - "ironic-dnsmasq" - name: Check if policies shall be overwritten local_action: stat path="{{ item }}" run_once: True register: ironic_policy with_first_found: - files: "{{ supported_policy_format_list }}" paths: - "{{ node_custom_config }}/ironic/" skip: true - name: Set ironic policy file set_fact: ironic_policy_file: "{{ ironic_policy.results.0.stat.path | basename }}" ironic_policy_file_path: "{{ ironic_policy.results.0.stat.path }}" when: - ironic_policy.results - name: Copying over config.json files for services template: src: "{{ item }}.json.j2" dest: "{{ node_config_directory }}/{{ item }}/config.json" with_items: - "ironic-api" - "ironic-conductor" - "ironic-inspector" - "ironic-pxe" - "ironic-dnsmasq" - name: Copying over ironic.conf vars: service_name: "{{ item }}" merge_configs: sources: - "{{ role_path }}/templates/ironic.conf.j2" - "{{ node_custom_config }}/global.conf" - "{{ node_custom_config }}/ironic.conf" - "{{ node_custom_config }}/ironic/{{ item }}.conf" - "{{ node_custom_config }}/ironic/{{ inventory_hostname }}/ironic.conf" dest: "{{ node_config_directory }}/{{ item }}/ironic.conf" with_items: - "ironic-api" - "ironic-conductor" - name: Copying over inspector.conf vars: service_name: "ironic-inspector" merge_configs: sources: - "{{ role_path }}/templates/ironic-inspector.conf.j2" - "{{ node_custom_config }}/global.conf" - "{{ node_custom_config }}/ironic-inspector.conf" - "{{ node_custom_config }}/ironic-inspector/inspector.conf" - "{{ node_custom_config }}/ironic-inspector/{{ inventory_hostname }}/inspector.conf" dest: "{{ node_config_directory }}/ironic-inspector/inspector.conf" when: inventory_hostname in groups['ironic-inspector'] - name: Copying over dnsmasq.conf template: src: "{{ item }}" dest: "{{ node_config_directory }}/ironic-dnsmasq/dnsmasq.conf" with_first_found: - "{{ node_custom_config }}/ironic/ironic-dnsmasq.conf" - "{{ node_custom_config }}/ironic/{{ inventory_hostname }}/ironic-dnsmasq.conf" - "ironic-dnsmasq.conf.j2" when: inventory_hostname in groups['ironic-inspector'] - name: Copying pxelinux.cfg default template: src: "{{ item }}" dest: "{{ node_config_directory }}/ironic-pxe/default" with_first_found: - "{{ node_custom_config }}/ironic/pxelinux.default" - "{{ node_custom_config }}/ironic/{{ inventory_hostname }}/pxelinux.default" - "pxelinux.default.j2" when: # Only required when Ironic inspector is in use. - groups['ironic-inspector'] | length > 0 - inventory_hostname in groups['ironic-pxe'] - not enable_ironic_pxe_uefi | bool - name: Copying ironic_pxe_uefi.cfg default template: src: "{{ item }}" dest: "{{ node_config_directory }}/ironic-pxe/default" with_first_found: - "{{ node_custom_config }}/ironic/ironic_pxe_uefi.default" - "{{ node_custom_config }}/ironic/{{ inventory_hostname }}/ironic_pxe_uefi.default" - "ironic_pxe_uefi.default.j2" when: - inventory_hostname in groups['ironic-pxe'] - enable_ironic_pxe_uefi | bool - name: Copying ironic-agent kernel and initramfs copy: src: "{{ node_custom_config }}/ironic/{{ item }}" dest: "{{ node_config_directory }}/ironic-pxe/{{ item }}" with_items: - "ironic-agent.kernel" - "ironic-agent.initramfs" when: # Only required when Ironic inspector is in use. - groups['ironic-inspector'] | length > 0 - inventory_hostname in groups['ironic-pxe'] - not enable_ironic_pxe_uefi | bool - name: Copying over existing policy file template: src: "{{ ironic_policy_file_path }}" dest: "{{ node_config_directory }}/{{ item }}/{{ ironic_policy_file }}" with_items: - "ironic-api" - "ironic-conductor" - "ironic-inspector" - "ironic-pxe" when: ironic_policy_file is defined