diff --git a/roles/ceph-mon/tasks/openstack_config.yml b/roles/ceph-mon/tasks/openstack_config.yml index 8117e98ff..a8e27eff4 100644 --- a/roles/ceph-mon/tasks/openstack_config.yml +++ b/roles/ceph-mon/tasks/openstack_config.yml @@ -8,7 +8,7 @@ # A future version could use "--caps CAPSFILE" # which will set all of capabilities associated with a given key, for all subsystems - name: create openstack key(s) - shell: "{{ docker_exec_cmd }} ceph-authtool -C /etc/ceph/{{ cluster }}.{{ item.name }}.keyring --name {{ item.name }} --add-key {{ item.key }} --cap mon \"{{ item.mon_cap|default('') }}\" --cap osd \"{{ item.osd_cap|default('') }}\" --cap mds \"{{ item.mds_cap|default('') }}\"" + shell: "{{ docker_exec_cmd }} bash -c 'ceph-authtool -C /etc/ceph/{{ cluster }}.{{ item.name }}.keyring --name {{ item.name }} --add-key {{ item.key }} --cap mon \"{{ item.mon_cap|default('') }}\" --cap osd \"{{ item.osd_cap|default('') }}\" --cap mds \"{{ item.mds_cap|default('') }}\"'" args: creates: "/etc/ceph/{{ cluster }}.{{ item.name }}.keyring" with_items: "{{ openstack_keys }}" @@ -29,3 +29,23 @@ - "{{ openstack_keys }}" - "{{ openstack_key_exist.results }}" when: item.1.rc != 0 + +- name: fetch openstack key(s) + fetch: + src: "/etc/ceph/{{ cluster }}.{{ item.name }}.keyring" + dest: "{{ fetch_directory }}/{{ fsid }}/etc/ceph/{{ cluster }}.{{ item.name }}.keyring" + flat: yes + with_items: "{{ openstack_keys }}" + +- name: copy to other mons the openstack key(s) + copy: + src: "{{ fetch_directory }}/{{ fsid }}/etc/ceph/{{ cluster }}.{{ item.1.name }}.keyring" + dest: "/etc/ceph/{{ cluster }}.{{ item.1.name }}.keyring" + with_nested: + - "{{ groups[mon_group_name] }}" + - "{{ openstack_keys }}" + delegate_to: "{{ item.0 }}" + when: + - cephx + - openstack_config + - item.0 != groups[mon_group_name] | last