On 10. okt. 2017 15:35, 'Colm Mcnabola' via Ansible Project wrote:
Hi,
I want to insert an failure on my playbook where if the hostgroup isnt in
the inventory, it fails.
Inventory path is
inventory/"environment_name"/inventory
and looks similiar to this
[NodeGroup1]
node1@node
[NodeGroup2]
node2@node.
node3@node.
When running a playbook using --extra vars and declaring the name of the
host group like so
ansible-playbook deploy_rpm.yml -i environment/testEnv
--extra-vars='{"hostgroup": "NodeGroup1", "var1": "test-rpm", "version":
"0.1"}'
It passes as NodeGroup1 is in the inventory
When the hostgroup is named wrong, 'NodeGroup999' for example.
ansible-playbook deploy_rpm.yml -i environment/testEnv
--extra-vars='{"hostgroup": "NodeGroup999", "var1": "test-rpm", "version":
"0.1"}'
It just silently fails but doesnt return an error message or stop.
I have added this in as a task but it doesnt seem to like it.
- name: "Grep inventory to check hostgroup exists."
fail: msg:="Hostgroup '{{ hostgroup }}' is not defined"
when:
- inventory_hostname in groups['hostgroup']|default([])
How can i improve this task to stop the playbook and return a failure? Is
it best to put the path of the inventory files inside the 'when' part of
the task?
I think you only option is to add the following play on top of your
playbook.
- hosts: localhost
gather_facts: no
become: no
tasks:
- fail:
msg: Hostgroup '{{ hostgroup }}' is not defined
when: hostgroup not in groups
--
Kai Stian Olstad
--
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/642d3c37-74a9-a068-7d3a-0e89a96c2f6b%40olstad.com.
For more options, visit https://groups.google.com/d/optout.