51c9e1b633
This allows nova service endpoints to use custom hostnames, and adds the following variables: * nova_internal_fqdn * nova_external_fqdn * placement_internal_fqdn * placement_external_fqdn * nova_novncproxy_fqdn * nova_spicehtml5proxy_fqdn * nova_serialproxy_fqdn These default to the old values of kolla_internal_fqdn or kolla_external_fqdn. This also adds the following variables: * nova_api_listen_port * nova_metadata_listen_port * nova_novncproxy_listen_port * nova_spicehtml5proxy_listen_port * nova_serialproxy_listen_port * placement_api_listen_port These default to <service>_port, e.g. nova_api_port, for backward compatibility. These options allow the user to differentiate between the port the service listens on, and the port the service is reachable on. This is useful for external load balancers which live on the same host as the service itself. Change-Id: I7bcce56a2138eeadcabac79dd07c8dba1c5af644 Implements: blueprint service-hostnames
146 lines
4.2 KiB
YAML
146 lines
4.2 KiB
YAML
---
|
|
- name: Get container facts
|
|
kolla_container_facts:
|
|
name:
|
|
- nova_api
|
|
- nova_novncproxy
|
|
- nova_serialproxy
|
|
- nova_spicehtml5proxy
|
|
- nova_ssh
|
|
- nova_libvirt
|
|
- placement_api
|
|
register: container_facts
|
|
|
|
- name: Checking available compute nodes in inventory
|
|
vars:
|
|
nova_compute_ironic: "{{ nova_services['nova-compute-ironic'] }}"
|
|
fail:
|
|
msg: >
|
|
At least 1 compute node required in inventory when ironic is disabled.
|
|
when:
|
|
- groups['compute'] | length < 1
|
|
- not nova_compute_ironic.enabled | bool
|
|
|
|
- name: Checking free port for Nova API
|
|
vars:
|
|
nova_api: "{{ nova_services['nova-api'] }}"
|
|
wait_for:
|
|
host: "{{ api_interface_address }}"
|
|
port: "{{ nova_api_listen_port }}"
|
|
connect_timeout: 1
|
|
timeout: 1
|
|
state: stopped
|
|
when:
|
|
- container_facts['nova_api'] is not defined
|
|
- inventory_hostname in groups[nova_api.group]
|
|
- nova_api.enabled | bool
|
|
|
|
- name: Checking free port for Nova Metadata
|
|
vars:
|
|
nova_api: "{{ nova_services['nova-api'] }}"
|
|
wait_for:
|
|
host: "{{ api_interface_address }}"
|
|
port: "{{ nova_metadata_listen_port }}"
|
|
connect_timeout: 1
|
|
timeout: 1
|
|
state: stopped
|
|
when:
|
|
- container_facts['nova_api'] is not defined
|
|
- inventory_hostname in groups[nova_api.group]
|
|
- nova_api.enabled | bool
|
|
|
|
- name: Checking free port for Nova NoVNC Proxy
|
|
vars:
|
|
nova_novncproxy: "{{ nova_services['nova-novncproxy'] }}"
|
|
wait_for:
|
|
host: "{{ api_interface_address }}"
|
|
port: "{{ nova_novncproxy_listen_port }}"
|
|
connect_timeout: 1
|
|
timeout: 1
|
|
state: stopped
|
|
when:
|
|
- container_facts['nova_novncproxy'] is not defined
|
|
- nova_novncproxy.enabled | bool
|
|
- inventory_hostname in groups[nova_novncproxy.group]
|
|
|
|
- name: Checking free port for Nova Serial Proxy
|
|
vars:
|
|
nova_serialproxy: "{{ nova_services['nova-serialproxy'] }}"
|
|
wait_for:
|
|
host: "{{ api_interface_address }}"
|
|
port: "{{ nova_serialproxy_listen_port }}"
|
|
connect_timeout: 1
|
|
timeout: 1
|
|
state: stopped
|
|
when:
|
|
- container_facts['nova_serialproxy'] is not defined
|
|
- nova_serialproxy.enabled | bool
|
|
- inventory_hostname in groups[nova_serialproxy.group]
|
|
|
|
- name: Checking free port for Nova Spice HTML5 Proxy
|
|
vars:
|
|
nova_spicehtml5proxy: "{{ nova_services['nova-spicehtml5proxy'] }}"
|
|
wait_for:
|
|
host: "{{ api_interface_address }}"
|
|
port: "{{ nova_spicehtml5proxy_listen_port }}"
|
|
connect_timeout: 1
|
|
timeout: 1
|
|
state: stopped
|
|
when:
|
|
- container_facts['nova_spicehtml5proxy'] is not defined
|
|
- nova_spicehtml5proxy.enabled | bool
|
|
- inventory_hostname in groups[nova_spicehtml5proxy.group]
|
|
|
|
- name: Checking free port for Nova SSH
|
|
vars:
|
|
nova_ssh: "{{ nova_services['nova-ssh'] }}"
|
|
wait_for:
|
|
host: "{{ migration_interface_address }}"
|
|
port: "{{ nova_ssh_port }}"
|
|
connect_timeout: 1
|
|
timeout: 1
|
|
state: stopped
|
|
when:
|
|
- container_facts['nova_ssh'] is not defined
|
|
- nova_ssh.enabled | bool
|
|
- inventory_hostname in groups[nova_ssh.group]
|
|
|
|
- name: Checking free port for Nova Libvirt
|
|
vars:
|
|
nova_libvirt: "{{ nova_services['nova-libvirt'] }}"
|
|
wait_for:
|
|
host: "{{ api_interface_address }}"
|
|
port: "{{ nova_libvirt_port }}"
|
|
connect_timeout: 1
|
|
timeout: 1
|
|
state: stopped
|
|
when:
|
|
- container_facts['nova_libvirt'] is not defined
|
|
- nova_libvirt.enabled | bool
|
|
- inventory_hostname in groups[nova_libvirt.group]
|
|
|
|
- name: Checking free port for Nova Placement API
|
|
vars:
|
|
placement_api: "{{ nova_services['placement-api'] }}"
|
|
wait_for:
|
|
host: "{{ api_interface_address }}"
|
|
port: "{{ placement_api_listen_port }}"
|
|
connect_timeout: 1
|
|
timeout: 1
|
|
state: stopped
|
|
when:
|
|
- container_facts['placement_api'] is not defined
|
|
- inventory_hostname in groups[placement_api.group]
|
|
- placement_api.enabled | bool
|
|
|
|
- name: Checking that libvirt is not running
|
|
vars:
|
|
nova_libvirt: "{{ nova_services['nova-libvirt'] }}"
|
|
stat: path=/var/run/libvirt/libvirt-sock
|
|
register: result
|
|
failed_when: result.stat.exists
|
|
when:
|
|
- nova_compute_virt_type in ['kvm', 'qemu']
|
|
- container_facts['nova_libvirt'] is not defined
|
|
- inventory_hostname in groups[nova_libvirt.group]
|