--- - name: set_fact docker_exec_cmd set_fact: docker_exec_cmd_mgr: "docker exec ceph-mon-{{ hostvars[groups[mon_group_name][0]]['ansible_hostname'] }}" when: - containerized_deployment - name: include pre_requisite.yml include: pre_requisite.yml when: not containerized_deployment - name: include docker/main.yml include: docker/main.yml when: containerized_deployment - name: get enabled modules from ceph-mgr command: "{{ docker_exec_cmd_mgr | default('') }} ceph --cluster {{ cluster }} --format json mgr module ls" register: enabled_ceph_mgr_modules delegate_to: "{{ groups[mon_group_name][0] }}" when: - ceph_release_num[ceph_release] >= ceph_release_num['luminous'] - name: disable ceph mgr enabled modules command: "{{ docker_exec_cmd_mgr | default('') }} ceph --cluster {{ cluster }} mgr module disable {{ item }}" # When ceph release is jewel, ceph-mgr role is skipped. It means, the enabled_ceph_mgr_modules doesn't contain 'stdout' attribute. # Therefore, we need to get a default value which can be used up by from_json filter. with_items: "{{ enabled_ceph_mgr_modules.get('stdout', '{}') | from_json }}" delegate_to: "{{ groups[mon_group_name][0] }}" when: - not enabled_ceph_mgr_modules.get('skipped') - ceph_release_num[ceph_release] >= ceph_release_num['luminous'] - name: add modules to ceph-mgr command: "{{ docker_exec_cmd_mgr | default('') }} ceph --cluster {{ cluster }} mgr module enable {{ item }} --force" with_items: "{{ ceph_mgr_modules }}" delegate_to: "{{ groups[mon_group_name][0] }}" when: - ceph_release_num[ceph_release] >= ceph_release_num['luminous']