Hi Amir,
Have you taken a look at
http://docs.ansible.com/ansible/playbooks_error_handling.html#aborting-the-play?
I haven't used it myself, but i think the any_errors_fatal play option may
be what you need?

matt


On Fri, Sep 2, 2016 at 5:21 PM, Amir Samary <amirsam...@gmail.com> wrote:

> Hi everyone!
>
> I have a bunch of servers that need will be need frequent patching. I am
> planning on using Ansible to coordinate the patching process. The keep
> point here is that it must be an "all or nothing" patching. Either all
> servers are patched or none.
>
> The tasks I was considering for my playbook would be something like: 1 -
> Go to all servers and take an lvm snapshot 2 - IIF task 1 works on all
> servers, apply the changes 3 - If one of the hosts fails for any reason,
> roll back the snapshot on ALL NODES.
>
> The problem is that I am new to Ansible and I can't express this on a
> playbook. I have written this simple testing playbook:
>
> ---
> - hosts: all
>   strategy: linear
>
>   tasks:
>   - block:
>       - debug: msg='Testing on {{ inventory_hostname }}...'
>       - command: /home/amirsamary/activity.sh
>         changed_when: false
>     rescue:
>       - debug: msg='Rollback of {{ inventory_hostname }}...'
>   - debug: msg='I continued running tasks on {{ inventory_hostname }}...'
>
> I have two hosts on my inventory. On the first node, activity.sh returns
> true and on the second node, activity.sh returns false. So, node2 will
> always fail. The problem is that the rescue tasks will only run for the
> failed host and not for all of them (as one would expect anyway) and the
> playbook keeps running the other tasks.
>
> I have heard a lot about how good Ansible was to orchestrate complex tasks
> on thousands of servers. But I can't seem to find a way of safely implement
> an "all or nothing strategy" with it. What am I missing?
>
> --
> You received this message because you are subscribed to the Google Groups
> "Ansible Project" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to ansible-project+unsubscr...@googlegroups.com.
> To post to this group, send email to ansible-project@googlegroups.com.
> To view this discussion on the web visit https://groups.google.com/d/
> msgid/ansible-project/91ea2246-79c2-4dd8-beb3-460cdcae267c%40googlegroups.
> com
> <https://groups.google.com/d/msgid/ansible-project/91ea2246-79c2-4dd8-beb3-460cdcae267c%40googlegroups.com?utm_medium=email&utm_source=footer>
> .
> For more options, visit https://groups.google.com/d/optout.
>

-- 
You received this message because you are subscribed to the Google Groups 
"Ansible Project" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to ansible-project+unsubscr...@googlegroups.com.
To post to this group, send email to ansible-project@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/ansible-project/CAMfrScdy00mqZfdZc8Tuvndw6GTwiZXfKwYde5F5ZyoZH_svbg%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to