I should have mentioned I have inventory = inventories/uat defined in my 
ansible.cfg or I'm running the playbook with -i inventories/uat  (or both)

On Tuesday, 12 December 2017 13:33:27 UTC+11, Jason S wrote:
>
> Hi Brian,
> I got that via trial and error
> I'm using ansible 2.4.2.0
>
> In my case I have an inventory setup like this
> inventories/uat/hosts
> inventories/uat/host_vars/stable-1
> inventories/uat/host_vars/stable-2
> inventories/uat/group_vars/stable
>
> in inventories/uat/hosts
> [stable]
> stable-1
> stable-2
>
> [stable:vars]
> stable-1 http_port=80 maxRequestsPerChild=808
> stable-2 http_port=303 maxRequestsPerChild=909
>
> If I run a simply play-book like this
>
> ---
>
> - hosts: stable-1
>   connection: ssh
>   gather_facts: no
>   tasks:
>     - name: Debug http_port
>       debug:
>         var: hostvars[inventory_hostname]['http_port']
>     - name: Debug http_port
>       debug:
>         var: hostvars[inventory_hostname][inventory_hostname + ' 
> http_port']
>     - name: Debug maxRequestsPerChild
>       debug:
>         var: hostvars[inventory_hostname]['maxRequestsPerChild']
>
> I get
> stable-1 | SUCCESS => {
>     "changed": false, 
>     "hostvars[inventory_hostname]['http_port']": "VARIABLE IS NOT DEFINED!"
> }
> stable-1 | SUCCESS => {
>     "changed": false, 
>     "hostvars[inventory_hostname][inventory_hostname + ' http_port']": "80 
> maxRequestsPerChild=808"
> }
> stable-1 | SUCCESS => {
>     "changed": false, 
>     "hostvars[inventory_hostname]['maxRequestsPerChild']": "VARIABLE IS 
> NOT DEFINED!"
> }
>
>
> If I define the host variables in inventories/uat/host_vars/stable-1 then 
> it works as expected (i.e variable values available via 
> hostvars[inventory_hostname]['http_port'] 
> )
>
>
>
> On Tuesday, 12 December 2017 12:57:43 UTC+11, Brian Coca wrote:
>>
>> I'm not sure where you got `hostvars[inventory_hostname]['{{ 
>> inventory_hostname }} http_port']` but that does not look like a valid 
>> construct 
>>
>> In any case, using: 
>> hostvars[inventory_hostname]['http_port'] 
>> hostvars[inventory_hostname]['maxRequestsPerChild'] 
>>
>> you should be able to access the vars no matter if defined inline in 
>> the inventory or in a host/group-vars file, 
>> but just use `http_port` and `maxRequestsPerChild` directly, you 
>> really only need hostvars when accessing other hosts or trying to 
>> compose variable names. 
>>
>> -- 
>> ---------- 
>> Brian Coca 
>>
>

-- 
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 [email protected].
To post to this group, send email to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/ansible-project/4097c52a-9dba-4a9a-b71a-cf0096c87288%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to