"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.
