[AIR-225] Add log collection roles for zuul gating

These roles will allow to get logs and resource definitions from
remote host to zuul, will ease debugging process.

Change-Id: I1876ff59fc99d2a605a45e3ecc1abb46bac677a6
This commit is contained in:
Kostiantyn Kalynovskyi 2020-01-28 23:56:35 +00:00
parent f3cbed1d96
commit b60bf53829
2 changed files with 115 additions and 0 deletions

View File

@ -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

View File

@ -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