Skip to content
Snippets Groups Projects
precheck.yml 2.08 KiB
Newer Older
- import_role:
    name: service-precheck
  vars:
    service_precheck_services: "{{ ironic_services }}"
    service_name: "{{ project_name }}"

- name: Get container facts
  become: true
  kolla_container_facts:
    name:
      - ironic_api
      - ironic_inspector
  register: container_facts

caoyuan's avatar
caoyuan committed
- name: Checking free port for Ironic API
  wait_for:
    host: "{{ api_interface_address }}"
    port: "{{ ironic_api_listen_port }}"
    connect_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_listen_port }}"
    connect_timeout: 1
    state: stopped
  when:
    - container_facts['ironic_inspector'] is not defined
    - inventory_hostname in groups['ironic-inspector']

- name: Checking free port for Ironic iPXE
  wait_for:
    host: "{{ api_interface_address }}"
    port: "{{ ironic_ipxe_port }}"
    connect_timeout: 1
    timeout: 1
    state: stopped
  when:
    - enable_ironic_ipxe | bool
    - container_facts['ironic_ipxe'] is not defined
    - inventory_hostname in groups['ironic-ipxe']

- name: Checking ironic-agent files exist for Ironic Inspector
  stat:
    path: "{{ node_custom_config }}/ironic/{{ item }}"
  delegate_to: localhost
  register: result
  failed_when: not result.stat.exists
  when:
    # Only required when Ironic inspector is in use.
    - groups['ironic-inspector'] | length > 0
    - (not enable_ironic_ipxe | bool and inventory_hostname in groups['ironic-pxe']) or
        (enable_ironic_ipxe | bool and inventory_hostname in groups['ironic-ipxe'])
    - not enable_ironic_pxe_uefi | bool
  with_items:
    - "ironic-agent.kernel"
    - "ironic-agent.initramfs"

- name: Ensure dnsmasq_dhcp_range configured for Ironic Dnsmasq
  fail:
    msg: >
      ironic_dnsmasq_dhcp_range must be set when enable ironic
  connection: local
  run_once: True
  when:
    - ironic_dnsmasq_dhcp_range is none