- hosts: localhost tasks: - name: Add bridge.o.o to inventory for playbook add_host: name: bridge.openstack.org ansible_python_interpreter: python3 ansible_user: zuul # Without setting ansible_host directly, mirror-workspace-git-repos # gets sad because if delegate_to localhost and with add_host that # ends up with ansible_host being localhost. ansible_host: bridge.openstack.org ansible_port: 22 - hosts: bridge.openstack.org tasks: - name: Run the production playbook and capture logs block: - name: Log a playbook start header become: yes shell: 'echo "Running {{ ansible_date_time.iso8601 }}: ansible-playbook -v -f {{ infra_prod_ansible_forks }} /home/zuul/src/opendev.org/opendev/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 {{ infra_prod_ansible_forks }} /home/zuul/src/opendev.org/opendev/system-config/playbooks/{{ playbook_name }} >> /var/log/ansible/{{ playbook_name }}.log' always: # 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 # If we aren't publishing logs through zuul then keep a set on # bridge directly. - name: Rename playbook log on bridge when: not infra_prod_playbook_collect_log become: yes copy: remote_src: yes src: "/var/log/ansible/{{ playbook_name }}.log" dest: "/var/log/ansible/{{ playbook_name }}.log.{{ ansible_date_time.iso8601 }}" - name: Cleanup old playbook logs on bridge when: not infra_prod_playbook_collect_log become: yes shell: | find /var/log/ansible -name '{{ playbook_name }}.log.*' -type f -mtime 30 -delete