Yes, thanks I think that does help some.  I think the part I'm missing 
still is how to somehow pull in each file name one at a time.  I know in 
pseudo-code it's something like

for( one_filename in fileglob( vars/*.yml) {

- include_vars "{{ one_filename ))"
- debug: msg="{{ site_name }} on port {{ port }}"
}

I know you can't just do something like

- include_vars "{{ item }}"
  with_fileglob:
    - "vars/*.yml"

since that's going to just pull in the whole list immediately and print out 
the results at the end.


On Tuesday, October 18, 2016 at 3:56:52 PM UTC-5, Alexander H. Laughlin 
wrote:
>
> Have you considered conditional includes 
> <http://docs.ansible.com/ansible/playbooks_conditionals.html#applying-when-to-roles-and-includes>?
>  
> Along with include_vars 
> <http://docs.ansible.com/ansible/include_vars_module.html#include-vars-load-variables-from-files-dynamically-within-a-task>
>  
> I think you should be able to achieve the desired effect.
>
> Something like the below:
>
> ---
>
> - name: include_vars example 
>
>   hosts: all
>
>   tasks:
>
>     - name: Debug hostname.
>
>       debug:
>
>         var: inventory_hostname
>
>       # Different filenames with the same variables *should* override the 
> variables for each instance of playbook execution.
>
>       # But precedence is tricky and I've had trouble getting things like 
> this to work in the past, so ymmv.
>            - name: Include variables based on hostname.
>
>       include_vars: "vars/{{ inventory_hostname }}.yml"
>
>     - name: Print site name and port number.
>              debug:
>
>         msg: "My site {{ site_name }} is running on port {{ port_number 
> }}."
>
> ...
>
> # vim: ft=ansible:
>
> Sorry if the formatting is a little wonky the code widget is a little 
> weird sometimes.
>
> Hope this helps, best of luck.
>
> Alex
>
>
>
> On Tuesday, October 18, 2016 at 12:02:43 PM UTC-7, Nick Tkach wrote:
>>
>> So, the general idea is I've got a playbook that has a set of "property" 
>> files (yaml format).  Different filenames, but the variable names inside 
>> are the same:
>>
>> group_vars/siteA.yml
>> ---
>> site_name: appA
>> port: 8080
>>
>> group_vars/siteB.yml
>> ---
>> site_name: appB
>> port: 8090
>>
>>
>>
>> and so on.  I want to run a task that does work using each of those in 
>> turn like
>>
>> - name: print out the value of site_name and port for each of the 
>> group_vars files
>>   debug: msg="My site {{ site_name }} is on port {{ port }}"
>>
>>
>>
>> So you'd expect output like
>>
>> My site appA is on port 8080
>> My site appB is on port 8090
>>
>> I'm not finding a way to get this result.  You can't apply a 
>> with_fileglob to a task block so I'm not sure how to do something to *both* 
>> "reset" the variables (something like var_files?) *and* do some kind of 
>> work with the values from *that* file.  I'm assuming I'm missing something 
>> about how to look at this?
>>
>

-- 
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/3006934d-91b1-4518-a63c-dfdb7d256eb3%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to