"But looks like the variable file is referred to, before the
variable inventory_file is loaded?"

I'm not sure what this means, can you elaborate?

Thanks!



On Mon, May 12, 2014 at 3:27 PM, Mridusmita Talukdar <[email protected]>wrote:

> Hi,
> We have multiple clusters. Each of the clusters need to have a different
> var file (cluster specific variables)
> Currently the variable file name is same as the cluster name, so that when
> the extra-variable says cluster=ABC, my playbook picks up the variable file
> ABC.yml which I refer to in the playbook by {{cluster}}.yml.
> This has a risk because the user while running the playbook might give the
> inventory file name of cluster XYZ and give cluster=ABC.
> In order to avoid this risk, I want to pick up my variable file
> as {{inventory_file}}.yml
> But looks like the variable file is referred to, before the
> variable inventory_file is loaded?
> Because even though {{inventory_file}}.yml is picked up correctly under
> tasks(I printed it our using debug:) the variable file is not being picked
> up.
> Am I missing something here?
> Thanks and regards,
> Mridu
>
>
> On Monday, May 5, 2014 5:45:57 PM UTC-7, James Cammarata wrote:
>
>> The name of the current inventory file in use is stored in the
>> "inventory_file" variable name, so you could check that. Beyond that, there
>> are two other options:
>>
>> 1. Use --extra-vars to specify the target environment, for example:
>> --extra-vars="inventory=qa"
>> 2. The group_vars location is based on the location of the inventory
>> file, so you could do something like this:
>>
>> qa/group_vars/all:
>> inventory=qa
>>
>> prod/group_vars/all:
>> inventory=production
>>
>> The qa/hosts and prod/hosts would contain your different inventories, so
>> you'll get output like this:
>>
>> $ cat play.yml
>> - hosts: all
>>   gather_facts: no
>>   tasks:
>>   - name: show the variable
>>     debug: var=inventory
>>
>> $ ansible-playbook play.yml -i prod/hosts
>>
>> PLAY [all] ************************************************************
>> ********
>>
>> TASK: [show the variable] ******************************
>> ***********************
>> ok: [you] => {
>>     "inventory": "production"
>> }
>>
>> PLAY RECAP ************************************************************
>> ********
>> you                        : ok=1    changed=0    unreachable=0
>>  failed=0
>>
>> $ ansible-playbook play.yml -i qa/hosts
>>
>> PLAY [all] ************************************************************
>> ********
>>
>> TASK: [show the variable] ******************************
>> ***********************
>> ok: [me] => {
>>     "inventory": "qa"
>> }
>>
>> PLAY RECAP ************************************************************
>> ********
>> me                         : ok=1    changed=0    unreachable=0
>>  failed=0
>>
>>
>> Hope that helps.
>>
>>
>>
>> On Mon, May 5, 2014 at 4:26 PM, Drew Gulino <[email protected]> wrote:
>>
>>> As suggested in the best practices doc, have two inventory files: qa and
>>> production
>>>
>>> I call these using the -i parameter:
>>>
>>> ansible-playbook -i qa ...
>>>
>>> Is there a way I can determine in my playbook which inventory I am
>>> using?  The use case is I want to notify one chat room if using qa
>>> inventory, another if I use production.
>>>
>>>
>>> I've tried just putting a variable in the root of the inventory file qa:
>>>
>>> inventory=qa
>>> [webservers]
>>> host1
>>>
>>> but that doesn't work: is not displayed as a variable with: "ansible
>>> host1 -m setup -i qa"
>>>
>>> I can define a variable for each host like:
>>>
>>> [webservers]
>>> host1 inventory=qa
>>>
>>> but that is terribly redundant.
>>>
>>> --
>>> 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/e5606bef-1a43-40a1-b34a-
>>> 42c0866cd9ce%40googlegroups.com<https://groups.google.com/d/msgid/ansible-project/e5606bef-1a43-40a1-b34a-42c0866cd9ce%40googlegroups.com?utm_medium=email&utm_source=footer>
>>> .
>>> For more options, visit https://groups.google.com/d/optout.
>>>
>>
>>  --
> 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/258ac9c4-e8a5-4eb4-a229-7364e4990902%40googlegroups.com<https://groups.google.com/d/msgid/ansible-project/258ac9c4-e8a5-4eb4-a229-7364e4990902%40googlegroups.com?utm_medium=email&utm_source=footer>
> .
>
> For more options, visit https://groups.google.com/d/optout.
>

-- 
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/CA%2BnsWgyND37T5jXwaj83gEME8DZ%3DvA%2BtLCbrT7PRTzc8BRfFOw%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to