Collect production playbook output

We need to log to a file and then collect it to the log output on
zuul. Default to true to that steady-state reads nicely. When we
add new jobs we should make sure to set to false first so that we
can vett the output before publishing it.

Change-Id: Ia4f759b82a5fff6e36e4284c11281254c0d5627d
This commit is contained in:
Monty Taylor 2020-03-30 13:55:16 -05:00
parent bde5860f57
commit 179d1a2516
2 changed files with 28 additions and 2 deletions

View File

@ -1408,6 +1408,7 @@
run: playbooks/zuul/run-production-playbook.yaml
vars:
ansible_forks: 5
infra_prod_playbook_collect_log: true
nodeset:
nodes: []

View File

@ -15,6 +15,31 @@
- hosts: bridge.openstack.org
tasks:
- name: Run specified playbook on bridge.o.o
- name: Log a playbook start header
become: yes
command: ansible-playbook -f {{ ansible_forks }} /opt/system-config/playbooks/{{ playbook_name }}
shell: 'echo "Running {{ ansible_date_time.iso8601 }}: ansible-playbook -v -f {{ ansible_forks }} /opt/system-config/playbooks/{{ playbook_name }}" > /var/log/ansible/{{ playbook_name }}.log'
- name: Run specified playbook on bridge.o.o and redirect output
become: yes
shell: 'ansible-playbook -v -f {{ ansible_forks }} /opt/system-config/playbooks/{{ playbook_name }} >> /var/log/ansible/{{ playbook_name }}.log'
# Not using normal zuul job roles as bridge.openstack.org is not a
# test node with all the normal bits in place.
- name: Collect log output
synchronize:
dest: "{{ zuul.executor.log_root }}/{{ playbook_name }}.log"
mode: pull
src: "/var/log/ansible/{{ playbook_name }}.log"
verify_host: true
when: infra_prod_playbook_collect_log
- name: Return playbook log artifact to Zuul
when: infra_prod_playbook_collect_log
zuul_return:
data:
zuul:
artifacts:
- name: "Playbook Log"
url: "{{ playbook_name }}.log"
metadata:
type: text