Mark Goddard 922eb494e6 Make Ironic inspector honour inventory
Ironic inspector should honour the Ansible inventory group
ironic-inspector. Ironic inspector may not be required at all. If
Ironic inspector is required then it should only run on a single
node, and this should be reflected by the inventory.

This change makes a number of Ironic inspector-related tasks dependent
upon the host's membership of the ironic-inspector group. Also, we
couple the ironic-dnsmasq container with the ironic-inspector group
rather than ironic-conductor, as the service is for inspector rather
than Ironic.

Change-Id: Ifd90753b0fe1a55c11b7723c28e1d14ab3d32737
Closes-Bug: #1665257
2017-07-19 08:24:21 +01:00

49 lines
1.4 KiB
YAML

---
- name: Get container facts
kolla_container_facts:
name:
- ironic_api
- ironic_inspector
register: container_facts
- name: Checking free port for Ironic API
wait_for:
host: "{{ api_interface_address }}"
port: "{{ ironic_api_port }}"
connect_timeout: 1
timeout: 1
state: stopped
when:
- container_facts['ironic_api'] is not defined
- inventory_hostname in groups['ironic-api']
- name: Checking free port for Ironic Inspector
wait_for:
host: "{{ api_interface_address }}"
port: "{{ ironic_inspector_port }}"
connect_timeout: 1
timeout: 1
state: stopped
when:
- container_facts['ironic_inspector'] is not defined
- inventory_hostname in groups['ironic-inspector']
- name: Checking ironic-agent files exist for Ironic
local_action: stat path="{{ node_custom_config }}/ironic/{{ item }}"
run_once: True
register: result
failed_when: not result.stat.exists
when:
# Only required when Ironic inspector is in use.
- groups['ironic-inspector'] | length > 0
- inventory_hostname in groups['ironic-pxe']
with_items:
- "ironic-agent.kernel"
- "ironic-agent.initramfs"
- name: Looking for 'flat' in tenant network types
local_action: fail msg="'flat' is not in neutron_tenant_network_types [{{ neutron_tenant_network_types }}]"
changed_when: false
when: tenant_network_types.find('flat') == -1
run_once: true