--- - include: copy_configs.yml when: not containerized_deployment_with_kv - include: start_docker_monitor.yml - name: wait for monitor socket to exist command: docker exec ceph-mon-{{ ansible_hostname }} stat /var/run/ceph/{{ cluster }}-mon.{{ monitor_name }}.asok register: monitor_socket retries: 5 delay: 15 until: monitor_socket.rc == 0 - name: ipv4 - force peer addition as potential bootstrap peer for cluster bringup - monitor_interface command: docker exec ceph-mon-{{ ansible_hostname }} ceph --admin-daemon /var/run/ceph/{{ cluster }}-mon.{{ monitor_name }}.asok add_bootstrap_peer_hint {{ hostvars[groups[mon_group_name][0]]['ansible_' + monitor_interface].ipv4.address }} changed_when: false failed_when: false when: - not containerized_deployment_with_kv - ip_version == 'ipv4' - hostvars[groups[mon_group_name][0]]['monitor_interface'] is defined - hostvars[groups[mon_group_name][0]]['monitor_interface'] != 'interface' - name: ipv4 - force peer addition as potential bootstrap peer for cluster bringup - monitor_address command: docker exec ceph-mon-{{ ansible_hostname }} ceph --admin-daemon /var/run/ceph/{{ cluster }}-mon.{{ monitor_name }}.asok add_bootstrap_peer_hint {{ hostvars[groups[mon_group_name][0]]['monitor_address'] }} changed_when: false failed_when: false when: - not containerized_deployment_with_kv - ip_version == 'ipv4' - hostvars[groups[mon_group_name][0]]['monitor_address'] is defined - hostvars[groups[mon_group_name][0]]['monitor_address'] != '0.0.0.0' - name: ipv4 - force peer addition as potential bootstrap peer for cluster bringup - monitor_address_block command: docker exec ceph-mon-{{ ansible_hostname }} ceph --admin-daemon /var/run/ceph/{{ cluster }}-mon.{{ monitor_name }}.asok add_bootstrap_peer_hint {{ hostvars[groups[mon_group_name][0]]['ansible_all_' + ip_version + '_addresses'] | ipaddr(monitor_address_block) | first }} changed_when: false failed_when: false when: - not containerized_deployment_with_kv - ip_version == 'ipv4' - hostvars[groups[mon_group_name][0]]['monitor_address_block'] is defined - hostvars[groups[mon_group_name][0]]['monitor_address_block'] | length > 0 - name: ipv6 - force peer addition as potential bootstrap peer for cluster bringup - monitor_interface command: docker exec ceph-mon-{{ ansible_hostname }} ceph --admin-daemon /var/run/ceph/{{ cluster }}-mon.{{ monitor_name }}.asok add_bootstrap_peer_hint [{{ hostvars[groups[mon_group_name][0]]['ansible_' + monitor_interface].ipv6[0].address }}] changed_when: false failed_when: false when: - not containerized_deployment_with_kv - ip_version == 'ipv6' - hostvars[groups[mon_group_name][0]]['monitor_interface'] is defined - hostvars[groups[mon_group_name][0]]['monitor_interface'] != 'interface' - name: ipv6 - force peer addition as potential bootstrap peer for cluster bringup - monitor_address command: docker exec ceph-mon-{{ ansible_hostname }} ceph --admin-daemon /var/run/ceph/{{ cluster }}-mon.{{ monitor_name }}.asok add_bootstrap_peer_hint [{{ hostvars[groups[mon_group_name][0]]['monitor_address'] }}] changed_when: false failed_when: false when: - not containerized_deployment_with_kv - ip_version == 'ipv6' - hostvars[groups[mon_group_name][0]]['monitor_address'] is defined - hostvars[groups[mon_group_name][0]]['monitor_address'] != '0.0.0.0' - name: ipv6 - force peer addition as potential bootstrap peer for cluster bringup - monitor_address_block command: docker exec ceph-mon-{{ ansible_hostname }} ceph --admin-daemon /var/run/ceph/{{ cluster }}-mon.{{ monitor_name }}.asok add_bootstrap_peer_hint [{{ hostvars[groups[mon_group_name][0]]['ansible_all_' + ip_version + '_addresses'] | ipaddr(monitor_address_block) | first }}] changed_when: false failed_when: false when: - not containerized_deployment_with_kv - ip_version == 'ipv6' - hostvars[groups[mon_group_name][0]]['monitor_address_block'] is defined - hostvars[groups[mon_group_name][0]]['monitor_address_block'] | length > 0 - include: ./fetch_configs.yml when: not containerized_deployment_with_kv - name: create ceph rest api keyring when mon is containerized command: docker exec ceph-mon-{{ ansible_hostname }} ceph --cluster {{ cluster }} auth get-or-create client.restapi osd 'allow *' mon 'allow *' -o /etc/ceph/{{ cluster }}.client.restapi.keyring args: creates: "{{ ceph_conf_key_directory }}/{{ cluster }}.client.restapi.keyring" changed_when: false when: - cephx - containerized_deployment - groups[restapi_group_name] is defined - "{{ inventory_hostname == groups[mon_group_name] | last }}" - not containerized_deployment_with_kv - include: "{{ lookup('env', 'ANSIBLE_ROLES_PATH') | default (playbook_dir + '/roles', true) }}/ceph-mon/tasks/set_osd_pool_default_pg_num.yml" # create openstack pools only when all mons are up. - include: "{{ lookup('env', 'ANSIBLE_ROLES_PATH') | default (playbook_dir + '/roles', true) }}/ceph-mon/tasks/openstack_config.yml" when: - openstack_config - "{{ inventory_hostname == groups[mon_group_name] | last }}" - block: - name: create ceph mgr keyring(s) when mon is containerized command: docker exec ceph-mon-{{ ansible_hostname }} ceph --cluster {{ cluster }} auth get-or-create mgr.{{ hostvars[item]['ansible_hostname'] }} mon 'allow profile mgr' osd 'allow *' mds 'allow *' -o /etc/ceph/{{ cluster }}.mgr.{{ hostvars[item]['ansible_hostname'] }}.keyring args: creates: "{{ ceph_conf_key_directory }}/{{ cluster }}.mgr.{{ hostvars[item]['ansible_hostname'] }}.keyring" changed_when: false when: - cephx - containerized_deployment - "{{ groups.get(mgr_group_name, []) | length > 0 }}" - not containerized_deployment_with_kv with_items: "{{ groups.get(mgr_group_name, []) }}" - name: stat for ceph mgr key(s) stat: path: "{{ ceph_conf_key_directory }}/{{ cluster }}.mgr.{{ hostvars[item]['ansible_hostname'] }}.keyring" with_items: "{{ groups.get(mgr_group_name, []) }}" changed_when: false become: false failed_when: false register: stat_mgr_keys always_run: true when: - "{{ groups.get(mgr_group_name, []) | length > 0 }}" - name: fetch ceph mgr key(s) fetch: src: "{{ ceph_conf_key_directory }}/{{ cluster }}.mgr.{{ hostvars[item.item]['ansible_hostname'] }}.keyring" dest: "{{ fetch_directory }}/{{ fsid }}/{{ item.stat.path }}" flat: yes with_items: - "{{ stat_mgr_keys.results }}" when: - item.stat.exists == true when: - inventory_hostname == groups[mon_group_name]|last - ceph_release_num.{{ ceph_release }} >= ceph_release_num.luminous