From aee286f4508a7daf2e9b7c8966d0f89eeb6724f7 Mon Sep 17 00:00:00 2001 From: Chris Hammer Date: Wed, 23 Feb 2022 19:03:06 -0500 Subject: [PATCH] variablize the playbooks a bit --- file-creation-single.yml | 6 +++- file-creation-test.yml | 8 +++-- file-existence-test.yml | 6 +++- file-removal-test.yml | 6 +++- inmem-test.yml | 68 +++++++++++++++++++++++++++++----------- vars/defaults.yml | 26 +++++++++++++++ 6 files changed, 96 insertions(+), 24 deletions(-) create mode 100644 vars/defaults.yml diff --git a/file-creation-single.yml b/file-creation-single.yml index 29d08f2..ed62554 100644 --- a/file-creation-single.yml +++ b/file-creation-single.yml @@ -26,11 +26,15 @@ become: no + vars_files: + - vars/defaults.yml + + tasks: - name: "Test #1 - Copy file to machine" copy: src : files/hello-ansible.txt - dest : /tmp/hello-ansible.txt + dest : "{{ check_file }}" ... diff --git a/file-creation-test.yml b/file-creation-test.yml index 557f7f9..fcd527c 100644 --- a/file-creation-test.yml +++ b/file-creation-test.yml @@ -5,6 +5,10 @@ become: no + vars_files: + - vars/defaults.yml + + vars: # These vars are used to purposefully skip a node skip_host : "{{ tower_skip_host | default('no') }}" @@ -16,7 +20,7 @@ - name: "Test #1a - Copy file to machine - skipping {{ host_to_skip }}" copy: src : files/hello-ansible.txt - dest : /tmp/hello-ansible.txt + dest : "{{ check_file }}" when: inventory_hostname != host_to_skip when: - skip_host | bool @@ -25,7 +29,7 @@ - name: "Test #1 - Copy file to machine" copy: src : files/hello-ansible.txt - dest : /tmp/hello-ansible.txt + dest : "{{ check_file }}" when: - not skip_host | bool diff --git a/file-existence-test.yml b/file-existence-test.yml index 8b8ed0c..f35c66f 100644 --- a/file-existence-test.yml +++ b/file-existence-test.yml @@ -5,12 +5,16 @@ become: no + vars_files: + - vars/defaults.yml + + tasks: - name: Run file test block: - name: "Test #1: register file contents" command : - cmd : cat /tmp/hello-ansible.txt + cmd : "cat {{ check_file }}" changed_when : no register : r_check_file diff --git a/file-removal-test.yml b/file-removal-test.yml index c28b819..900429e 100644 --- a/file-removal-test.yml +++ b/file-removal-test.yml @@ -26,10 +26,14 @@ become: no + vars_files: + - vars/defaults.yml + + tasks: - name: "Remove file from {{ inventory_hostname }}" file: - path : /tmp/hello-ansible.txt + path : "{{ check_file }}" state : absent diff --git a/inmem-test.yml b/inmem-test.yml index 5eabacb..cf327f6 100644 --- a/inmem-test.yml +++ b/inmem-test.yml @@ -6,8 +6,7 @@ vars: - provision_host: "{{ tower_webhook_payload.commits.modified[0] \ - | default(tower_provision_host) \ + provision_host: "{{ default(tower_provision_host) \ | default('localhost') }}" @@ -28,12 +27,19 @@ become: no + vars_files: + - vars/defaults.yml + + tasks: - name : Run file test + ############### + # BLOCK TASKS # + ############### block : - name : "Test #1: register file contents" command : - cmd : cat /tmp/hello-ansible.txt + cmd : "cat {{ check_file }}" changed_when : no register : r_check_file @@ -41,7 +47,7 @@ - name: "Test #2: Launch the `file_removal_test` job template" no_log : yes uri : - url : "https://tower2.thezengarden.net/api/v2/job_templates/23/launch/" + url : "{{ tower_file_remove_url }}" force_basic_auth : yes user : admin password : redhat @@ -56,29 +62,38 @@ - name: Return job data to originating source no_log : yes uri: - url : "https://git.thezengarden.net/api/v4/projects/119/repository/commits" + url : "{{ gitlab_commit_url }}" headers : - PRIVATE-TOKEN : "glpat-DnEVHEjjS_q2_GhyngQV" + PRIVATE-TOKEN : "{{ gitlab_pat }}" method : POST status_code : 201 body_format : json return_content : no validate_certs : no body: - id : 119 - branch : main + id : "{{ gitlab_proj_id }}" + branch : "{{ git_commit_branch }}" commit_message : "{{ inventory_hostname }} - SUCCESS: {{ r_check_file.stdout }}" - author_name : "Ansible Deploy - Test" - author_email : naye.jokopuwo@thezengarden.net + author_name : "{{ git_commit_author }}" + author_email : "{{ git_commit_email }}" actions: - 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 : | tower_provision_host : {{ inventory_hostname }} tower_provision_rc : {{ r_check_file.rc }} tower_provision_stdout : {{ r_check_file.stdout }} + ################### + # END BLOCK TASKS # + ################### + + + ################ + # RESCUE TASKS # + ################ rescue: - name : Exception caught debug : @@ -88,7 +103,7 @@ - name: "Create missing file on {{ inventory_hostname }}" no_log : yes uri: - url : "https://tower2.thezengarden.net/api/v2/job_templates/27/launch/" + url : "{{ tower_file_creation_url }}" force_basic_auth : yes user : admin password : redhat @@ -103,23 +118,24 @@ - name: Return job data to originating source no_log : yes uri: - url : "https://git.thezengarden.net/api/v4/projects/119/repository/commits" + url : "{{ gitlab_commit_url }}" headers : - PRIVATE-TOKEN : "glpat-DnEVHEjjS_q2_GhyngQV" + PRIVATE-TOKEN : "{{ gitlab_pat }}" method : POST status_code : 201 body_format : json return_content : no validate_certs : no body: - id : 119 - branch : main + id : "{{ gitlab_proj_id }}" + branch : "{{ git_commit_branch }}" commit_message : "{{ inventory_hostname }} - FAILED: {{ r_check_file.msg }}" - author_name : "Ansible Deploy - Test" - author_email : naye.jokopuwo@thezengarden.net + author_name : "{{ git_commit_author }}" + author_email : "{{ git_commit_email }}" actions: - 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 : | tower_provision_host : {{ inventory_hostname }} tower_provision_rc : {{ r_check_file.rc }} @@ -128,6 +144,15 @@ tower_provision_msg : {{ r_check_file.msg }} + #################### + # END RESCUE TASKS # + #################### + + + ################ + # ALWAYS TASKS # + ################ + always: - name : Job complete debug : @@ -136,4 +161,9 @@ - "tower_provision_failed : {{ r_check_file.failed }}" + #################### + # END ALWAYS TASKS # + #################### + + ... diff --git a/vars/defaults.yml b/vars/defaults.yml new file mode 100644 index 0000000..9511ba9 --- /dev/null +++ b/vars/defaults.yml @@ -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 + + +...