
This allows swift service endpoints to use custom hostnames, and adds the following variables: * swift_internal_fqdn * swift_external_fqdn These default to the old values of kolla_internal_fqdn or kolla_external_fqdn. This also adds a swift_proxy_server_listen_port option, which defaults to swift_proxy_server_port for backward compatibility. This option 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. While we're in here, use the ``internal_protocol`` variable for the swift endpoint in cinder's swift backup driver configuration, instead of hardcoding to ``http``. Change-Id: Ibc01618383c26e16c0067f7f6b9cf5160d968d1e Implements: blueprint service-hostnames
84 lines
2.7 KiB
YAML
84 lines
2.7 KiB
YAML
---
|
|
- name: Get container facts
|
|
kolla_container_facts:
|
|
name:
|
|
- swift_account_server
|
|
- swift_container_server
|
|
- swift_object_server
|
|
- swift_proxy_server
|
|
register: container_facts
|
|
|
|
- name: Checking free port for Swift Account Server
|
|
wait_for:
|
|
host: "{{ hostvars[inventory_hostname]['ansible_' + storage_interface]['ipv4']['address'] }}"
|
|
port: "{{ swift_account_server_port }}"
|
|
connect_timeout: 1
|
|
timeout: 1
|
|
state: stopped
|
|
when:
|
|
- container_facts['swift_account_server'] is not defined
|
|
- inventory_hostname in groups['swift-account-server']
|
|
|
|
- name: Checking free port for Swift Container Server
|
|
wait_for:
|
|
host: "{{ hostvars[inventory_hostname]['ansible_' + storage_interface]['ipv4']['address'] }}"
|
|
port: "{{ swift_container_server_port }}"
|
|
connect_timeout: 1
|
|
timeout: 1
|
|
state: stopped
|
|
when:
|
|
- container_facts['swift_container_server'] is not defined
|
|
- inventory_hostname in groups['swift-container-server']
|
|
|
|
- name: Checking free port for Swift Object Server
|
|
wait_for:
|
|
host: "{{ hostvars[inventory_hostname]['ansible_' + storage_interface]['ipv4']['address'] }}"
|
|
port: "{{ swift_object_server_port }}"
|
|
connect_timeout: 1
|
|
timeout: 1
|
|
state: stopped
|
|
when:
|
|
- container_facts['swift_object_server'] is not defined
|
|
- inventory_hostname in groups['swift-object-server']
|
|
|
|
- name: Checking free port for Rsync
|
|
wait_for:
|
|
host: "{{ hostvars[inventory_hostname]['ansible_' + storage_interface]['ipv4']['address'] }}"
|
|
port: "873"
|
|
connect_timeout: 1
|
|
timeout: 1
|
|
state: stopped
|
|
when:
|
|
- container_facts['swift_object_server'] is not defined
|
|
- inventory_hostname in groups['swift-object-server']
|
|
|
|
- name: Checking free port for Swift Proxy Server
|
|
wait_for:
|
|
host: "{{ api_interface_address }}"
|
|
port: "{{ swift_proxy_server_listen_port }}"
|
|
connect_timeout: 1
|
|
timeout: 1
|
|
state: stopped
|
|
when:
|
|
- container_facts['swift_proxy_server'] is not defined
|
|
- inventory_hostname in groups['swift-proxy-server']
|
|
|
|
- name: Checking Swift ring files
|
|
run_once: True
|
|
local_action: stat path="{{ node_custom_config }}/swift/{{ item }}"
|
|
register: swift_ring_files
|
|
with_items:
|
|
- "account.builder"
|
|
- "account.ring.gz"
|
|
- "container.builder"
|
|
- "container.ring.gz"
|
|
- "object.builder"
|
|
- "object.ring.gz"
|
|
|
|
- name: Fail if ring files don't exist
|
|
run_once: True
|
|
local_action: fail msg="Swift ring files do not exist. Ensure .builder and .gz are available for each of account/container/object under {{ node_custom_config }}/swift before deploying Swift."
|
|
with_items: '{{ swift_ring_files.results }}'
|
|
when:
|
|
- item.stat.exists == false
|