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 ansible-project+unsubscr...@googlegroups.com.
To post to this group, send email to ansible-project@googlegroups.com.
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