Files
kolla-ansible/ansible/roles/swift/tasks/precheck.yml
Ivan Halomi 19af5826fc Move actions to kolla_container_facts
Move actions responsible for info about containers
from kolla_container module to kolla_container_facts.
Also fixes a bug with inconsistencies between docker
and podman in kolla_container_facts.

Closes-bug: #2084878
Change-Id: I1db88e28a828ebf073f018b2bae1d9556ec22807
Signed-off-by: Ivan Halomi <ivan.halomi@tietoevry.com>
Signed-off-by: Martin Hiner <martin.hiner@tietoevry.com>
Signed-off-by: Roman Krček <roman.krcek@tietoevry.com>
2025-02-07 09:40:43 +00:00

133 lines
3.9 KiB
YAML

---
- import_role:
name: service-precheck
vars:
service_precheck_services: "{{ swift_services }}"
service_name: "{{ project_name }}"
- name: Get container facts
become: true
kolla_container_facts:
action: get_containers
container_engine: "{{ kolla_container_engine }}"
name:
- swift_account_server
- swift_container_server
- swift_object_server
- swift_proxy_server
check_mode: false
register: container_facts
- name: Checking free port for Swift Account Server
wait_for:
host: "{{ 'swift_storage' | kolla_address }}"
port: "{{ swift_account_server_port }}"
connect_timeout: 1
timeout: 1
state: stopped
when:
- container_facts.containers['swift_account_server'] is not defined
- inventory_hostname in groups['swift-account-server']
- name: Checking free port for Swift Container Server
wait_for:
host: "{{ 'swift_storage' | kolla_address }}"
port: "{{ swift_container_server_port }}"
connect_timeout: 1
timeout: 1
state: stopped
when:
- container_facts.containers['swift_container_server'] is not defined
- inventory_hostname in groups['swift-container-server']
- name: Checking free port for Swift Object Server
wait_for:
host: "{{ 'swift_storage' | kolla_address }}"
port: "{{ swift_object_server_port }}"
connect_timeout: 1
timeout: 1
state: stopped
when:
- container_facts.containers['swift_object_server'] is not defined
- inventory_hostname in groups['swift-object-server']
- name: Checking free port for Swift Account Replication Server
wait_for:
host: "{{ 'swift_replication' | kolla_address }}"
port: "{{ swift_account_server_port }}"
connect_timeout: 1
timeout: 1
state: stopped
when:
- container_facts.containers['swift_account_server'] is not defined
- inventory_hostname in groups['swift-account-server']
- name: Checking free port for Swift Container Replication Server
wait_for:
host: "{{ 'swift_replication' | kolla_address }}"
port: "{{ swift_container_server_port }}"
connect_timeout: 1
timeout: 1
state: stopped
when:
- container_facts.containers['swift_container_server'] is not defined
- inventory_hostname in groups['swift-container-server']
- name: Checking free port for Swift Object Replication Server
wait_for:
host: "{{ 'swift_replication' | kolla_address }}"
port: "{{ swift_object_server_port }}"
connect_timeout: 1
timeout: 1
state: stopped
when:
- container_facts.containers['swift_object_server'] is not defined
- inventory_hostname in groups['swift-object-server']
- name: Checking free port for Rsync
wait_for:
host: "{{ 'swift_replication' | kolla_address }}"
port: "873"
connect_timeout: 1
timeout: 1
state: stopped
when:
- container_facts.containers['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.containers['swift_proxy_server'] is not defined
- inventory_hostname in groups['swift-proxy-server']
- name: Checking Swift ring files
run_once: True
stat:
path: "{{ node_custom_config }}/swift/{{ item }}"
delegate_to: localhost
register: swift_ring_files
with_items:
- "account.builder"
- "account.ring.gz"
- "container.builder"
- "container.ring.gz"
- "object.builder"
- "object.ring.gz"
- "{{ swift_extra_ring_files }}"
- name: Fail if ring files don't exist
run_once: True
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:
- not item.stat.exists