" It's still a host-centric view of your group comments.  "

yes thats the problem  if you want to call ut so. It would be nice if 
groups would be objects in their own right but I presume its a can of worms 
which nobody wants to open because of the felxibility of the concept

Todd Lewis schrieb am Mittwoch, 8. Februar 2023 um 18:01:22 UTC+1:

> I see what you want, but it isn't possible. From each host's perspective, 
> the `group_comment` variable will have the value as set in whichever one of 
> that host's groups where the group name sorts last, as that's the last one 
> loaded. So it is consistent, just not a solution to your problem.
>
> You can work around it if you want to go to the trouble. Say you have 
> groups named gr1, gr2, gr3, etc. Within each group, put that group's 
> comment in a variable called `group_comment_<group_name>`, i.e. 
> `group_comment_gr1`, `group_comment_gr2`, `group_comment_gr3`, etc.
>
> Then do something like the following to create a `group_comments` list for 
> each host.
>
>     - name: Create a list of group_comment_* variable names
>       ansible.builtin.set_fact:
>         # Two different ways to do it.
>         group_comment_names_a: "{{ ['group_comment_'] | 
> product(vars.group_names) | map('join') | flatten }}"
>         group_comment_names_b: "{{ query('ansible.builtin.varnames', 
> '^group_comment_.+') }}"
>
>     - name: Join group_comment_* into a list
>       ansible.builtin.set_fact:
>         group_comments: |
>             {% set gclist = [] %}
>             {% for gcn in group_comment_names_a %}
>             {% set _ = gclist.append(query('ansible.builtin.vars', gcn)) %}
>             {% endfor %}{{ gclist | flatten }}
>
> I tried lots of different ways to invoke `ansible.builtin.vars` on a list 
> using "normal" jinja pipelines before resorting to the old-school for loop 
> above. If somebody knows how to do it I'd love to see your solution.
>
> Anyway, you end up with each host having a list containing each comment 
> from each of its groups. But I somehow doubt that solves your problem 
> either. It's still a host-centric view of your group comments.
> On Wednesday, February 8, 2023 at 3:21:42 AM UTC-5 
> [email protected] wrote:
>
>> Hello all,
>> i use Ansible to document and manage a small network of computers and 
>> other devices. So I bulit an inventory with several groups and hosts and 
>> defined a bunch of variables  on each level to describe what i want to 
>> achieve,  Each host and each group has for example a variable named 
>> `host_comment` or `group_comment` respectively.
>>
>> This is very useful on the host level, but i want to show the group 
>> variables separately in a loop over all groups.
>>
>> I can show a group variable via `hostvars[host].group_comment`but because 
>> every hosts belongs to several groups i cannot control, whicht name is 
>> displayed.
>>
>> This template
>> ```
>> {% for group in groups  if  group != 'ungrouped' %}
>>   {% for host in groups[group] %}
>>   {% if loop.first %}{% set hvh = hostvars[host] %}
>>   {{ group }}     {{ hvh.group_comment }}
>>   {% endif %}
>>   {% endfor %}
>> {% endfor %}
>> ```
>>
>> gives 
>> ```
>>   all     Nicht per Ansible erreichbare Maschinen, aber sie sollen durch 
>> (Meta-) Variablen doukmentiert werden
>>   lxc_container     Alle Hosts in FM 174 (soweit Ansible-fähig)
>>   fm174     Alle Hosts in FM 174 (soweit Ansible-fähig)
>>   hetzner     Alle Hosts bei Hetzner (cloud)
>>   controllable     Alle Hosts in FM 174 (soweit Ansible-fähig)
>>   virtual_FM174     Virtuelle Ansible Hosts in FM174
>>   virtual_ansible_hosts     Nicht per Ansible erreichbare Maschinen, aber 
>> sie sollen durch (Meta-) Variablen doukmentiert werden
>>
>> ```
>> I think it is visible that this result makes no sense.
>>
>> Can anyone help here ?
>>
>> Thanks a lot !
>>
>> Norbert
>>
>>
>>

-- 
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 view this discussion on the web visit 
https://groups.google.com/d/msgid/ansible-project/4ed204c4-1397-4689-a46c-0ea0d1d9eaabn%40googlegroups.com.

Reply via email to