Hi, 

I have been experiencing a rather peculiar issue when using an in-house 
dynamic inventory (output 
here: https://gist.github.com/oboukili/4bfc95d97fc340e770321201f70dce4c ) 
in conjunction with static group_vars files.
When using this simple playbook:

---
- hosts: infrastructure
  become: true
  pre_tasks:
    - name: debug
      debug:
        msg: "{{ hostvars[item] }}"
      with_items: "{{ groups['infrastructure'] }}"
...

## Invocation:

ansible-playbook -i ~/Workspaces/ansible-inventory/mycloud includes/test.yml

## Output:

PLAY [infrastructure] 
***********************************************************************************************************************************************************************************************

TASK [Gathering Facts] 
**********************************************************************************************************************************************************************************************
ok: [apps-public1]
ok: [bastion]

TASK [debug] 
********************************************************************************************************************************************************************************************************
fatal: [apps-public1]: FAILED! => {"failed": true, "msg": "the field 'args' has 
an invalid value, which appears to include a variable that is undefined. The 
error was: 'ansible.vars.hostvars.HostVars object' has no attribute 
u'apps-public1'\n\nThe error appears to have been in 
'/home/bki/Workspaces/playbooks/test.yml': line 5, column 7, but may\nbe 
elsewhere in the file depending on the exact syntax problem.\n\nThe offending 
line appears to be:\n\n  pre_tasks:\n    - name: debug\n      ^ here\n"}
fatal: [bastion]: FAILED! => {"failed": true, "msg": "the field 'args' has an 
invalid value, which appears to include a variable that is undefined. The error 
was: 'ansible.vars.hostvars.HostVars object' has no attribute 
u'apps-public1'\n\nThe error appears to have been in 
'/home/bki/Workspaces/playbooks/test.yml': line 5, column 7, but may\nbe 
elsewhere in the file depending on the exact syntax problem.\n\nThe offending 
line appears to be:\n\n  pre_tasks:\n    - name: debug\n      ^ here\n"}



When I delete the group_vars folder, everything runs fine (but I lose, of 
course all the static configuration).
More specifically, I did a lot of debugging with the use of the inventory 
script and without, and I pinpointed the issue to the 
ansible.template.AnsibleJ2Vars.__get_item__() getter 
(ansible/template.vars.py) that silently fails on this particular step when 
mixing dynamic inventory script and static group_vars files:

variable = self._templar._available_variables[varname]".

(its value would then not be a hostvars object instance, but a string: 
"Unable to get repr for <class 'ansible.vars.hostvars.HostVars'>")


Could anybody have pointers?
Thanks a lot,

--Olivier

-- 
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/8d368bc9-0348-4524-8ee4-6041c31ed202%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to