6f9c151e79
When testing our system-conf configuration we don't actually add zuul to the docker group. This means the zuul user cannot access the docker socket. This then breaks docker container log collection. Address this by becoming root when collecting logs. Change-Id: Ic0232f7ef458cdd07fb0853f97f2dc22ce137c71
82 lines
2.3 KiB
YAML
82 lines
2.3 KiB
YAML
- hosts: localhost
|
|
tasks:
|
|
- name: Make log directories for testing hosts
|
|
file:
|
|
path: "{{ zuul.executor.log_root }}/{{ item }}/logs"
|
|
state: directory
|
|
recurse: true
|
|
loop: "{{ query('inventory_hostnames', 'all') }}"
|
|
|
|
- name: Ensure bridge ARA log directories exist
|
|
file:
|
|
path: "{{ item }}"
|
|
state: directory
|
|
with_items:
|
|
- "{{ zuul.executor.log_root }}/bridge.openstack.org/ara-report"
|
|
|
|
- hosts: all
|
|
tasks:
|
|
- include_role:
|
|
name: collect-container-logs
|
|
# The zuul user isn't part of the docker group on our fake
|
|
# production systems. Work around this by operating as root
|
|
# when collecting logs. This collects podman containers
|
|
# running as root; we may need to think about some flags for
|
|
# this role for collecting logs from containers under other
|
|
# users.
|
|
apply:
|
|
become: yes
|
|
vars:
|
|
container_command: "{{ item }}"
|
|
loop:
|
|
- docker
|
|
- podman
|
|
|
|
- include_role:
|
|
name: stage-output
|
|
|
|
- hosts: bridge.openstack.org
|
|
tasks:
|
|
- name: Set log directory
|
|
set_fact:
|
|
log_dir: "{{ zuul.executor.log_root }}/{{ inventory_hostname }}"
|
|
|
|
# Because during the test we run ansible as root, we need
|
|
# to allow ourselves permissions to copy the results
|
|
- name: Open ARA results permissions
|
|
file:
|
|
dest: /var/cache/ansible
|
|
mode: u=rwX,g=rX,o=rX
|
|
recurse: yes
|
|
become: yes
|
|
|
|
# Note we convert to a HTML report with the ara-report role
|
|
# below
|
|
- name: Collect testing ARA results
|
|
synchronize:
|
|
dest: "{{ log_dir }}/ara-report/ansible.sqlite"
|
|
mode: pull
|
|
src: "/var/cache/ansible/ara.sqlite"
|
|
verify_host: true
|
|
ignore_errors: true
|
|
|
|
- name: Collect ansible configuration
|
|
synchronize:
|
|
dest: "{{ log_dir }}/etc"
|
|
mode: pull
|
|
src: "/etc/ansible"
|
|
verify_host: true
|
|
rsync_opts:
|
|
- "--exclude=__pycache__"
|
|
ignore_errors: true
|
|
|
|
- hosts: localhost
|
|
tasks:
|
|
- name: Create bridge.o.o ARA report
|
|
include_role:
|
|
name: ara-report
|
|
vars:
|
|
ara_database_path: "{{ zuul.executor.log_root }}/bridge.openstack.org/ara-report/ansible.sqlite"
|
|
ara_report_path: "bridge.openstack.org/ara-report/"
|
|
ara_report_type: html
|