--- /dev/null
+---
+- hosts: all
+ become: yes
+ tasks:
+ - name: import_role ceph-defaults
+ import_role:
+ name: ceph-defaults
+
+ - name: import_role ceph-facts
+ import_role:
+ name: ceph-facts
+ tasks_from: container_binary.yml
+
+ - name: set_fact ceph_cmd
+ set_fact:
+ ceph_cmd: "{{ container_binary + ' run --rm --net=host -v /etc/ceph:/etc/ceph:z -v /var/lib/ceph:/var/lib/ceph:z -v /var/run/ceph:/var/run/ceph:z --entrypoint=ceph ' + ceph_docker_registry + '/' + ceph_docker_image + ':' + ceph_docker_image_tag if containerized_deployment | bool else 'ceph' }}"
+
+ - name: get some ceph status outputs
+ command: "{{ ceph_cmd }} --connect-timeout 10 --cluster {{ cluster }} {{ item }}"
+ register: ceph_status
+ run_once: True
+ delegate_to: mon0
+ failed_when: false
+ changed_when: false
+ with_items:
+ - "-s -f json"
+ - "osd tree"
+ - "osd dump"
+ - "pg dump"
+ - "versions"
+
+ - name: save ceph status to file
+ copy:
+ content: "{{ item.stdout }}"
+ dest: "{{ archive_path }}/{{ item.item | regex_replace(' ', '_') }}.log"
+ delegate_to: localhost
+ run_once: True
+ with_items: "{{ ceph_status.results }}"
+
+ - name: get mgr log
+ shell: journalctl -l -u ceph-mgr@{{ ansible_facts['hostname'] }} > /var/log/ceph/ceph-mgr.{{ ansible_facts['hostname'] }}.log
+ changed_when: false
+ when:
+ - inventory_hostname in groups.get(mgr_group_name, [])
+ or
+ (groups.get(mgr_group_name, []) | length == 0 and inventory_hostname in groups.get(mon_group_name, []))
+
+ - name: find ceph config file and logs
+ find:
+ paths:
+ - /etc/ceph
+ - /var/log/ceph
+ patterns:
+ - "*.conf"
+ - "*.log"
+ register: results
+
+ - name: collect ceph config file and logs
+ fetch:
+ src: "{{ item.path }}"
+ dest: "{{ archive_path }}/{{ inventory_hostname }}/"
+ flat: yes
+ with_items: "{{ results.files }}"