kolla-ansible/ansible/roles/swift/tasks/reconfigure.yml
Scott Solkhon a781c64319 Support separate Swift storage networks
Adds support to seperate Swift access and replication traffic from other storage traffic.

In a deployment where both Ceph and Swift have been deployed,
this changes adds functionalality to support optional seperation
of storage network traffic. This adds two new network interfaces
'swift_storage_interface' and 'swift_replication_interface' which maintain
backwards compatibility.

The Swift access network interface is configured via 'swift_storage_interface',
which defaults to 'storage_interface'. The Swift replication network
interface is configured via 'swift_replication_interface', which
defaults to 'swift_storage_interface'.

If a separate replication network is used, Kolla Ansible now deploys separate
replication servers for the accounts, containers and objects, that listen on
this network. In this case, these services handle only replication traffic, and
the original account-, container- and object- servers only handle storage
user requests.

Change-Id: Ib39e081574e030126f2d08f51de89641ddb0d42e
2019-03-14 14:00:18 +00:00

166 lines
8.5 KiB
YAML

---
- name: Ensuring the containers up
become: true
kolla_docker:
name: "{{ item.name }}"
action: "get_container_state"
register: container_state
failed_when: container_state.Running == false
when: inventory_hostname in groups[item.group]
with_items:
- { name: swift_account_server, group: swift-account-server }
- { name: swift_account_auditor, group: swift-account-server }
- { name: swift_account_replication_server, group: swift-account-server }
- { name: swift_account_replicator, group: swift-account-server }
- { name: swift_account_reaper, group: swift-account-server }
- { name: swift_rsyncd, group: swift-account-server }
- { name: swift_container_server, group: swift-container-server }
- { name: swift_container_auditor, group: swift-container-server }
- { name: swift_container_replication_server, group: swift-container-server }
- { name: swift_container_replicator, group: swift-container-server }
- { name: swift_container_updater, group: swift-container-server }
- { name: swift_rsyncd, group: swift-container-server }
- { name: swift_object_server, group: swift-object-server }
- { name: swift_object_auditor, group: swift-object-server }
- { name: swift_object_replication_server, group: swift-object-server }
- { name: swift_object_replicator, group: swift-object-server }
- { name: swift_object_updater, group: swift-object-server }
- { name: swift_object_expirer, group: swift-object-server }
- { name: swift_rsyncd, group: swift-object-server }
- { name: swift_proxy_server, group: swift-proxy-server }
- include_tasks: config.yml
- name: Check the configs
command: docker exec {{ item.name }} /usr/local/bin/kolla_set_configs --check
changed_when: false
failed_when: false
register: check_results
when: inventory_hostname in groups[item.group]
with_items:
- { name: swift_account_server, group: swift-account-server }
- { name: swift_account_auditor, group: swift-account-server }
- { name: swift_account_replication_server, group: swift-account-server }
- { name: swift_account_replicator, group: swift-account-server }
- { name: swift_account_reaper, group: swift-account-server }
- { name: swift_rsyncd, group: swift-account-server }
- { name: swift_container_server, group: swift-container-server }
- { name: swift_container_auditor, group: swift-container-server }
- { name: swift_container_replication_server, group: swift-container-server }
- { name: swift_container_replicator, group: swift-container-server }
- { name: swift_container_updater, group: swift-container-server }
- { name: swift_rsyncd, group: swift-container-server }
- { name: swift_object_server, group: swift-object-server }
- { name: swift_object_auditor, group: swift-object-server }
- { name: swift_object_replication_server, group: swift-object-server }
- { name: swift_object_replicator, group: swift-object-server }
- { name: swift_object_updater, group: swift-object-server }
- { name: swift_object_expirer, group: swift-object-server }
- { name: swift_rsyncd, group: swift-object-server }
- { name: swift_proxy_server, group: swift-proxy-server }
# NOTE(jeffrey4l): when config_strategy == 'COPY_ALWAYS'
# and container env['KOLLA_CONFIG_STRATEGY'] == 'COPY_ONCE',
# just remove the container and start again
- name: Containers config strategy
become: true
kolla_docker:
name: "{{ item.name }}"
action: "get_container_env"
register: container_envs
when: inventory_hostname in groups[item.group]
with_items:
- { name: swift_account_server, group: swift-account-server }
- { name: swift_account_auditor, group: swift-account-server }
- { name: swift_account_replication_server, group: swift-account-server }
- { name: swift_account_replicator, group: swift-account-server }
- { name: swift_account_reaper, group: swift-account-server }
- { name: swift_rsyncd, group: swift-account-server }
- { name: swift_container_server, group: swift-container-server }
- { name: swift_container_auditor, group: swift-container-server }
- { name: swift_container_replication_server, group: swift-container-server }
- { name: swift_container_replicator, group: swift-container-server }
- { name: swift_container_updater, group: swift-container-server }
- { name: swift_rsyncd, group: swift-container-server }
- { name: swift_object_server, group: swift-object-server }
- { name: swift_object_auditor, group: swift-object-server }
- { name: swift_object_replication_server, group: swift-object-server }
- { name: swift_object_replicator, group: swift-object-server }
- { name: swift_object_updater, group: swift-object-server }
- { name: swift_object_expirer, group: swift-object-server }
- { name: swift_rsyncd, group: swift-object-server }
- { name: swift_proxy_server, group: swift-proxy-server }
- name: Remove the containers
become: true
kolla_docker:
name: "{{ item[0]['name'] }}"
action: "remove_container"
register: remove_containers
when:
- inventory_hostname in groups[item[0]['group']]
- config_strategy == "COPY_ONCE" or item[1]['KOLLA_CONFIG_STRATEGY'] == 'COPY_ONCE'
- item[2]['rc'] == 1
with_together:
- [{ name: swift_account_server, group: swift-account-server },
{ name: swift_account_auditor, group: swift-account-server },
{ name: swift_account_replication_server, group: swift-account-server },
{ name: swift_account_replicator, group: swift-account-server },
{ name: swift_account_reaper, group: swift-account-server },
{ name: swift_rsyncd, group: swift-account-server },
{ name: swift_container_server, group: swift-container-server },
{ name: swift_container_auditor, group: swift-container-server },
{ name: swift_container_replication_server, group: swift-container-server },
{ name: swift_container_replicator, group: swift-container-server },
{ name: swift_container_updater, group: swift-container-server },
{ name: swift_rsyncd, group: swift-container-server },
{ name: swift_object_server, group: swift-object-server },
{ name: swift_object_auditor, group: swift-object-server },
{ name: swift_object_replication_server, group: swift-object-server },
{ name: swift_object_replicator, group: swift-object-server },
{ name: swift_object_updater, group: swift-object-server },
{ name: swift_object_expirer, group: swift-object-server },
{ name: swift_rsyncd, group: swift-object-server },
{ name: swift_proxy_server, group: swift-proxy-server }]
- "{{ container_envs.results }}"
- "{{ check_results.results }}"
- include_tasks: start.yml
vars:
run_start_swift_proxy_server: "yes"
when: remove_containers.changed
- name: Restart containers
become: true
kolla_docker:
name: "{{ item[0]['name'] }}"
action: "restart_container"
when:
- inventory_hostname in groups[item[0]['group']]
- config_strategy == 'COPY_ALWAYS'
- item[1]['KOLLA_CONFIG_STRATEGY'] != 'COPY_ONCE'
- item[2]['rc'] == 1
with_together:
- [{ name: swift_account_server, group: swift-account-server },
{ name: swift_account_auditor, group: swift-account-server },
{ name: swift_account_replication_server, group: swift-account-server },
{ name: swift_account_replicator, group: swift-account-server },
{ name: swift_account_reaper, group: swift-account-server },
{ name: swift_rsyncd, group: swift-account-server },
{ name: swift_container_server, group: swift-container-server },
{ name: swift_container_auditor, group: swift-container-server },
{ name: swift_container_replication_server, group: swift-container-server },
{ name: swift_container_replicator, group: swift-container-server },
{ name: swift_container_updater, group: swift-container-server },
{ name: swift_rsyncd, group: swift-container-server },
{ name: swift_object_server, group: swift-object-server },
{ name: swift_object_auditor, group: swift-object-server },
{ name: swift_object_replication_server, group: swift-object-server },
{ name: swift_object_replicator, group: swift-object-server },
{ name: swift_object_updater, group: swift-object-server },
{ name: swift_object_expirer, group: swift-object-server },
{ name: swift_rsyncd, group: swift-object-server },
{ name: swift_proxy_server, group: swift-proxy-server }]
- "{{ container_envs.results }}"
- "{{ check_results.results }}"