variablize the playbooks a bit

This commit is contained in:
Chris Hammer
2022-02-23 19:03:06 -05:00
parent 071f5e5891
commit aee286f450
6 changed files with 96 additions and 24 deletions

View File

@ -26,11 +26,15 @@
become: no become: no
vars_files:
- vars/defaults.yml
tasks: tasks:
- name: "Test #1 - Copy file to machine" - name: "Test #1 - Copy file to machine"
copy: copy:
src : files/hello-ansible.txt src : files/hello-ansible.txt
dest : /tmp/hello-ansible.txt dest : "{{ check_file }}"
... ...

View File

@ -5,6 +5,10 @@
become: no become: no
vars_files:
- vars/defaults.yml
vars: vars:
# These vars are used to purposefully skip a node # These vars are used to purposefully skip a node
skip_host : "{{ tower_skip_host | default('no') }}" skip_host : "{{ tower_skip_host | default('no') }}"
@ -16,7 +20,7 @@
- name: "Test #1a - Copy file to machine - skipping {{ host_to_skip }}" - name: "Test #1a - Copy file to machine - skipping {{ host_to_skip }}"
copy: copy:
src : files/hello-ansible.txt src : files/hello-ansible.txt
dest : /tmp/hello-ansible.txt dest : "{{ check_file }}"
when: inventory_hostname != host_to_skip when: inventory_hostname != host_to_skip
when: when:
- skip_host | bool - skip_host | bool
@ -25,7 +29,7 @@
- name: "Test #1 - Copy file to machine" - name: "Test #1 - Copy file to machine"
copy: copy:
src : files/hello-ansible.txt src : files/hello-ansible.txt
dest : /tmp/hello-ansible.txt dest : "{{ check_file }}"
when: when:
- not skip_host | bool - not skip_host | bool

View File

@ -5,12 +5,16 @@
become: no become: no
vars_files:
- vars/defaults.yml
tasks: tasks:
- name: Run file test - name: Run file test
block: block:
- name: "Test #1: register file contents" - name: "Test #1: register file contents"
command : command :
cmd : cat /tmp/hello-ansible.txt cmd : "cat {{ check_file }}"
changed_when : no changed_when : no
register : r_check_file register : r_check_file

View File

@ -26,10 +26,14 @@
become: no become: no
vars_files:
- vars/defaults.yml
tasks: tasks:
- name: "Remove file from {{ inventory_hostname }}" - name: "Remove file from {{ inventory_hostname }}"
file: file:
path : /tmp/hello-ansible.txt path : "{{ check_file }}"
state : absent state : absent

View File

@ -6,8 +6,7 @@
vars: vars:
provision_host: "{{ tower_webhook_payload.commits.modified[0] \ provision_host: "{{ default(tower_provision_host) \
| default(tower_provision_host) \
| default('localhost') }}" | default('localhost') }}"
@ -28,12 +27,19 @@
become: no become: no
vars_files:
- vars/defaults.yml
tasks: tasks:
- name : Run file test - name : Run file test
###############
# BLOCK TASKS #
###############
block : block :
- name : "Test #1: register file contents" - name : "Test #1: register file contents"
command : command :
cmd : cat /tmp/hello-ansible.txt cmd : "cat {{ check_file }}"
changed_when : no changed_when : no
register : r_check_file register : r_check_file
@ -41,7 +47,7 @@
- name: "Test #2: Launch the `file_removal_test` job template" - name: "Test #2: Launch the `file_removal_test` job template"
no_log : yes no_log : yes
uri : uri :
url : "https://tower2.thezengarden.net/api/v2/job_templates/23/launch/" url : "{{ tower_file_remove_url }}"
force_basic_auth : yes force_basic_auth : yes
user : admin user : admin
password : redhat password : redhat
@ -56,29 +62,38 @@
- name: Return job data to originating source - name: Return job data to originating source
no_log : yes no_log : yes
uri: uri:
url : "https://git.thezengarden.net/api/v4/projects/119/repository/commits" url : "{{ gitlab_commit_url }}"
headers : headers :
PRIVATE-TOKEN : "glpat-DnEVHEjjS_q2_GhyngQV" PRIVATE-TOKEN : "{{ gitlab_pat }}"
method : POST method : POST
status_code : 201 status_code : 201
body_format : json body_format : json
return_content : no return_content : no
validate_certs : no validate_certs : no
body: body:
id : 119 id : "{{ gitlab_proj_id }}"
branch : main branch : "{{ git_commit_branch }}"
commit_message : "{{ inventory_hostname }} - SUCCESS: {{ r_check_file.stdout }}" commit_message : "{{ inventory_hostname }} - SUCCESS: {{ r_check_file.stdout }}"
author_name : "Ansible Deploy - Test" author_name : "{{ git_commit_author }}"
author_email : naye.jokopuwo@thezengarden.net author_email : "{{ git_commit_email }}"
actions: actions:
- action : create - action : create
file_path : "successful_jobs/{{ inventory_hostname }}_{{ ansible_date_time.iso8601 }}.txt" file_path : "successful_jobs/{{ inventory_hostname }}_\
{{ ansible_date_time.iso8601 }}.txt"
content : | content : |
tower_provision_host : {{ inventory_hostname }} tower_provision_host : {{ inventory_hostname }}
tower_provision_rc : {{ r_check_file.rc }} tower_provision_rc : {{ r_check_file.rc }}
tower_provision_stdout : {{ r_check_file.stdout }} tower_provision_stdout : {{ r_check_file.stdout }}
###################
# END BLOCK TASKS #
###################
################
# RESCUE TASKS #
################
rescue: rescue:
- name : Exception caught - name : Exception caught
debug : debug :
@ -88,7 +103,7 @@
- name: "Create missing file on {{ inventory_hostname }}" - name: "Create missing file on {{ inventory_hostname }}"
no_log : yes no_log : yes
uri: uri:
url : "https://tower2.thezengarden.net/api/v2/job_templates/27/launch/" url : "{{ tower_file_creation_url }}"
force_basic_auth : yes force_basic_auth : yes
user : admin user : admin
password : redhat password : redhat
@ -103,23 +118,24 @@
- name: Return job data to originating source - name: Return job data to originating source
no_log : yes no_log : yes
uri: uri:
url : "https://git.thezengarden.net/api/v4/projects/119/repository/commits" url : "{{ gitlab_commit_url }}"
headers : headers :
PRIVATE-TOKEN : "glpat-DnEVHEjjS_q2_GhyngQV" PRIVATE-TOKEN : "{{ gitlab_pat }}"
method : POST method : POST
status_code : 201 status_code : 201
body_format : json body_format : json
return_content : no return_content : no
validate_certs : no validate_certs : no
body: body:
id : 119 id : "{{ gitlab_proj_id }}"
branch : main branch : "{{ git_commit_branch }}"
commit_message : "{{ inventory_hostname }} - FAILED: {{ r_check_file.msg }}" commit_message : "{{ inventory_hostname }} - FAILED: {{ r_check_file.msg }}"
author_name : "Ansible Deploy - Test" author_name : "{{ git_commit_author }}"
author_email : naye.jokopuwo@thezengarden.net author_email : "{{ git_commit_email }}"
actions: actions:
- action : create - action : create
file_path : "failed_jobs/{{ inventory_hostname }}_{{ ansible_date_time.iso8601 }}.txt" file_path : "failed_jobs/{{ inventory_hostname }}_\
{{ ansible_date_time.iso8601 }}.txt"
content : | content : |
tower_provision_host : {{ inventory_hostname }} tower_provision_host : {{ inventory_hostname }}
tower_provision_rc : {{ r_check_file.rc }} tower_provision_rc : {{ r_check_file.rc }}
@ -128,6 +144,15 @@
tower_provision_msg : {{ r_check_file.msg }} tower_provision_msg : {{ r_check_file.msg }}
####################
# END RESCUE TASKS #
####################
################
# ALWAYS TASKS #
################
always: always:
- name : Job complete - name : Job complete
debug : debug :
@ -136,4 +161,9 @@
- "tower_provision_failed : {{ r_check_file.failed }}" - "tower_provision_failed : {{ r_check_file.failed }}"
####################
# END ALWAYS TASKS #
####################
... ...

26
vars/defaults.yml Normal file
View File

@ -0,0 +1,26 @@
---
check_file: /tmp/hello-ansible.txt
tower_url : 'https://tower2.thezengarden.net'
tower_file_removal_template : 23
tower_file_creation_template : 27
tower_file_remove_url : "{{ tower_url }}/api/v2/job_template/ \
{{ tower_file_removal_template }}/launch/"
tower_file_creation_url : "{{ tower_url }}/api/v2/job_template/ \
{{ tower_file_creation_template }}/launch/"
gitlab_url : 'https://git.thezengarden.net'
gitlab_proj_id : 119
gitlab_pat : "glpat-DnEVHEjjS_q2_GhyngQV"
gitlab_commit_url : "{{ gitlab_url }}/api/v4/projects/{{ gitlab_proj_id }} \
/repository/commits"
git_commit_author : 'Ansible Deploy - Test'
git_commit_email : 'naye.jokopuwo@thezengarden.net'
git_commit_branch : main
...