]> git.apps.os.sepia.ceph.com Git - ceph-ansible.git/commitdiff
rgw multisite: add more than 1 rgw to the master or secondary zone v3.2.13
authorAli Maredia <amaredia@redhat.com>
Thu, 31 Jan 2019 20:43:21 +0000 (20:43 +0000)
committermergify[bot] <mergify[bot]@users.noreply.github.com>
Sat, 6 Apr 2019 08:50:30 +0000 (08:50 +0000)
Closes: https://bugzilla.redhat.com/show_bug.cgi?id=1664869
Signed-off-by: Ali Maredia <amaredia@redhat.com>
(cherry picked from commit 37f46a8c5de9585c2639cc4741ee8f62bc2c854b)

12 files changed:
README-MULTISITE.md
group_vars/all.yml.sample
group_vars/rhcs.yml.sample
roles/ceph-defaults/defaults/main.yml
roles/ceph-rgw/tasks/multisite/master.yml
roles/ceph-rgw/tasks/multisite/secondary.yml
tests/functional/rgw-multisite/container/group_vars/rgws
tests/functional/rgw-multisite/container/hosts
tests/functional/rgw-multisite/container/secondary/hosts
tests/functional/rgw-multisite/group_vars/rgws
tests/functional/rgw-multisite/hosts
tests/functional/rgw-multisite/secondary/hosts

index 5b09c130f9b0e686b8e0f09adf7f7630163368ff..ddee0d9f1b5c391747e23feaa722eb44047f56dc 100644 (file)
@@ -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,8 +43,17 @@ system_access_key: 6kWkikvapSnHyE22P7nO
 system_secret_key: MGecsMrWtKZgngOHZdrd6d3JxGO5CPWgT2lcnpSt
 ```
 
-**Note:** replace the system_access_key and system_secret_key values with the ones you generated
-**Note:** rgw_zonemaster should have the value of true and rgw_zonesecondary should be false
+**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
 
@@ -57,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
@@ -68,10 +81,22 @@ rgw_pull_port: 8080
 rgw_pullhost: cluster0-rgw0
 ```
 
+<<<<<<< HEAD
 **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:** rgw_zonemaster should have the value of false and rgw_zonesecondary should be true
 
+=======
+**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
+>>>>>>> 37f46a8c... rgw multisite: add more than 1 rgw to the master or secondary zone
 
 5. Run the ceph-ansible playbook on your 2nd cluster
 
index d0b47fd2d76790628efe5dca85f6880e0bb77637..5ce1813c09a898dc3feee7790a40c994c3708fff 100644 (file)
@@ -481,13 +481,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
@@ -496,8 +505,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
 
 
 ###################
index f4fe636bd3ee10d4b04534f1642a9433e8a81a32..864dbd1e068559212f68206c725911047b084299 100644 (file)
@@ -481,13 +481,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
@@ -496,8 +505,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
 
 
 ###################
index c28eba47c2e9988f64d883cc9ff9a2ef1f8fd0e0..47141e54d7a1a4ca9e7f4e36c0a6cd56fa11d08c 100644 (file)
@@ -473,13 +473,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
@@ -488,8 +497,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
 
 
 ###################
index 8982e960e4c42fcc87197a25fb653c32039abf21..26449f3f33bddf588a4700a984fa5b23c082a157 100644 (file)
@@ -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:
     - "'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
index 4353138cbcc99a3162a10b68dedadd328510e306..365d52e8df3718f0db3436176b99f46d46a7f77e 100644 (file)
   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
index 6ecc36f69d193647c1b961c6dd3775f3f13fd918..23b6f80d8e4c1a5a51c52acbf9e414ff27b793a2 100644 (file)
@@ -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
\ No newline at end of file
+rgw_bucket_default_quota_max_objects: 1638400
index 24e7374a5cf29b46f6e412091189b83e01bf2c90..864d65269580573f9775ce5f4cf762fc4d1c3674 100644 (file)
@@ -8,4 +8,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
index c5e55ff4c7fb113ed9a0630acd2ba7b9005ad1a2..787a97146f94bd56e629a4cbc9396658e3ca6637 100644 (file)
@@ -8,4 +8,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
index 6ecc36f69d193647c1b961c6dd3775f3f13fd918..23b6f80d8e4c1a5a51c52acbf9e414ff27b793a2 100644 (file)
@@ -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
\ No newline at end of file
+rgw_bucket_default_quota_max_objects: 1638400
index eb9011efc17bd26376f12343db5c350212839239..b7eb41d349be30bede39d23494b0d9d029164f39 100644 (file)
@@ -8,4 +8,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
index a614dbc2171702b2322029fdf505a189adf6a189..e29b55137b3c24fbe0d05f09ed0cc5ddfd8fc62f 100644 (file)
@@ -8,4 +8,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