91 lines
2.8 KiB
YAML
91 lines
2.8 KiB
YAML
---
|
|
- name: Create inventory based on passed extra_vars
|
|
hosts: localhost
|
|
gather_facts: no
|
|
become: no
|
|
|
|
|
|
vars:
|
|
provision_host: "{{ tower_provision_host | default('localhost') }}"
|
|
|
|
|
|
tasks:
|
|
- name : "Create in-memory inventory for {{ provision_host }}"
|
|
add_host :
|
|
name : "{{ provision_host }}"
|
|
groups :
|
|
- remdiation
|
|
|
|
|
|
# =========================================================================== #
|
|
|
|
|
|
- name: Verify file existence and handle errors if needed
|
|
hosts: remdiation
|
|
gather_facts: yes
|
|
become: no
|
|
|
|
|
|
tasks:
|
|
- name : Run file test
|
|
block :
|
|
- name : "Test #1: register file contents"
|
|
command :
|
|
cmd : cat /tmp/hello-ansible.txt
|
|
changed_when : no
|
|
register : r_check_file
|
|
|
|
|
|
- name : "Test #2: do something else"
|
|
debug :
|
|
msg : Something, something, and something!
|
|
|
|
|
|
rescue:
|
|
- name : Exception caught
|
|
debug :
|
|
msg :
|
|
- "tower_provision_host : {{ inventory_hostname }}"
|
|
- "tower_provision_rc : {{ r_check_file.rc }}"
|
|
- "tower_provision_stdout : {{ r_check_file.stdout }}"
|
|
- "tower_provision_stderr : {{ r_check_file.stderr }}"
|
|
- "tower_provision_msg : {{ r_check_file.msg }}"
|
|
|
|
|
|
- name: Execute recovery API callback
|
|
uri:
|
|
url : "https://git.thezengarden.net/api/v4/projects/119/repository/commits"
|
|
headers :
|
|
PRIVATE-TOKEN : "glpat-yb8XPJ8EJ7K5Cao9S8JE"
|
|
method : POST
|
|
status_code : 201
|
|
body_format : json
|
|
return_content : no
|
|
validate_certs : no
|
|
body:
|
|
id : 119
|
|
branch : main
|
|
commit_message : "{{ inventory_hostname }} - FAILED: {{ r_check_file.msg }}"
|
|
author_name : Chris Hammer
|
|
author_email : chris.hammer@redhat.com
|
|
actions:
|
|
- action : create
|
|
file_path : "failed_jobs/{{ inventory_hostname }}_{{ ansible_date_time.iso8601 }}.txt"
|
|
content : |
|
|
tower_provision_host : {{ inventory_hostname }}
|
|
tower_provision_rc : {{ r_check_file.rc }}
|
|
tower_provision_stdout : {{ r_check_file.stdout }}
|
|
tower_provision_stderr : {{ r_check_file.stderr }}
|
|
tower_provision_msg : {{ r_check_file.msg }}
|
|
|
|
|
|
always:
|
|
- name : Job complete
|
|
debug :
|
|
msg :
|
|
- "tower_provision_host : {{ inventory_hostname }}"
|
|
- "tower_provision_failed : {{ r_check_file.failed }}"
|
|
|
|
|
|
...
|