Please see
http://docs.ansible.com/ansible/latest/porting_guide_2.4.html#inventory for
information about the change to inventory_dir

On Wed, Mar 7, 2018 at 5:24 AM, ishan jain <[email protected]> wrote:

> Hi All,
>
> I am trying to understand the changes with Ansible 2.4 that affects the
> usage of inventory_dir variable.
>
> Earlier i was using a static host file and in my playbooks, i was heavily
> relying on inventory_dir to load variable files which in turn was loading
> the target hosts. I understand the purpose of making the inventory_dir as a
> hostvar, what i did not understand is *how can i still access
> inventory_dir directly as a global variable in my playbooks* *?*
>
> To show what i mean, i created a little demo:
>
> *hosts.info <http://hosts.info>*
> [locals]
> local1 localhost ansible_connection=local
> local2 localhost ansible_connection=local
>
>
>
> *varsFile.yaml*
> #This doesn't work anymore
> #moreVars: "{{ inventory_dir ~ 'moreVars.yaml' }}"
>
> #This also works
> #moreVars: "{{hostvars[groups.all.0].inventory_dir}}/moreVars.yaml"
>
> #This works and this is what i was using before 2.4
> moreVars: "{{inventory_dir}}/moreVars.yaml"
>
>
>
> *moreVars.yaml*
> #Prior to 2.4, this is how i defined target hosts. I understand this will
> not work anymore
> targetHosts: locals
>
> who: MORE_VARS
>
>
>
> *playbook.yaml*
> ---
> - hosts: locals
>   vars_files:
>         - varsFile.yaml
>         - "{{moreVars}}"
>
>   tasks:
>
>
>      - debug: var=who
>
>      - name: Accessing the inventory_dir as a host var
>        debug: msg="Accessing inventory_dir as hostvar --
> {{hostvars[groups.all.0].inventory_dir}}"
>
>      - name: Accessing the inventory DIR directly
>        debug: msg="Accessing inventory_dir directly -- {{inventory_dir}}"
>
>
>
>
> *output*
>
>
>
>
>
>
> *$ ansible --versionansible 2.4.3.0$ ansible-playbook playbook.yaml -i
> hosts.info <http://hosts.info>PLAY [locals]
> ***************************************************************************************************************************************************************************************TASK
> [Gathering Facts]
> ******************************************************************************************************************************************************************************ok:
> [local1]ok: [local2]TASK [debug]
> ****************************************************************************************************************************************************************************************ok:
> [local1] => {    "who": "MORE_VARS"}ok: [local2] => {    "who":
> "MORE_VARS"}TASK [Accessing the inventory_dir as a host var]
> ****************************************************************************************************************************************************ok:
> [local1] => {    "msg": "Accessing inventory_dir as hostvar --
> /home/ij/temp"}ok: [local2] => {    "msg": "Accessing inventory_dir as
> hostvar -- /home/ij/temp"}TASK [Accessing the inventory DIR directly]
> *********************************************************************************************************************************************************ok:
> [local1] => {    "msg": "Accessing inventory_dir directly --
> /home/ij/temp"}ok: [local2] => {    "msg": "Accessing inventory_dir
> directly -- /home/ij/temp"}PLAY RECAP
> ******************************************************************************************************************************************************************************************local1
>                    : ok=4    changed=0    unreachable=0    failed=0local2
>                    : ok=4    changed=0    unreachable=0    failed=0*
>
>
> *So my questions:*
> *1) How is inventory_dir still available as global var ?*
> *2) Can i continue using it directly or i should
> use hostvars[groups.all.0].inventory_dir ?*
>
> --
> 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/96846820-85b0-4aee-ac09-fb4062d9412f%40googlegroups.
> com
> <https://groups.google.com/d/msgid/ansible-project/96846820-85b0-4aee-ac09-fb4062d9412f%40googlegroups.com?utm_medium=email&utm_source=footer>
> .
> For more options, visit https://groups.google.com/d/optout.
>



-- 
Matt Martz
@sivel
sivel.net

-- 
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/CAD8N0v-A%2ByhbS0Dmt%3DXtJjyZUfsOkQkOh7MvcPoYs2RCec1R_w%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to