diff --git a/roles/ceph-handler/tasks/main.yml b/roles/ceph-handler/tasks/main.yml index 521fd15e2..27d4083af 100644 --- a/roles/ceph-handler/tasks/main.yml +++ b/roles/ceph-handler/tasks/main.yml @@ -47,4 +47,19 @@ or inventory_hostname in groups.get(osd_group_name, []) or inventory_hostname in groups.get(mds_group_name, []) or inventory_hostname in groups.get(rgw_group_name, []) - or inventory_hostname in groups.get(rbdmirror_group_name, []) \ No newline at end of file + or inventory_hostname in groups.get(rbdmirror_group_name, []) + +- name: rgw multi-instances related tasks + when: + - inventory_hostname in groups.get(rgw_group_name, []) + - handler_rgw_status | bool + block: + - name: import_role ceph-config + import_role: + name: ceph-config + + - name: import_role ceph-rgw + import_role: + name: ceph-rgw + tasks_from: pre_requisite.yml + when: not containerized_deployment | bool diff --git a/roles/ceph-rgw/tasks/pre_requisite.yml b/roles/ceph-rgw/tasks/pre_requisite.yml index 29c1e2e80..fee9be838 100644 --- a/roles/ceph-rgw/tasks/pre_requisite.yml +++ b/roles/ceph-rgw/tasks/pre_requisite.yml @@ -1,17 +1,20 @@ --- -- name: create rados gateway instance keyring - command: ceph --cluster {{ cluster }} --name client.bootstrap-rgw --keyring /var/lib/ceph/bootstrap-rgw/{{ cluster }}.keyring auth get-or-create client.rgw.{{ ansible_hostname }}.{{ item.instance_name }} osd 'allow rwx' mon 'allow rw' -o /var/lib/ceph/radosgw/{{ cluster }}-rgw.{{ ansible_hostname }}.{{ item.instance_name }}/keyring - args: - creates: /var/lib/ceph/radosgw/{{ cluster }}-rgw.{{ ansible_hostname }}.{{ item.instance_name }}/keyring - changed_when: false - with_items: "{{ rgw_instances }}" - when: cephx | bool - -- name: set rados gateway instance key permissions - file: - path: /var/lib/ceph/radosgw/{{ cluster }}-rgw.{{ ansible_hostname }}.{{ item.instance_name }}/keyring +- name: create rgw keyrings + ceph_key: + name: "client.rgw.{{ ansible_hostname }}.{{ item.instance_name }}" + cluster: "{{ cluster }}" + user: "client.bootstrap-rgw" + user_key: /var/lib/ceph/bootstrap-rgw/{{ cluster }}.keyring + dest: "/var/lib/ceph/radosgw/{{ cluster }}-rgw.{{ ansible_hostname }}.{{ item.instance_name }}/keyring" + caps: + osd: 'allow rwx' + mon: 'allow rw' + import_key: False owner: "ceph" group: "ceph" mode: "0600" + environment: + CEPH_CONTAINER_IMAGE: "{{ ceph_docker_registry + '/' + ceph_docker_image + ':' + ceph_docker_image_tag if containerized_deployment else None }}" + CEPH_CONTAINER_BINARY: "{{ container_binary }}" with_items: "{{ rgw_instances }}" - when: cephx | bool + when: cephx | bool \ No newline at end of file