Is there any method to rollback the changes in Ansible? Suppose my play book contains different plays like create 5 users,install 3 rpms, start the services. If I want to rollback a certain play how can I do. Is there any possibility that we can achieve this in anisble?
Rollback the changes in Ansible
ansibleansible-playbookansible-tower
Related Topic
- Conventions for start/stop commands in Ansible playbooks
- Linux – validate all the files before copying to all the remote servers
- Ansible – Proper method for handling roles, tasks, dependencies
- How to run all Ansible plays at first host (all of them), then at second host (all of them) and so on – hosts one by one
Best Answer
Ansible doesn't have any automatic way to keep track of things and undo on failure, but it does offer you some functionality to handle failures yourself.
This is implemented using blocks. With blocks you can define a set of tasks to be executed in the
rescue:
section. These can be anything you want, and with careful planning you could should be able to get it to undo everything.Though if the system is broken in some unusual way, your 'undo' tasks may also fail. If your system is in a VM where you could checkpoint/snapshot, or running on a filesystem (ie zfs) that supports checkpoints/snapshots you could certainly use those facilities to revert.