mirror of https://github.com/ceph/ceph-ansible.git
rgw multisite: add more than 1 rgw to the master or secondary zone
Closes: https://bugzilla.redhat.com/show_bug.cgi?id=1664869
Signed-off-by: Ali Maredia <amaredia@redhat.com>
(cherry picked from commit 37f46a8c5d
)
pull/3810/head
v4.0.0rc3
parent
f8cbc27a83
commit
4b35360876
|
@ -33,7 +33,9 @@ rgw_multisite: true
|
|||
rgw_zone: jupiter
|
||||
rgw_zonemaster: true
|
||||
rgw_zonesecondary: false
|
||||
rgw_multisite_proto: "http"
|
||||
rgw_multisite_endpoint_addr: "{{ ansible_fqdn }}"
|
||||
rgw_multisite_endpoints_list: "{{ rgw_multisite_proto }}://{{ ansible_fqdn }}:{{ radosgw_frontend_port }}"
|
||||
rgw_zonegroup: solarsystem
|
||||
rgw_zone_user: zone.user
|
||||
rgw_realm: milkyway
|
||||
|
@ -41,9 +43,17 @@ system_access_key: 6kWkikvapSnHyE22P7nO
|
|||
system_secret_key: MGecsMrWtKZgngOHZdrd6d3JxGO5CPWgT2lcnpSt
|
||||
```
|
||||
|
||||
**Note:** rgw_zonemaster should have the value of true and rgw_zonesecondary should be false
|
||||
**Note:** replace the system_access_key and system_secret_key values with the ones you generated
|
||||
**Note:** `ansible_fqdn` domain name assigned to rgw_multisite_endpoint_addr must be resolvable from the secondary Ceph cluster's mon and rgw node(s)
|
||||
**Note:** `rgw_zonemaster` should have the value of `true` and `rgw_zonesecondary` should be `false`
|
||||
|
||||
**Note:** replace the `system_access_key` and `system_secret_key` values with the ones you generated
|
||||
|
||||
**Note:** `ansible_fqdn` domain name assigned to `rgw_multisite_endpoint_addr` must be resolvable from the secondary Ceph clusters mon and rgw node(s)
|
||||
|
||||
**Note:** if there is more than 1 RGW in the cluster, `rgw_multisite_endpoints` needs to be set.<br/>
|
||||
`rgw_multisite_endpoints` is a comma seperated list, with no spaces, of the RGW endpoints in the format:<br/>
|
||||
`{{ rgw_multisite_proto }}://{{ ansible_fqdn }}:{{ radosgw_frontend_port }}`<br/>
|
||||
for example: `rgw_multisite_endpoints: http://foo.example.com:8080,http://bar.example.com:8080,http://baz.example.com:8080`
|
||||
|
||||
|
||||
3. Run the ceph-ansible playbook on your 1st cluster
|
||||
|
||||
|
@ -58,7 +68,9 @@ rgw_multisite: true
|
|||
rgw_zone: mars
|
||||
rgw_zonemaster: false
|
||||
rgw_zonesecondary: true
|
||||
rgw_multisite_proto: "http"
|
||||
rgw_multisite_endpoint_addr: "{{ ansible_fqdn }}"
|
||||
rgw_multisite_endpoints_list: "{{ rgw_multisite_proto }}://{{ ansible_fqdn }}:{{ radosgw_frontend_port }}"
|
||||
rgw_zonegroup: solarsystem
|
||||
rgw_zone_user: zone.user
|
||||
rgw_realm: milkyway
|
||||
|
@ -69,10 +81,15 @@ rgw_pull_port: 8080
|
|||
rgw_pullhost: cluster0-rgw0
|
||||
```
|
||||
|
||||
**Note:** rgw_zonemaster should have the value of false and rgw_zonesecondary should be true
|
||||
**Note:** pullhost should be the rgw_multisite_endpoint_addr of the RGW that is configured as the Zone Master
|
||||
**Note:** rgw_zone_user, system_access_key, and system_secret_key should match what you used in the master cluster
|
||||
**Note:** `ansible_fqdn` domain name assigned to rgw_multisite_endpoint_addr must be resolvable from the master Ceph cluster's mon and rgw node(s)
|
||||
**Note:** `rgw_zonemaster` should have the value of `false` and `rgw_zonesecondary` should be `true`
|
||||
|
||||
**Note:** `rgw_pullhost` should be the `rgw_multisite_endpoint_addr` of the RGW that is configured in the Primary Cluster
|
||||
|
||||
**Note:** `rgw_zone_user`, `system_access_key`, and `system_secret_key` should match what you used in the Primary Cluster
|
||||
|
||||
**Note:** `ansible_fqdn` domain name assigned to `rgw_multisite_endpoint_addr` must be resolvable from the Primary Ceph cluster's mon and rgw node(s)
|
||||
|
||||
**Note:** if there is more than 1 RGW in the Secondary Cluster, `rgw_multisite_endpoints` needs to be set with the RGWs in the Secondary Cluster just like it was set in the Primary Cluster
|
||||
|
||||
5. Run the ceph-ansible playbook on your 2nd cluster
|
||||
|
||||
|
|
|
@ -478,13 +478,22 @@ dummy:
|
|||
#rgw_multisite: false
|
||||
|
||||
# The following Multi-site related variables should be set by the user.
|
||||
#
|
||||
# If there is more than 1 RGW in a master or secondary cluster than rgw_multisite_endpoints needs to be a comma seperated list (with no spaces) of the RGW endpoints in the format:
|
||||
# {{ rgw_multisite_proto }}://{{ ansible_fqdn }}:{{ radosgw_frontend_port }}
|
||||
# ex: rgw_multisite_endpoints: http://foo.example.com:8080,http://bar.example.com:8080,http://baz.example.com:8080
|
||||
#
|
||||
# If there is only 1 RGW in the inventory, rgw_multisite_endpoints does not need to change
|
||||
#
|
||||
# rgw_zone is set to "default" to enable compression for clusters configured without rgw multi-site
|
||||
# If multisite is configured rgw_zone should not be set to "default". See README-MULTISITE.md for an example.
|
||||
#rgw_zone: default
|
||||
|
||||
#rgw_zonemaster: true
|
||||
#rgw_zonesecondary: false
|
||||
#rgw_multisite_proto: "http"
|
||||
#rgw_multisite_endpoint_addr: "{{ ansible_fqdn }}"
|
||||
#rgw_multisite_endpoints_list: "{{ rgw_multisite_proto }}://{{ ansible_fqdn }}:{{ radosgw_frontend_port }}"
|
||||
#rgw_zonegroup: solarsystem # should be set by the user
|
||||
#rgw_zone_user: zone.user
|
||||
#rgw_realm: milkyway # should be set by the user
|
||||
|
@ -493,8 +502,8 @@ dummy:
|
|||
|
||||
# Multi-site remote pull URL variables
|
||||
#rgw_pull_port: "{{ radosgw_civetweb_port }}"
|
||||
#rgw_pull_proto: "http"
|
||||
#rgw_pullhost: localhost # rgw_pullhost only needs to be declared if there is a zone secondary. It should be the same as rgw_multisite_endpoint_addr for the master cluster
|
||||
#rgw_pull_proto: "http" # should be the same as rgw_multisite_proto for the master zone cluster
|
||||
#rgw_pullhost: localhost # rgw_pullhost only needs to be declared if there is a zone secondary. It should be the same as rgw_multisite_endpoint_addr for the master zone cluster
|
||||
|
||||
|
||||
###################
|
||||
|
|
|
@ -478,13 +478,22 @@ ceph_rhcs_version: 3
|
|||
#rgw_multisite: false
|
||||
|
||||
# The following Multi-site related variables should be set by the user.
|
||||
#
|
||||
# If there is more than 1 RGW in a master or secondary cluster than rgw_multisite_endpoints needs to be a comma seperated list (with no spaces) of the RGW endpoints in the format:
|
||||
# {{ rgw_multisite_proto }}://{{ ansible_fqdn }}:{{ radosgw_frontend_port }}
|
||||
# ex: rgw_multisite_endpoints: http://foo.example.com:8080,http://bar.example.com:8080,http://baz.example.com:8080
|
||||
#
|
||||
# If there is only 1 RGW in the inventory, rgw_multisite_endpoints does not need to change
|
||||
#
|
||||
# rgw_zone is set to "default" to enable compression for clusters configured without rgw multi-site
|
||||
# If multisite is configured rgw_zone should not be set to "default". See README-MULTISITE.md for an example.
|
||||
#rgw_zone: default
|
||||
|
||||
#rgw_zonemaster: true
|
||||
#rgw_zonesecondary: false
|
||||
#rgw_multisite_proto: "http"
|
||||
#rgw_multisite_endpoint_addr: "{{ ansible_fqdn }}"
|
||||
#rgw_multisite_endpoints_list: "{{ rgw_multisite_proto }}://{{ ansible_fqdn }}:{{ radosgw_frontend_port }}"
|
||||
#rgw_zonegroup: solarsystem # should be set by the user
|
||||
#rgw_zone_user: zone.user
|
||||
#rgw_realm: milkyway # should be set by the user
|
||||
|
@ -493,8 +502,8 @@ ceph_rhcs_version: 3
|
|||
|
||||
# Multi-site remote pull URL variables
|
||||
#rgw_pull_port: "{{ radosgw_civetweb_port }}"
|
||||
#rgw_pull_proto: "http"
|
||||
#rgw_pullhost: localhost # rgw_pullhost only needs to be declared if there is a zone secondary. It should be the same as rgw_multisite_endpoint_addr for the master cluster
|
||||
#rgw_pull_proto: "http" # should be the same as rgw_multisite_proto for the master zone cluster
|
||||
#rgw_pullhost: localhost # rgw_pullhost only needs to be declared if there is a zone secondary. It should be the same as rgw_multisite_endpoint_addr for the master zone cluster
|
||||
|
||||
|
||||
###################
|
||||
|
|
|
@ -470,13 +470,22 @@ nfs_obj_gw: true
|
|||
rgw_multisite: false
|
||||
|
||||
# The following Multi-site related variables should be set by the user.
|
||||
#
|
||||
# If there is more than 1 RGW in a master or secondary cluster than rgw_multisite_endpoints needs to be a comma seperated list (with no spaces) of the RGW endpoints in the format:
|
||||
# {{ rgw_multisite_proto }}://{{ ansible_fqdn }}:{{ radosgw_frontend_port }}
|
||||
# ex: rgw_multisite_endpoints: http://foo.example.com:8080,http://bar.example.com:8080,http://baz.example.com:8080
|
||||
#
|
||||
# If there is only 1 RGW in the inventory, rgw_multisite_endpoints does not need to change
|
||||
#
|
||||
# rgw_zone is set to "default" to enable compression for clusters configured without rgw multi-site
|
||||
# If multisite is configured rgw_zone should not be set to "default". See README-MULTISITE.md for an example.
|
||||
rgw_zone: default
|
||||
|
||||
rgw_zonemaster: true
|
||||
rgw_zonesecondary: false
|
||||
rgw_multisite_proto: "http"
|
||||
rgw_multisite_endpoint_addr: "{{ ansible_fqdn }}"
|
||||
#rgw_multisite_endpoints_list: "{{ rgw_multisite_proto }}://{{ ansible_fqdn }}:{{ radosgw_frontend_port }}"
|
||||
#rgw_zonegroup: solarsystem # should be set by the user
|
||||
#rgw_zone_user: zone.user
|
||||
#rgw_realm: milkyway # should be set by the user
|
||||
|
@ -485,8 +494,8 @@ rgw_multisite_endpoint_addr: "{{ ansible_fqdn }}"
|
|||
|
||||
# Multi-site remote pull URL variables
|
||||
rgw_pull_port: "{{ radosgw_civetweb_port }}"
|
||||
rgw_pull_proto: "http"
|
||||
#rgw_pullhost: localhost # rgw_pullhost only needs to be declared if there is a zone secondary. It should be the same as rgw_multisite_endpoint_addr for the master cluster
|
||||
rgw_pull_proto: "http" # should be the same as rgw_multisite_proto for the master zone cluster
|
||||
#rgw_pullhost: localhost # rgw_pullhost only needs to be declared if there is a zone secondary. It should be the same as rgw_multisite_endpoint_addr for the master zone cluster
|
||||
|
||||
|
||||
###################
|
||||
|
|
|
@ -7,14 +7,14 @@
|
|||
- "'No such file or directory' in realmcheck.stderr"
|
||||
|
||||
- name: create the zonegroup
|
||||
command: "{{ docker_exec_cmd }} radosgw-admin zonegroup create --rgw-zonegroup={{ rgw_zonegroup }} --endpoints=http://{{ rgw_multisite_endpoint_addr }}:{{ radosgw_frontend_port }} --master --default"
|
||||
command: "{{ docker_exec_cmd }} radosgw-admin zonegroup create --rgw-zonegroup={{ rgw_zonegroup }} --endpoints={{ rgw_multisite_proto }}://{{ rgw_multisite_endpoint_addr }}:{{ radosgw_frontend_port }} --master --default"
|
||||
delegate_to: "{{ groups[mon_group_name][0] }}"
|
||||
run_once: true
|
||||
when:
|
||||
- "'No such file or directory' in zonegroupcheck.stderr"
|
||||
|
||||
- name: create the zone
|
||||
command: "{{ docker_exec_cmd }} radosgw-admin zone create --rgw-zonegroup={{ rgw_zonegroup }} --rgw-zone={{ rgw_zone }} --endpoints=http://{{ rgw_multisite_endpoint_addr }}:{{ radosgw_frontend_port }} --access-key={{ system_access_key }} --secret={{ system_secret_key }} --default --master"
|
||||
command: "{{ docker_exec_cmd }} radosgw-admin zone create --rgw-zonegroup={{ rgw_zonegroup }} --rgw-zone={{ rgw_zone }} --endpoints={{ rgw_multisite_proto }}://{{ rgw_multisite_endpoint_addr }}:{{ radosgw_frontend_port }} --access-key={{ system_access_key }} --secret={{ system_secret_key }} --default --master"
|
||||
delegate_to: "{{ groups[mon_group_name][0] }}"
|
||||
run_once: true
|
||||
when:
|
||||
|
@ -28,3 +28,12 @@
|
|||
- "'could not fetch user info: no user info saved' in usercheck.stderr"
|
||||
notify:
|
||||
- update period
|
||||
|
||||
- name: add other endpoints to the zone
|
||||
command: "{{ docker_exec_cmd }} radosgw-admin zone modify --rgw-zone={{ rgw_zone }} --endpoints {{ rgw_multisite_endpoints_list }}"
|
||||
delegate_to: "{{ groups[mon_group_name][0] }}"
|
||||
run_once: true
|
||||
when:
|
||||
- rgw_multisite_endpoints_list is defined
|
||||
notify:
|
||||
- update period
|
||||
|
|
|
@ -26,10 +26,19 @@
|
|||
run_once: true
|
||||
|
||||
- name: create the zone
|
||||
command: "{{ docker_exec_cmd }} radosgw-admin zone create --rgw-zonegroup={{ rgw_zonegroup }} --rgw-zone={{ rgw_zone }} --endpoints=http://{{ rgw_multisite_endpoint_addr }}:{{ radosgw_frontend_port }} --access-key={{ system_access_key }} --secret={{ system_secret_key }} --default"
|
||||
command: "{{ docker_exec_cmd }} radosgw-admin zone create --rgw-zonegroup={{ rgw_zonegroup }} --rgw-zone={{ rgw_zone }} --endpoints={{ rgw_multisite_proto }}://{{ rgw_multisite_endpoint_addr }}:{{ radosgw_frontend_port }} --access-key={{ system_access_key }} --secret={{ system_secret_key }} --default"
|
||||
delegate_to: "{{ groups[mon_group_name][0] }}"
|
||||
run_once: true
|
||||
when:
|
||||
- "'No such file or directory' in zonecheck.stderr"
|
||||
notify:
|
||||
- update period
|
||||
|
||||
- name: add other endpoints to the zone
|
||||
command: "{{ docker_exec_cmd }} radosgw-admin zone modify --rgw-zone={{ rgw_zone }} --endpoints {{ rgw_multisite_endpoints_list }}"
|
||||
delegate_to: "{{ groups[mon_group_name][0] }}"
|
||||
run_once: true
|
||||
when:
|
||||
- rgw_multisite_endpoints_list is defined
|
||||
notify:
|
||||
- update period
|
||||
|
|
|
@ -5,6 +5,7 @@ rgw_multisite: true
|
|||
rgw_zone: jupiter
|
||||
rgw_zonemaster: true
|
||||
rgw_zonesecondary: false
|
||||
rgw_multisite_proto: http
|
||||
rgw_zonegroup: solarsystem
|
||||
rgw_zone_user: zone.user
|
||||
rgw_realm: milkyway
|
||||
|
@ -16,4 +17,4 @@ rgw_create_pools:
|
|||
bar:
|
||||
pg_num: 19
|
||||
rgw_override_bucket_index_max_shards: 16
|
||||
rgw_bucket_default_quota_max_objects: 1638400
|
||||
rgw_bucket_default_quota_max_objects: 1638400
|
||||
|
|
|
@ -5,4 +5,4 @@ mon0
|
|||
osd0
|
||||
|
||||
[rgws]
|
||||
osd0 rgw_multisite_endpoint_addr=192.168.105.100
|
||||
osd0 rgw_multisite_proto=http rgw_multisite_endpoint_addr=192.168.105.100
|
||||
|
|
|
@ -5,4 +5,4 @@ mon0
|
|||
osd0
|
||||
|
||||
[rgws]
|
||||
osd0 copy_admin_key=True rgw_multisite=True rgw_zone=mars rgw_zonemaster=False rgw_zonesecondary=True rgw_zonegroup=solarsystem rgw_zone_user=zone.user rgw_realm=milkyway rgw_multisite_endpoint_addr=192.168.107.100 system_access_key=6kWkikvapSnHyE22P7nO system_secret_key=MGecsMrWtKZgngOHZdrd6d3JxGO5CPWgT2lcnpSt rgw_pull_proto=http rgw_pull_port=8080 rgw_pullhost=192.168.105.100
|
||||
osd0 copy_admin_key=True rgw_multisite=True rgw_zone=mars rgw_zonemaster=False rgw_zonesecondary=True rgw_zonegroup=solarsystem rgw_zone_user=zone.user rgw_realm=milkyway rgw_multisite_proto=http rgw_multisite_endpoint_addr=192.168.107.100 system_access_key=6kWkikvapSnHyE22P7nO system_secret_key=MGecsMrWtKZgngOHZdrd6d3JxGO5CPWgT2lcnpSt rgw_pull_proto=http rgw_pull_port=8080 rgw_pullhost=192.168.105.100
|
||||
|
|
|
@ -5,6 +5,7 @@ rgw_multisite: true
|
|||
rgw_zone: jupiter
|
||||
rgw_zonemaster: true
|
||||
rgw_zonesecondary: false
|
||||
rgw_multisite_proto: http
|
||||
rgw_zonegroup: solarsystem
|
||||
rgw_zone_user: zone.user
|
||||
rgw_realm: milkyway
|
||||
|
@ -16,4 +17,4 @@ rgw_create_pools:
|
|||
bar:
|
||||
pg_num: 19
|
||||
rgw_override_bucket_index_max_shards: 16
|
||||
rgw_bucket_default_quota_max_objects: 1638400
|
||||
rgw_bucket_default_quota_max_objects: 1638400
|
||||
|
|
|
@ -5,4 +5,4 @@ mon0
|
|||
osd0
|
||||
|
||||
[rgws]
|
||||
osd0 rgw_multisite_endpoint_addr=192.168.101.100
|
||||
osd0 rgw_multisite_proto=http rgw_multisite_endpoint_addr=192.168.101.100
|
||||
|
|
|
@ -5,4 +5,4 @@ mon0
|
|||
osd0
|
||||
|
||||
[rgws]
|
||||
osd0 rgw_multisite=True rgw_zone=mars rgw_zonemaster=False rgw_zonesecondary=True rgw_zonegroup=solarsystem rgw_zone_user=zone.user rgw_realm=milkyway rgw_multisite_endpoint_addr=192.168.103.100 system_access_key=6kWkikvapSnHyE22P7nO system_secret_key=MGecsMrWtKZgngOHZdrd6d3JxGO5CPWgT2lcnpSt rgw_pull_proto=http rgw_pull_port=8080 rgw_pullhost=192.168.101.100
|
||||
osd0 rgw_multisite=True rgw_zone=mars rgw_zonemaster=False rgw_zonesecondary=True rgw_zonegroup=solarsystem rgw_zone_user=zone.user rgw_realm=milkyway rgw_multisite_proto=http rgw_multisite_endpoint_addr=192.168.103.100 system_access_key=6kWkikvapSnHyE22P7nO system_secret_key=MGecsMrWtKZgngOHZdrd6d3JxGO5CPWgT2lcnpSt rgw_pull_proto=http rgw_pull_port=8080 rgw_pullhost=192.168.101.100
|
||||
|
|
Loading…
Reference in New Issue