ansible_image_validation/validation-playbooks/per-region-validation.yaml (61 lines of code) (raw):
###
# This Playbook contains validations which run for every region.
# Input: {{ item }} - is the combination of region name and ip in the format
# <region_name>:<region_ip>
# Example: westus:10.0.0.2
# The region gets configured at the start of the playbook and rest of the
# playbook runs all the validations which are dependent on the region.
# For example - yum calls
###
---
- name: Set image properties
set_fact:
region_name: "{{ item.split(':')[0] }}"
region_ip: "{{ item.split(':')[1] }}"
out_folder: /tmp/out
err_folder: /tmp/err
yum_out_file: yumrepolist_out.log
yum_err_file: yumrepolist_err.log
- name: Set /etc/hosts for a region
copy:
dest: "/etc/hosts"
content: |
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
{{ region_ip }} rhui-1.microsoft.com rhui-2.microsoft.com rhui-3.microsoft.com rhui4-1.microsoft.com
- name: Clean logs from pevious run
shell: |
rm -rf {{out_folder}}/{{ region_name}}
rm -rf {{err_folder}}/{{ region_name}}
- name: Create yum err directory
file:
path: "{{ out_folder }}/{{ region_name}}"
state: directory
- name: Create yum err directory
file:
path: "{{ err_folder }}/{{ region_name}}"
state: directory
- name: Create err and out files
file:
path: "{{ file_name }}"
state: touch
with_items:
- "{{err_folder}}/{{region_name}}/{{ yum_err_file }}"
- "{{out_folder}}/{{region_name}}/{{ yum_out_file }}"
loop_control:
loop_var: file_name
- name: Run Yum Repolist
shell: |
yum update -q -y --disablerepo='*' --enablerepo='*microsoft-azure*'
yum clean all
yum repolist -v
register: yum_output
ignore_errors: yes
- name: Write to error file if repolist failed
copy:
dest: "{{err_folder}}/{{region_name}}/{{ yum_err_file }}"
content: "{{yum_output.stderr}} {{yum_output.stdout}}"
when: yum_output.rc != 0
- name: Write to error msg if repolist failed
lineinfile:
path: "{{err_folder}}/err_msgs.log"
line: "Yum repolist failed for {{region_name}}"
create: yes
state: present
when: yum_output.rc != 0
- name: Write to output file if repolist succeded
copy:
dest: "{{out_folder}}/{{region_name}}/{{ yum_out_file }}"
content: "{{yum_output.stderr}} {{yum_output.stdout}}"
when: yum_output.rc == 0