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.
