mirror of https://github.com/ceph/ceph-ansible.git
51 lines
2.7 KiB
YAML
51 lines
2.7 KiB
YAML
---
|
|
- name: set_fact realms
|
|
set_fact:
|
|
realms: '{{ realms | default([]) | union([item.rgw_realm]) }}'
|
|
run_once: true
|
|
loop: "{{ rgw_instances_all }}"
|
|
when: item.rgw_zonemaster | default(hostvars[item.host]['rgw_zonemaster']) | bool
|
|
|
|
- name: create list zonegroups
|
|
set_fact:
|
|
zonegroups: "{{ zonegroups | default([]) | union([{ 'realm': item.rgw_realm, 'zonegroup': item.rgw_zonegroup, 'is_master': item.rgw_zonegroupmaster | default(hostvars[item.host]['rgw_zonegroupmaster']) }]) }}"
|
|
run_once: true
|
|
loop: "{{ rgw_instances_all }}"
|
|
when: item.rgw_zonegroupmaster | default(hostvars[item.host]['rgw_zonegroupmaster']) | bool
|
|
|
|
- name: create list zones
|
|
set_fact:
|
|
zones: "{{ zones | default([]) | union([{ 'realm': item.rgw_realm, 'zonegroup': item.rgw_zonegroup, 'zone': item.rgw_zone, 'is_master': item.rgw_zonemaster | default(hostvars[item.host]['rgw_zonemaster']), 'system_access_key': item.system_access_key, 'system_secret_key': item.system_secret_key }]) }}"
|
|
run_once: true
|
|
loop: "{{ rgw_instances_all }}"
|
|
|
|
- name: create a list of dicts with each rgw endpoint and it's zone
|
|
set_fact:
|
|
zone_endpoint_pairs: "{{ zone_endpoint_pairs | default([]) | union([{ 'endpoint': hostvars[item.host]['rgw_multisite_proto'] + '://' + (item.radosgw_address if hostvars[item.host]['rgw_multisite_proto'] == 'http' else hostvars[item.host]['ansible_facts']['fqdn']) + ':' + item.radosgw_frontend_port | string, 'rgw_zone': item.rgw_zone, 'rgw_realm': item.rgw_realm, 'rgw_zonegroup': item.rgw_zonegroup, 'rgw_zonemaster': item.rgw_zonemaster | default(hostvars[item.host]['rgw_zonemaster']) }]) }}"
|
|
loop: "{{ rgw_instances_all }}"
|
|
run_once: true
|
|
|
|
- name: create a list of zones and all their endpoints
|
|
set_fact:
|
|
zone_endpoints_list: "{{ zone_endpoints_list | default([]) | union([{'zone': item.rgw_zone, 'zonegroup': item.rgw_zonegroup, 'realm': item.rgw_realm, 'is_master': item.rgw_zonemaster, 'endpoints': ','.join(zone_endpoint_pairs | selectattr('rgw_zone','match','^'+item.rgw_zone+'$') | selectattr('rgw_realm','match','^'+item.rgw_realm+'$') | selectattr('rgw_zonegroup', 'match','^'+item.rgw_zonegroup+'$') | map(attribute='endpoint'))}]) }}"
|
|
loop: "{{ zone_endpoint_pairs }}"
|
|
run_once: true
|
|
|
|
# Include the tasks depending on the zone type
|
|
- name: include_tasks master.yml
|
|
include_tasks: master.yml
|
|
|
|
- name: include_tasks secondary.yml
|
|
include_tasks: secondary.yml
|
|
when: deploy_secondary_zones | default(True) | bool
|
|
|
|
- name: include_tasks start_radosgw.yml
|
|
include_tasks: ../start_radosgw.yml
|
|
when:
|
|
- not containerized_deployment | bool
|
|
|
|
- name: include_tasks start_docker_rgw.yml
|
|
include_tasks: ../start_docker_rgw.yml
|
|
when:
|
|
- containerized_deployment | bool
|