python - Ansible - How maintain a dynamic list of data -


i'm building system deploy entire environment in aws. however, in case of failure, want tear down that's been built. since planning deploy multiple, different environments, figured better keep running list of i've made in aws point.

so want way store simple array of names of each component, appending names each part spun in turn, @ error stage, can terminate everything, proving quite head-scratching me.

as stands, code looks this:

top-level-playbook

- hosts: localhost   connection: local   roles:     - { role: make_ec2, when: "ansible_failed_task undefined" }          --fails here--     - { role: make_ec2, when: "ansible_failed_task undefined" }     - { role: make_ec2, when: "ansible_failed_task undefined" }   post_tasks:     - name: "do teardown"       *iterate through list , tear down environment*       when: ansible_failed_task defined 

make_ec2 (this in block/rescue)

--- - name: "spin ec2      --all variables need spin ec2"   register: ec2  - name: "append list" - set_fact:      ec2_list: "{{ ec2_list | default | -append ec2.string.value- }}" 

in addition, if there better ways tear down, please let me know well!

so want way store simple array of names of each component, appending names each part spun in turn....

you can create temp file in pre_task , write data it, if failed, know delete. alternatively can replace file db, mechanics still same.

if there better ways tear down, please let me know well!

i wouldn't reinvent wheel , use cloudformation template aws resources. can use libraries troposphere manage json structure. in other words if failed, cloudformation revert back, , cleanup resources.


Comments