ceph-ansible/roles/ceph-mon/tasks/docker/main.yml

128 lines
6.0 KiB
YAML

---
- name: include copy_configs.yml
include_tasks: copy_configs.yml
when: not containerized_deployment_with_kv
- name: include start_docker_monitor.yml
include_tasks: start_docker_monitor.yml
- name: include configure_ceph_command_aliases.yml
include_tasks: configure_ceph_command_aliases.yml
- name: wait for monitor socket to exist
command: "{{ docker_exec_cmd }} sh -c 'stat /var/run/ceph/{{ cluster }}-mon.{{ ansible_hostname }}.asok || stat /var/run/ceph/{{ cluster }}-mon.{{ ansible_fqdn }}.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_cmd }} 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_cmd }} 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_cmd }} 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'] != 'subnet'
- name: ipv6 - force peer addition as potential bootstrap peer for cluster bringup - monitor_interface
command: "{{ docker_exec_cmd }} 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_cmd }} 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_cmd }} 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'] != 'subnet'
- name: include fetch_configs.yml
include_tasks: fetch_configs.yml
run_once: true
when: not containerized_deployment_with_kv
- name: create ceph rest api keyring when mon is containerized
command: "{{ docker_exec_cmd }} 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
- block:
- name: create ceph mgr keyring(s) when mon is containerized
ceph_key:
state: present
name: "mgr.{{ hostvars[item]['ansible_hostname'] }}"
caps:
mon: 'allow profile mgr'
osd: 'allow *'
mds: 'allow *'
containerized: "{{ docker_exec_cmd }}"
cluster: "{{ cluster }}"
mode: "{{ ceph_keyring_permissions }}"
with_items: "{{ groups.get(mgr_group_name) }}"
when:
- cephx
- containerized_deployment
- "{{ groups.get(mgr_group_name, []) | length > 0 }}"
- not containerized_deployment_with_kv
- name: fetch ceph mgr key(s)
fetch:
src: "{{ ceph_conf_key_directory }}/{{ cluster }}.mgr.{{ hostvars[item]['ansible_hostname'] }}.keyring"
dest: "{{ fetch_directory }}/{{ fsid }}/{{ ceph_conf_key_directory }}/{{ cluster }}.mgr.{{ hostvars[item]['ansible_hostname'] }}.keyring"
flat: yes
with_items:
- "{{ groups.get(mgr_group_name, []) }}"
when:
- "{{ groups.get(mgr_group_name, []) | length > 0 }}"
when:
- not rolling_update
- inventory_hostname == groups[mon_group_name]|last