This adds `kolla_inspector_extra_kernel_options` to the inspector.ipxe boot script. This is necessary to get the inspector to collect the necessary LLDP data, extra hardware data, etc. that is required for various introspection rules to function correctly. Change-Id: Ie7d6e1f12fb438e3b7e2c2a9de3ad8853947bee0
126 lines
5.4 KiB
YAML
126 lines
5.4 KiB
YAML
---
|
|
- 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: ceph.conf.j2, dest: ceph.conf, enabled: "{{ kolla_enable_ceph }}" }
|
|
- { src: cinder.conf.j2, dest: cinder.conf, enabled: "{{ kolla_enable_cinder }}" }
|
|
- { src: designate.conf.j2, dest: designate.conf, enabled: "{{ kolla_enable_designate }}" }
|
|
- { src: galera.cnf.j2, dest: galera.cnf, enabled: "{{ kolla_enable_mariadb }}" }
|
|
- { src: glance.conf.j2, dest: glance.conf, enabled: "{{ kolla_enable_glance }}" }
|
|
- { src: grafana.ini.j2, dest: grafana.ini, enabled: "{{ kolla_enable_grafana }}" }
|
|
- { src: heat.conf.j2, dest: heat.conf, enabled: "{{ kolla_enable_heat }}" }
|
|
- { src: influxdb.conf.j2, dest: influxdb.conf, enabled: "{{ kolla_enable_influxdb }}" }
|
|
- { 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: kafka.server.properties.j2, dest: kafka.server.properties, enabled: "{{ kolla_enable_kafka }}" }
|
|
- { 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: inspector.ipxe.j2, dest: ironic/inspector.ipxe, enabled: "{{ kolla_enable_ironic_ipxe }}" }
|
|
- { src: sahara.conf.j2, dest: sahara.conf, enabled: "{{ kolla_enable_sahara }}" }
|
|
- { src: zookeeper.cfg.j2, dest: zookeeper.cfg, enabled: "{{ kolla_enable_zookeeper }}" }
|
|
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 }}"
|
|
recurse: true
|
|
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 parent directories are present
|
|
file:
|
|
path: "{{ item.0.item.dest }}/{{ item.1.path | relpath(item.0.item.src) | dirname }}"
|
|
recurse: true
|
|
state: directory
|
|
with_subelements:
|
|
- "{{ find_src_result.results }}"
|
|
- files
|
|
- skip_missing: true
|
|
when:
|
|
- item.0.item.enabled | bool
|
|
- item.1.path | basename not in item.0.item.ignore | default([])
|
|
|
|
- name: Ensure extra configuration files exist
|
|
template:
|
|
src: "{{ item.1.path }}"
|
|
dest: "{{ item.0.item.dest }}/{{ item.1.path | relpath(item.0.item.src) }}"
|
|
mode: 0640
|
|
with_subelements:
|
|
- "{{ find_src_result.results }}"
|
|
- files
|
|
- skip_missing: true
|
|
when:
|
|
- item.0.item.enabled | bool
|
|
- item.1.path | basename not in item.0.item.ignore | default([])
|
|
|
|
- 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 }}"
|