/etc/ansible/roles/ceph-ansible/roles/ceph-osd/tasks/common.yml
---
- name: create bootstrap-osd and osd directories
  file:
    path: "{{ item }}"
    state: directory
    owner: "{{ ceph_uid if containerized_deployment else 'ceph' }}"
    group: "{{ ceph_uid if containerized_deployment else 'ceph' }}"
    mode: "{{ ceph_directories_mode | default('0755') }}"
  when: cephx | bool
  with_items:
    - /var/lib/ceph/bootstrap-osd/
    - /var/lib/ceph/osd/

- name: get keys from monitors
  command: "{{ hostvars[groups[mon_group_name][0]]['container_exec_cmd'] | default('') }} ceph --cluster {{ cluster }} auth get {{ item.name }}"
  register: _osd_keys
  with_items:
    - { name: "client.bootstrap-osd", path: "/var/lib/ceph/bootstrap-osd/{{ cluster }}.keyring", copy_key: true }
    - { name: "client.admin", path: "/etc/ceph/{{ cluster }}.client.admin.keyring", copy_key: "{{ copy_admin_key }}" }
  delegate_to: "{{ groups.get(mon_group_name)[0] }}"
  run_once: true
  when:
    - cephx | bool
    - item.copy_key | bool

- name: copy ceph key(s) if needed
  copy:
    dest: "{{ item.item.path }}"
    content: "{{ item.stdout + '\n' }}"
    owner: "{{ ceph_uid if containerized_deployment else 'ceph' }}"
    group: "{{ ceph_uid if containerized_deployment else 'ceph' }}"
    mode: "{{ ceph_keyring_permissions }}"
  with_items: "{{ _osd_keys.results }}"
  when:
    - cephx | bool
    - item.item.copy_key | bool