Hi Gordon, with which version of Ansible did you see this? There were quite
a few fixes in 2.1+ for this, so if you're using 2.0.x you may want to
consider trying out a more recent version.

James Cammarata

Ansible Lead/Sr. Principal Software Engineer
Ansible by Red Hat
twitter: @thejimic, github: jimi-c

On Thu, Aug 11, 2016 at 10:55 AM, Gordon Towne <[email protected]>
wrote:

> I have a playbook with multiple plays, where each play is executed on a
> different group of hosts. The behavior that I'm looking for is that if any
> host in any group is unreachable, the whole playbook fails immediately.
>
> Below is a small repro of the behavior I'm seeing. Using any_errors_fatal,
> I'm able to prevent any steps in the first play from running if any of the
> hosts in the group are inaccessible. However, since all of the hosts in the
> second play are accessible, that play still runs.
>
> Is there a way that I can get the playbook run to fail out as soon as the
> first play fails?
>
> executing with
>
> ansible-playbook playbook-test-unreachable-fatal.yml -i inventory
>
> inventory:
> [just_good_host]
> localhost ansible_connection=local
>
> [good_and_bad_hosts]
> localhost ansible_connection=local
> not.a.real.host.com
>
>
> playbook-test-unreachable-fatal.yml:
> ---
> - name: Try to write a timestamp to a file on all hosts
>   gather_facts: true
>   hosts: good_and_bad_hosts
>   any_errors_fatal: true
>   tasks:
>     - name: >
>         Add a timestamp to a file, when run with any_errors_fatal=true,
>         this will never get run on any host, as I expect
>       lineinfile:
>         create: yes
>         dest: "{{ ansible_env.HOME}}/test_file_1.txt"
>         state: present
>         line: "{{ ansible_date_time.iso8601 }}"
>
> - name: Try to write a timestamp to a file on just the good host
>   gather_facts: true
>   hosts: just_good_host
>   any_errors_fatal: true
>   tasks:
>     - name: >
>         Add a timestamp to a second file, this succeeds on the accessible
> host,
>         despite a fatal error having occurred in a previous play in this
>         playbook
>       lineinfile:
>         create: yes
>         dest: "{{ ansible_env.HOME}}/test_file_2.txt"
>         state: present
>         line: "{{ ansible_date_time.iso8601 }}"
>
>
>
> --
> You received this message because you are subscribed to the Google Groups
> "Ansible Development" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> For more options, visit https://groups.google.com/d/optout.
>

-- 
You received this message because you are subscribed to the Google Groups 
"Ansible Development" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to