diff --git a/roles/airship-gather-libvirt-logs/tasks/main.yml b/roles/airship-gather-libvirt-logs/tasks/main.yml new file mode 100644 index 0000000..0003b09 --- /dev/null +++ b/roles/airship-gather-libvirt-logs/tasks/main.yml @@ -0,0 +1,92 @@ +- name: set libvirt log dir + set_fact: + libvirt_log_dir: "{{ logs_dir }}/libvirt" + +- name: ensure directory for libvirt logs exists + file: + state: directory + path: "{{ libvirt_log_dir }}" + +- name: copy hypervisor logs to tmp directory + command: "cp -r /var/log/libvirt {{ libvirt_log_dir }}/libvirt-hypervisor" + become: true + ignore_errors: True + +- name: collect all libvirt logs and resources + block: + + - name: copy console logs to tmp directory + command: "cp -r /var/log/libvirt-consoles/ {{ libvirt_log_dir }}/libvirt-consoles" + become: true + + - name: ensure libvirt resource dump directories exist + file: + state: directory + path: "{{ libvirt_log_dir }}/{{ xml_dir }}" + with_items: + - xmls/domains + - xmls/pools + - xmls/vols + - xmls/networks + loop_control: + loop_var: xml_dir + + - name: dump libvirt domain xmls + shell: |- + for dom in $(virsh list --all --name); do + virsh dumpxml "${dom}" | tee "{{ libvirt_log_dir }}/xmls/domains/${dom}.xml" + done + args: + executable: /bin/bash + + - name: dump list of defined domains + shell: |- + virsh list --all | tee "{{ libvirt_log_dir }}/xmls/domains/list" + args: + executable: /bin/bash + + - name: dump list of defined pools + shell: |- + virsh pool-list --all | tee "{{ libvirt_log_dir }}/xmls/pools/list" + args: + executable: /bin/bash + + - name: dump libvirt pools xmls + shell: |- + for pool in $(virsh pool-list --all --name); do + virsh dumpxml "${pool}" | tee "{{ libvirt_log_dir }}/xmls/pools/${pool}.xml" + done + args: + executable: /bin/bash + + - name: dump list of defined volumes + shell: |- + for pool in $(virsh pool-list --all --name); do + virsh vol-list --all --pool "${pool}" | tee "{{ libvirt_log_dir }}/xmls/vol/pool-${pool}-list" + for vol in $(virsh vol-list --pool "${pool}" | awk 'NR>2 {print $1}'); do + virsh vol-dumpxml ${vol} --pool ${pool} | tee "{{ libvirt_log_dir }}/xmls/vols/pool-${pool}-${vol}.xml" + done + done + args: + executable: /bin/bash + + - name: dump libvirt network xmls + shell: |- + for net in $(virsh net-list --all --name); do + virsh net-dumpxml "${net}" | tee "{{ libvirt_log_dir }}/xmls/networks/${net}.xml" + done + args: + executable: /bin/bash + + - name: dump list of defined networks + shell: |- + virsh -d 0 net-list --all | tee "{{ libvirt_log_dir }}/xmls/networks/list" + args: + executable: /bin/bash + + - name: "Downloads logs to executor" + synchronize: + src: "{{ libvirt_log_dir }}" + dest: "{{ zuul.executor.log_root }}/{{ inventory_hostname }}" + mode: pull + ignore_errors: True \ No newline at end of file diff --git a/roles/airship-gather-sushy-logs/tasks/main.yml b/roles/airship-gather-sushy-logs/tasks/main.yml new file mode 100644 index 0000000..54c032a --- /dev/null +++ b/roles/airship-gather-sushy-logs/tasks/main.yml @@ -0,0 +1,23 @@ +- name: set redfish log dir + set_fact: + redfish_log_dir: "{{ logs_dir }}/redfish" + +- name: ensure directory for redfish logs exists + file: + state: directory + path: "{{ redfish_log_dir }}" + +- name: dump sushy-tool logs to directory + shell: |- + journalctl --unit sushy-tools.service > "{{ redfish_log_dir }}/sushy-tools.log" + args: + executable: /bin/bash + ignore_errors: True + become: true + +- name: "Downloads logs to executor" + synchronize: + src: "{{ redfish_log_dir }}" + dest: "{{ zuul.executor.log_root }}/{{ inventory_hostname }}" + mode: pull + ignore_errors: True \ No newline at end of file