ansible_image_validation/upload-logs.yaml (32 lines of code) (raw):
###
# This Playbook uploads the logs generate from validations to a configured storage
# account.
# Input: {{ item }} - name of the host machine.
# Assumption: All the related logs of a machine are present inside the folder
# ./validation_results/<hostname>
###
---
- set_fact:
hostname: "{{ item }}"
current_time: "{{ ansible_date_time.iso8601 }}"
current_epoch: "{{ ansible_date_time.epoch }}"
resource_group: "{{ lookup('env', 'RESOURCE_GROUP') }}"
storage_account_name: "{{ lookup('env', 'ACCOUNT_NAME') }}"
container_name: "{{ lookup('env', 'CONTAINER_NAME') }}"
sa_resource_group: "{{ lookup('env', 'STORAGE_ACCOUNT_RESOURCE_GROUP') }}"
- name: Recursively find all the log files
find:
paths: "./validation_results/{{ hostname }}"
recurse: yes
register: logfiles
- name: Upload yum repolist errors file to storage account
azure_rm_storageblob:
resource_group: "{{ sa_resource_group }}"
storage_account_name: "{{ storage_account_name }}"
container: "{{ container_name }}"
blob: "{{ hostname }}{{ file_name.path.split('tmp')[1] }}"
src: "{{ file_name.path }}"
public_access: container
tags:
validation_time: "{{ current_time }}"
force: yes
loop: "{{ logfiles.files }}"
loop_control:
loop_var: file_name
- name: Create table entry
shell: |
./set_validation_results.sh {{hostname}} {{ current_epoch }} {{current_time}}
az storage blob upload-batch --account-name {{storage_account_name}} -s ./report -d '$web'