Files
charm-zuul-jobs/roles/collect-run-data/tasks/main.yaml
Liam Young 3c4120fc28 Reorganise into roles
Reorganise the ansible config into distinct roles. This will
make managing templates and default variables cleaner. I have tested
this as best I can locally.

Change-Id: Ib0be8dde453064336fd2e69afe466f4d64956743
2022-10-27 14:25:55 +00:00

55 lines
2.0 KiB
YAML

- name: Create destination for logs
file:
path: "{{ zuul.project.src_dir }}/log"
state: directory
mode: 0755
- name: debug logs replay
args:
executable: /bin/bash
shell: |
set -o pipefail
MODEL="$(juju models --format=json | jq -r '.models[]["short-name"]' | grep '^zaza-')"
juju switch $MODEL
juju debug-log --replay > {{ zuul.project.src_dir }}/log/debug-hooks.txt
exit 0
- name: debug describe pods
args:
executable: /bin/bash
shell: |
set -o pipefail
MODEL="$(juju models --format=json | jq -r '.models[]["short-name"]' | grep '^zaza-')"
microk8s.kubectl describe -n $MODEL pods > {{ zuul.project.src_dir }}/log/describe-pods.txt
exit 0
- name: juju status
args:
executable: /bin/bash
shell: |
set -o pipefail
for model in $(juju models | grep zaza- | awk '{gsub(/\*?/,""); print $1}'); do
juju status -m $model > {{ zuul.project.src_dir }}/log/juju-status.$model.txt
juju status -m $model --format=yaml > {{ zuul.project.src_dir }}/log/juju-status.$model.yaml
done
- name: Collect var logs
args:
executable: /bin/bash
shell: |
set -o pipefail
MODEL_NAME=$(juju models --format=json | jq -r '.models[]["short-name"]' | grep '^zaza-')
UNITS=$(juju status --format oneline | awk '{print $2}' | sed -e 's!:!!' | grep -Ev '^$' | paste -s -d' ')
for UNIT_NAME in $UNITS; do
POD_NAME=$(echo $UNIT_NAME | sed -e 's!/!-!')
CONTAINERS=$(microk8s.kubectl get pods -n $MODEL_NAME $POD_NAME -o jsonpath='{.spec.containers[*].name}' | sed -e 's/charm //')
for CONTAINER in $CONTAINERS; do
juju ssh --container $CONTAINER -m $MODEL_NAME $UNIT_NAME "tar zcf /tmp/logs.tgz /var/log/"
juju scp --container $CONTAINER -m $MODEL_NAME $UNIT_NAME:/tmp/logs.tgz {{ zuul.project.src_dir }}/log/$POD_NAME-$CONTAINER.tgz
done
done
- name: fetch juju logs
synchronize:
dest: "{{ zuul.executor.log_root }}"
mode: pull
src: "{{ zuul.project.src_dir }}/log"
verify_host: true
owner: false
group: false