mirror of https://github.com/ceph/ceph-ansible.git
rgw: fix multi instances scaleout in baremetal
When rgw and osd are collocated, the current workflow prevents from
scaling out the radosgw_num_instances parameter when rerunning the
playbook in baremetal deployments.
When ceph-osd notifies handlers, it means rgw handlers are triggered
too. The issue with this is that they are triggered before the role
ceph-rgw is run.
In the case a scaleout operation is expected on `radosgw_num_instances`
it causes an issue because keyrings haven't been created yet so the new
instances won't start.
Closes: https://bugzilla.redhat.com/show_bug.cgi?id=1881313
Signed-off-by: Guillaume Abrioux <gabrioux@redhat.com>
(cherry picked from commit a802fa2810
)
pull/5914/head
parent
b13f0d12e7
commit
52826caa51
|
@ -48,3 +48,18 @@
|
||||||
or inventory_hostname in groups.get(mds_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(rgw_group_name, [])
|
||||||
or inventory_hostname in groups.get(rbdmirror_group_name, [])
|
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
|
||||||
|
|
|
@ -1,17 +1,21 @@
|
||||||
---
|
---
|
||||||
- name: create rados gateway instance keyring
|
- name: create rgw keyrings
|
||||||
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
|
ceph_key:
|
||||||
args:
|
state: present
|
||||||
creates: /var/lib/ceph/radosgw/{{ cluster }}-rgw.{{ ansible_hostname }}.{{ item.instance_name }}/keyring
|
name: "client.rgw.{{ ansible_hostname }}.{{ item.instance_name }}"
|
||||||
changed_when: false
|
cluster: "{{ cluster }}"
|
||||||
with_items: "{{ rgw_instances }}"
|
user: "client.bootstrap-rgw"
|
||||||
when: cephx | bool
|
user_key: /var/lib/ceph/bootstrap-rgw/{{ cluster }}.keyring
|
||||||
|
dest: "/var/lib/ceph/radosgw/{{ cluster }}-rgw.{{ ansible_hostname }}.{{ item.instance_name }}/keyring"
|
||||||
- name: set rados gateway instance key permissions
|
caps:
|
||||||
file:
|
osd: 'allow rwx'
|
||||||
path: /var/lib/ceph/radosgw/{{ cluster }}-rgw.{{ ansible_hostname }}.{{ item.instance_name }}/keyring
|
mon: 'allow rw'
|
||||||
|
import_key: False
|
||||||
owner: "ceph"
|
owner: "ceph"
|
||||||
group: "ceph"
|
group: "ceph"
|
||||||
mode: "0600"
|
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 }}"
|
with_items: "{{ rgw_instances }}"
|
||||||
when: cephx | bool
|
when: cephx | bool
|
Loading…
Reference in New Issue