Hi,

I've been using ansible for half a year and have been really happy with it 
so far, so first of all: thanks for all the great work on this project!

We're moving from static to dynamic inventory, but I'm having trouble with 
loading group_vars and haven't been able to find out from the docs how 
these are looked up, so I hope someone can help me out here.

In the static setup we had one inventory file per environment 
(dev/staging/prod), and a group_vars directory where we set variables per 
role as well as per environment based on their group membership.

The static directory structure looks like this:

inventories
├── development
├── group_vars
│   ├── all.yml
│   ├── web.yml
│   ├── worker.yml
│   ├── development
│       ├── secrets.yml
│       └── vars.yml
│   ├── production
│       ├── secrets.yml
│       └── vars.yml
│   └── staging
│       ├── secrets.yml
│       └── vars.yml
├── production
└── staging


When I run e.g.:

ansible -i inventories/staging web -m debug -a 'msg="{{hostvars}}"'

the results contain all the relevant vars for the groups 'all', 'web' and 
'staging'.

Things I like about this setup:
- you have to explicitly pick an environment to target, which makes 
accidents more difficult;
- production and staging inventories are completely separate, again making 
mistakes harder;
- having a single place where we can set some variables for all hosts and 
override them and add more, by role (web, worker, etc) and by environment.


The new mixed inventory setup looks like this (staging and production are 
now directories, maybe that's part of the issue?):
inventories
├── development
├── group_vars
│   ├── all.yml
│   ├── web.yml
│   ├── worker.yml
│   ├── development
│   │   ├── secrets.yml
│   │   └── vars.yml
│   ├── grabber.yml
│   ├── production
│   │   ├── secrets.yml
│   │   └── vars.yml
│   └── staging
│       ├── secrets.yml
│       └── vars.yml
├── production
│   ├── base
│   ├── ec2.ini
│   └── ec2.py
└── staging
    ├── base
    ├── ec2.ini
    └── ec2.py

The output of
ansible -i inventories/staging/ web -m debug -a 'msg="{{hostvars}}"'
now doesn't include any of the group vars. The group_vars directory doesn't 
seem to be loaded or applied at all.

Any ideas how I can structure this to achieve what we had previously but 
with mixed inventory?


Thanks!
Niko

PS: In case you're wondering, the two ec2.py scripts are identical and the 
ec2.ini's only differ in their cache_path and instance_filters (selecting 
instances tagged with env:production/staging, respectively).

-- 
Our mailing address is: WhiteMatter Labs GmbH | Reichenberger Str. 124, 
 10999 Berlin
Handelsregister: Amtsgericht Charlottenburg, HRB 162605 B | Geschäftsführer: 
Fabian Stelzer

-- 
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/b3fd5fb0-cadc-439e-8386-ca5555187b47%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to