initial project commit
This commit is contained in:
88
tasks/long_running_tasks.yml
Normal file
88
tasks/long_running_tasks.yml
Normal file
@ -0,0 +1,88 @@
|
||||
- name: Increment counter
|
||||
ansible.builtin.set_fact:
|
||||
rcount: "{{ 1 if rcount is undefined else rcount | int + 1 }}"
|
||||
|
||||
|
||||
- name: Abort run and notify if retries exceed defined limits
|
||||
when: rcount|int >= fail_count
|
||||
block:
|
||||
- name: Show rcount and num_retries
|
||||
ansible.builtin.debug:
|
||||
msg: "Failed on retry {{ rcount }} with a max of {{ num_retries }}"
|
||||
|
||||
- name: Log failure to API
|
||||
ansible.builtin.uri:
|
||||
url : "{{ webhook }}"
|
||||
headers:
|
||||
Authorization : "Token {{ webhook_key }}"
|
||||
Content-type : 'application/json'
|
||||
method : POST
|
||||
status_code : 200
|
||||
validate_certs : false
|
||||
return_content : false
|
||||
body_format : json
|
||||
body:
|
||||
Cloudy: "With a chance of meatballs."
|
||||
|
||||
- name: End condition met. Aborting...
|
||||
ansible.builtin.fail:
|
||||
msg: "Bye"
|
||||
|
||||
|
||||
- name: We were successful
|
||||
when: rcount|int == num_retries
|
||||
block:
|
||||
- name: Show rcount and num_retries
|
||||
ansible.builtin.debug:
|
||||
msg: "Success on retry {{ rcount }} with a max of {{ num_retries }}"
|
||||
|
||||
- name: Log success to API
|
||||
ansible.builtin.uri:
|
||||
url : "{{ webhook }}"
|
||||
headers:
|
||||
Authorization : "Token {{ webhook_key }}"
|
||||
Content-type : 'application/json'
|
||||
method : POST
|
||||
status_code : 200
|
||||
validate_certs : false
|
||||
return_content : false
|
||||
body_format : json
|
||||
body:
|
||||
Somewhere: "Over the rainbow."
|
||||
|
||||
- name: End condition met. Exiting gracefully...
|
||||
ansible.builtin.meta: end_play
|
||||
|
||||
|
||||
- name: Run a series of test commands
|
||||
ansible.builtin.command : "{{ item }}"
|
||||
changed_when : false
|
||||
loop : "{{ check_commands }}"
|
||||
register : r_check_commands
|
||||
|
||||
- name: Current status
|
||||
ansible.builtin.debug:
|
||||
msg: "Currently on run {{ rcount }} of {{ num_retries }}."
|
||||
run_once: true
|
||||
|
||||
- name: Log status update to API
|
||||
ansible.builtin.uri:
|
||||
url : "{{ webhook }}"
|
||||
headers:
|
||||
Authorization : "Token {{ webhook_key }}"
|
||||
Content-type : 'application/json'
|
||||
method : POST
|
||||
status_code : 200
|
||||
validate_certs : false
|
||||
return_content : false
|
||||
body_format : json
|
||||
body:
|
||||
Itsa: "me! Mario! - Finished run {{ rcount }} of {{ num_retries }}."
|
||||
|
||||
- name: Pause for effect
|
||||
ansible.builtin.pause:
|
||||
seconds: "{{ pause_time }}"
|
||||
|
||||
- name: Include ourself for recursion
|
||||
ansible.builtin.include_tasks: tasks/long_running_tasks.yml
|
||||
when: rcount|int <= num_retries
|
Reference in New Issue
Block a user