Ansible scans all files under host_vars when executing a playbook

Yametazamwa mara 23
Ruka hadi kwenye ujumbe wa kwanza ambao haujasomwa

Carl Wainwright

hayajasomwa,
2 Feb 2018, 13:06:2202/02/2018
kwa Ansible Project
Greetings,

I trying to understand if my setup is correct or not given the subject matter.

When I run a playbook on a particular host and a host_vars file for another host has a syntactical error the playbook execution fails because of the broken host_vars file.

Here is my inventory file layout

docker11_s ansible_host=172.28.5.12 ansible_ssh_user=ipasupport
docker12_s ansible_host
=172.28.5.14 ansible_ssh_user=ipasupport
docker13_s ansible_host
=172.28.5.15 ansible_ssh_user=ipasupport
docker14_s ansible_host
=172.28.5.17 ansible_ssh_user=ipasupport
docker15_s ansible_host
=172.28.5.18 ansible_ssh_user=ipasupport

docker21_s ansible_host
=172.28.5.3 ansible_ssh_user=ipasupport
docker22_s ansible_host
=172.28.5.4 ansible_ssh_user=ipasupport
docker23_s ansible_host
=172.28.5.5 ansible_ssh_user=ipasupport
docker24_s ansible_host
=172.28.5.6 ansible_ssh_user=ipasupport

docker31_s ansible_host
=172.28.5.13 ansible_ssh_user=ipasupport
docker32_s ansible_host
=172.28.5.16 ansible_ssh_user=ipasupport

mqtts
-vdc20_s ansible_host=10.156.20.207 ansible_ssh_user=ipasupport
mqtts
-vdc21_s ansible_host=10.156.21.201 ansible_ssh_user=ipasupport
mqtts
-vdc22_s ansible_host=10.156.22.34 ansible_ssh_user=ipasupport
mqtts
-vdc23_s ansible_host=10.156.23.35 ansible_ssh_user=ipasupport

vdc60
-vm1 ansible_host=172.28.5.14 ansible_ssh_user=ipasupport
vdc60
-vm2 ansible_host=172.28.5.15 ansible_ssh_user=ipasupport
vdc60
-vm3 ansible_host=172.28.5.16 ansible_ssh_user=ipasupport

vdc30
-vm1 ansible_host=10.156.30.232 ansible_ssh_user=ipasupport
vdc30
-vm2 ansible_host=10.156.30.233 ansible_ssh_user=ipasupport
vdc30
-vm3 ansible_host=10.156.30.234 ansible_ssh_user=ipasupport

vdc34
-vm1 ansible_host=10.156.34.45 ansible_ssh_user=ipasupport
vdc34
-vm2 ansible_host=10.156.34.46 ansible_ssh_user=ipasupport
vdc34
-vm3 ansible_host=10.156.34.47 ansible_ssh_user=ipasupport

camdockein01_s ansible_host
=10.255.248.14 ansible_ssh_user=ipasupport

vdc80_s ansible_host
=172.29.32.136 ansible_ssh_user=ipasupport

[dockerengines_laptop]
vdc80_s

[dockerengines_taf]
camdockein01_s shortname
=camdockein01

[dockerengines_ptk2]
docker11_s shortname
=docker11
docker12_s shortname
=docker12
docker13_s shortname
=docker13
docker14_s shortname
=docker14
docker15_s shortname
=docker15
docker21_s shortname
=docker21
docker22_s shortname
=docker22
docker23_s shortname
=docker23
docker24_s shortname
=docker24
docker31_s shortname
=docker31
docker32_s shortname
=docker32

[docker23]
docker23_s shortname
=docker23

[vdc60]
vdc60
-vm1 shortname=vdc60
vdc60
-vm2 shortname=vdc60
vdc60
-vm3 shortname=vdc60

[vdc70]
vdc70_s shortname
=vdc70

[vdc21]
mqtts
-vdc21_s shortname=vdc21

[vdc30]
vdc30
-vm1 shortname=vdc30
vdc30
-vm2 shortname=vdc30
vdc30
-vm3 shortname=vdc30

[vdc34]
vdc34
-vm1 shortname=vdc34
vdc34
-vm2 shortname=vdc34
vdc34
-vm3 shortname=vdc34

[dockerengines_rs]
mqtts
-vdc20_s shortname=vdc20
mqtts
-vdc21_s shortname=vdc21
mqtts
-vdc22_s shortname=vdc22
mqtts
-vdc23_s shortname=vdc23

[dockerengines:children]
dockerengines_ptk2
dockerengines_rs
dockerengines_taf
vdc60
vdc30
vdc34
dockerengines_laptop

The playbooks are executing using the host names only. The playbooks all start with 

- hosts: dockerengines

Is this behavior normal or am I causing this by how my inventory/playbooks are defined?

Regards,
Carl 

Kai Stian Olstad

hayajasomwa,
4 Feb 2018, 04:03:2004/02/2018
kwa ansible...@googlegroups.com
On Friday, 2 February 2018 19.06.22 CET Carl Wainwright wrote:
> I trying to understand if my setup is correct or not given the subject
> matter.
>
> When I run a playbook on a particular host and a host_vars file for another
> host has a syntactical error the playbook execution fails because of the
> broken host_vars file.
>

<snip />

>
> The playbooks are executing using the host names only. The playbooks all
> start with
>
> - hosts: dockerengines
>
> Is this behavior normal or am I causing this by how my inventory/playbooks
> are defined?
>

This is by design, Ansible will read all the files in the inventory that includes group_vars and host_vars.


--
Kai Stian Olstad

Carl Wainwright

hayajasomwa,
5 Feb 2018, 10:11:4205/02/2018
kwa Ansible Project
Hi,

Do you know if there a way to sanity check updated group/host var files before I commit the changes to Git?

Regards,
Carl

Brian Coca

hayajasomwa,
5 Feb 2018, 11:08:5605/02/2018
kwa Ansible Project
I use this 1 liner.

python -c 'import yaml,sys;yaml.safe_load(sys.stdin)' < host_vars/testhost.yml



--
----------
Brian Coca

digi691

hayajasomwa,
5 Feb 2018, 14:27:4405/02/2018
kwa Ansible Project
You could also just run ansible-playbook -i {{inventory}} {{ some-playbook}} --syntax-check

- Chris
Jibu wote
Mjibu mchapishaji
Sambaza
Ujumbe 0 mpya