--- - name: Ensure the Kolla OpenStack configuration directores exist file: path: "{{ item.dest }}" state: directory mode: 0750 with_items: "{{ kolla_openstack_custom_config }}" when: item.enabled | bool - name: Ensure the Kolla OpenStack configuration files exist template: src: "{{ item.src }}" dest: "{{ kolla_node_custom_config_path }}/{{ item.dest }}" mode: 0640 with_items: - { src: glance.conf.j2, dest: glance.conf, enabled: "{{ kolla_enable_glance }}" } - { src: ironic.conf.j2, dest: ironic.conf, enabled: "{{ kolla_enable_ironic }}" } - { src: ironic-dnsmasq.conf.j2, dest: ironic/ironic-dnsmasq.conf, enabled: "{{ kolla_enable_ironic }}" } - { src: ironic-inspector.conf.j2, dest: ironic-inspector.conf, enabled: "{{ kolla_enable_ironic }}" } - { src: magnum.conf.j2, dest: magnum.conf, enabled: "{{ kolla_enable_magnum }}" } - { src: ml2_conf.ini.j2, dest: neutron/ml2_conf.ini, enabled: "{{ kolla_enable_neutron }}" } - { src: murano.conf.j2, dest: murano.conf, enabled: "{{ kolla_enable_murano }}" } - { src: neutron.conf.j2, dest: neutron.conf, enabled: "{{ kolla_enable_neutron }}" } - { src: nova.conf.j2, dest: nova.conf, enabled: "{{ kolla_enable_nova }}" } - { src: pxelinux.default.j2, dest: ironic/pxelinux.default, enabled: "{{ kolla_enable_ironic }}" } - { src: sahara.conf.j2, dest: sahara.conf, enabled: "{{ kolla_enable_sahara }}" } when: item.enabled | bool - name: Ensure the ironic inspector kernel and ramdisk are downloaded get_url: url: "{{ item.url }}" dest: "{{ kolla_node_custom_config_path }}/ironic/{{ item.dest }}" mode: 0640 with_items: - { url: "{{ kolla_inspector_ipa_kernel_upstream_url }}", dest: "ironic-agent.kernel" } - { url: "{{ kolla_inspector_ipa_ramdisk_upstream_url }}", dest: "ironic-agent.initramfs" } when: - kolla_enable_ironic | bool - item.url != None - name: Ensure the ironic inspector kernel and ramdisk are copied copy: src: "{{ item.path }}" dest: "{{ kolla_node_custom_config_path }}/ironic/{{ item.dest }}" mode: 0640 with_items: - { path: "{{ kolla_inspector_ipa_kernel_path }}", dest: "ironic-agent.kernel" } - { path: "{{ kolla_inspector_ipa_ramdisk_path }}", dest: "ironic-agent.initramfs" } when: - kolla_enable_ironic | bool - item.path != None # We support a fairly flexible mechanism of dropping config file templates into # an 'extra' config directory, and passing these through to kolla-ansible. We # look for matching files in the source directory to template, and also remove # any unexpected files from the destination, to support removal of files. - name: Find extra configuration files find: path: "{{ item.src }}" patterns: "{{ item.patterns }}" with_items: "{{ kolla_openstack_custom_config }}" register: find_src_result - name: Find previously generated extra configuration files find: path: "{{ item.dest }}" patterns: "{{ item.patterns }}" with_items: "{{ kolla_openstack_custom_config }}" register: find_dest_result - name: Ensure extra configuration files exist template: src: "{{ item.1.path }}" dest: "{{ item.0.item.dest }}/{{ item.1.path | basename }}" mode: 0640 with_subelements: - "{{ find_src_result.results }}" - files - skip_missing: True when: item.0.item.enabled | bool - name: Ensure unnecessary extra configuration files are absent file: path: "{{ item.1.path }}" state: absent with_subelements: - "{{ find_dest_result.results }}" - files - skip_missing: True when: - not item.0.item.enabled or item.1.path | basename not in src_files - item.1.path | basename not in item.0.item.ignore | default([]) vars: # Find the source result that corresponds to this one. src_result: "{{ (find_src_result.results | selectattr('item', 'equalto', item.0.item) | list)[0] }}" # Find the list of files in the source. src_files: "{{ src_result.files | map(attribute='path') | map('basename') | list }}"