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
55 lines
2.0 KiB
YAML
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
|