]> git.apps.os.sepia.ceph.com Git - ceph-ansible.git/commitdiff
Added initial multisite support
authorJames Saint-Rossy <james_saintrossy@cable.comcast.com>
Mon, 8 Aug 2016 03:16:15 +0000 (23:16 -0400)
committerJames Saint-Rossy <james_saintrossy@cable.comcast.com>
Mon, 8 Aug 2016 03:16:15 +0000 (23:16 -0400)
roles/ceph-rgw/handlers/main.yml [new file with mode: 0644]
roles/ceph-rgw/handlers/multisite.yml [new file with mode: 0644]
roles/ceph-rgw/tasks/main.yml
roles/ceph-rgw/tasks/multisite.yml [new file with mode: 0644]

diff --git a/roles/ceph-rgw/handlers/main.yml b/roles/ceph-rgw/handlers/main.yml
new file mode 100644 (file)
index 0000000..a448e19
--- /dev/null
@@ -0,0 +1,3 @@
+---
+- include: multisite.yml
+  when: rgw_zone is defined and rgw_multisite and ( is_jewel or is_after_jewel )
diff --git a/roles/ceph-rgw/handlers/multisite.yml b/roles/ceph-rgw/handlers/multisite.yml
new file mode 100644 (file)
index 0000000..ccb8226
--- /dev/null
@@ -0,0 +1,3 @@
+---
+- name: update period
+  command: radosgw-admin period update --commit
index 91c8c9f79034a760beef897212e783744e72596e..f79ee73aaba1b35038063227b4f514036a547385 100644 (file)
@@ -5,6 +5,9 @@
 - include: openstack-keystone.yml
   when: radosgw_keystone
 
+- include: multisite.yml
+  when: rgw_zone is defined and rgw_multisite and ( is_jewel or is_after_jewel )
+
 - include: start_radosgw.yml
   when: not rgw_containerized_deployment
 
diff --git a/roles/ceph-rgw/tasks/multisite.yml b/roles/ceph-rgw/tasks/multisite.yml
new file mode 100644 (file)
index 0000000..d4afe06
--- /dev/null
@@ -0,0 +1,52 @@
+---
+- name: Check if the realm already exists
+  command: radosgw-admin realm get --rgw-realm={{ rgw_realm }}
+  register: realmcheck
+  failed_when: False
+  changed_when: False
+
+- name: Create the realm
+  command: radosgw-admin realm create --rgw-realm={{ rgw_realm }} --default
+  run_once: true
+  when: ('No such file or directory' in realmcheck.stderr)
+  notify:
+    - update period
+
+- name: Check if the zonegroup already exists
+  command: radosgw-admin zonegroup get --rgw-zonegroup={{ rgw_zonegroup }}
+  register: zonegroupcheck
+  failed_when: False
+  changed_when: False
+
+- name: Create the zonegroup 
+  command: radosgw-admin zonegroup create --rgw-zonegroup={{ rgw_zonegroup }} --endpoints=http://{{ ansible_hostname }}:8080 --master --default
+  run_once: true
+  when: ('No such file or directory' in zonegroupcheck.stderr) and rgw_zonemaster
+  notify:
+    - update period
+
+- name: Check if the zone already exists
+  command: radosgw-admin zone get --rgw-zone={{ rgw_zone }}
+  register: zonecheck
+  failed_when: False
+  changed_when: False
+
+- name: Create the zone
+  command: radosgw-admin zone create --rgw-zonegroup={{ rgw_zonegroup }} --rgw-zone={{ rgw_zone }} --endpoints=http://{{ ansible_hostname }}:8080 --access-key={{ system_access_key }} --secret={{ system_secret_key }} --default --master
+  run_once: true
+  when: ('No such file or directory' in zonecheck.stderr) and rgw_zonemaster
+  notify:
+    - update period
+
+- name: Check if the system user already exists
+  command: radosgw-admin user info --uid=zone.user
+  register: usercheck
+  failed_when: False
+  changed_when: False
+
+- name: Create the zone user
+  command: radosgw-admin user create --uid=zone.user --display-name="Zone User" --access-key={{ system_access_key }} --secret={{ system_secret_key }} --system
+  run_once: true
+  when: "'could not fetch user info: no user info saved' in usercheck.stderr"
+  notify:
+    - update period