--- - name: Deploy node_exporter hosts: - "{{ mon_group_name|default('mons') }}" - "{{ osd_group_name|default('osds') }}" - "{{ mds_group_name|default('mdss') }}" - "{{ rgw_group_name|default('rgws') }}" - "{{ mgr_group_name|default('mgrs') }}" - "{{ rbdmirror_group_name|default('rbdmirrors') }}" - "{{ monitoring_group_name|default('monitoring') }}" gather_facts: false become: true pre_tasks: - name: Import ceph-defaults role ansible.builtin.import_role: name: ceph-defaults tags: ['ceph_update_config'] - name: Set ceph node exporter install 'In Progress' run_once: true ansible.builtin.set_stats: data: installer_phase_ceph_node_exporter: status: "In Progress" start: "{{ lookup('pipe', 'date +%Y%m%d%H%M%SZ') }}" tasks: - name: Import ceph-facts role ansible.builtin.import_role: name: ceph-facts tags: ['ceph_update_config'] - name: Import ceph-container-engine ansible.builtin.import_role: name: ceph-container-engine - name: Import ceph-container-common role ansible.builtin.import_role: name: ceph-container-common tasks_from: registry when: - not containerized_deployment | bool - ceph_docker_registry_auth | bool - name: Import ceph-node-exporter role ansible.builtin.import_role: name: ceph-node-exporter post_tasks: - name: Set ceph node exporter install 'Complete' run_once: true ansible.builtin.set_stats: data: installer_phase_ceph_node_exporter: status: "Complete" end: "{{ lookup('pipe', 'date +%Y%m%d%H%M%SZ') }}" - name: Deploy grafana and prometheus hosts: "{{ monitoring_group_name | default('monitoring') }}" gather_facts: false become: true pre_tasks: - name: Import ceph-defaults role ansible.builtin.import_role: name: ceph-defaults tags: ['ceph_update_config'] - name: Set ceph grafana install 'In Progress' run_once: true ansible.builtin.set_stats: data: installer_phase_ceph_grafana: status: "In Progress" start: "{{ lookup('pipe', 'date +%Y%m%d%H%M%SZ') }}" tasks: # - ansible.builtin.import_role: # name: ceph-facts # tags: ['ceph_update_config'] - name: Import ceph-facts role ansible.builtin.import_role: name: ceph-facts tasks_from: grafana tags: ['ceph_update_config'] - name: Import ceph-prometheus role ansible.builtin.import_role: name: ceph-prometheus - name: Import ceph-grafana role ansible.builtin.import_role: name: ceph-grafana post_tasks: - name: Set ceph grafana install 'Complete' run_once: true ansible.builtin.set_stats: data: installer_phase_ceph_grafana: status: "Complete" end: "{{ lookup('pipe', 'date +%Y%m%d%H%M%SZ') }}" # using groups[] here otherwise it can't fallback to the mon if there's no mgr group. # adding an additional | default(omit) in case where no monitors are present (external ceph cluster) - name: Deploy dashboard hosts: "{{ groups['mgrs'] | default(groups['mons']) | default(omit) }}" gather_facts: false become: true pre_tasks: - name: Import ceph-defaults role ansible.builtin.import_role: name: ceph-defaults tags: ['ceph_update_config'] - name: Set ceph dashboard install 'In Progress' run_once: true ansible.builtin.set_stats: data: installer_phase_ceph_dashboard: status: "In Progress" start: "{{ lookup('pipe', 'date +%Y%m%d%H%M%SZ') }}" tasks: # - name: Import ceph-facts role # ansible.builtin.import_role: # name: ceph-facts # tags: ['ceph_update_config'] - name: Import ceph-facts role ansible.builtin.import_role: name: ceph-facts tasks_from: grafana tags: ['ceph_update_config'] - name: Import ceph-dashboard role ansible.builtin.import_role: name: ceph-dashboard post_tasks: - name: Set ceph dashboard install 'Complete' run_once: true ansible.builtin.set_stats: data: installer_phase_ceph_dashboard: status: "Complete" end: "{{ lookup('pipe', 'date +%Y%m%d%H%M%SZ') }}"