kolla-ansible/ansible/roles/swift/tasks/precheck.yml
guochao b63d71607a Add swift ring files check in prechecks
Precheck will fail when swift ring files do not exists.

Change-Id: I20e7c9dbe527015ac2b01e85907637feb0deacbc
2017-08-22 10:55:35 +00:00

84 lines
2.6 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_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