Fail gracefully if no hosts match

16 views
Skip to first unread message

Gonzalo Servat

unread,
Oct 28, 2018, 9:50:06 PM10/28/18
to ansible...@googlegroups.com
Hi All

I've got an Ansible playbook that I'm running against a custom inventory group I've created. The issue is that this group may or may not be empty. I only want Ansible to exit non-zero if it ran against a host (or hosts) and any of them failed (standard Ansible behavior), but I don't want Ansible to exit non-zero if the group is empty (or if the group doesn't exist).

The reason why I want it to exit 0 if no hosts match is that I'm running it from a CI system and exiting non-zero means the job failed, which is not true in the case of no hosts matching (it just means it had nothing to do).

Any suggestions?

- Gonz 

Vladimir Botka

unread,
Oct 29, 2018, 1:52:33 AM10/29/18
to Ansible Project

Running the playbook below with an empty group results in 0 exit code. What am I missing?

    - hosts: test99
      pre_tasks:
        - debug: var=play_hosts
          delegate_to: localhost

HTH,

-vlado 

Gonzalo Servat

unread,
Oct 29, 2018, 8:18:15 AM10/29/18
to ansible...@googlegroups.com
Ah, I should have mentioned that in my playbook I have a hosts line like:

hosts: group1,group2,group3

... and then I limit by this custom group I mentioned (which may be empty or not exist at all). That's when the playbook fails... when the --limit doesn't match any host at all.

You did, however, give me an idea. By making my hosts like something like:

hosts: group1,group2,group3,&{{ required | default('all') }}

... I can provide the custom group as an extra variable and it works as I need it to. Thanks for replying!

- Gonz

--
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-proje...@googlegroups.com.
To post to this group, send email to ansible...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/ansible-project/387275ce-ab1d-447d-89b2-48b8803be77f%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
Reply all
Reply to author
Forward
0 new messages