On Tue, 14 Jun 2022 08:03:22 -0700 (PDT) "[email protected]" <[email protected]> wrote:
> Hello,
> I've got a list variable that looks like this
> list:
> - name: n1
> group: g1
> - name: n2
> group: g1
> - name: c1
> group: g2
> etc....
>
>
> in my config file, this should become:
> g1: n1,n2
> g2: c1
>
> etc....
>
> how can this be done?
>
* Given the list
_list:
- {group: g1, name: n1}
- {group: g1, name: n2}
- {group: g2, name: c1}
* Use *groupby*
_arr: "{{ _list|groupby('group') }}"
gives
_arr:
- - g1
- - {group: g1, name: n1}
- {group: g1, name: n2}
- - g2
- - {group: g2, name: c1}
* Create lists of keys and values
_keys: "{{ _arr|map('first')|list }}"
_vals: "{{ _arr|map('last')|map('map', attribute='name')|list }}"
gives
_keys:
[g1, g2]
_vals:
- [n1, n2]
- [c1]
* Create the dictionary
_dict: "{{ dict(_keys|zip(_vals)) }}"
gives
_dict:
g1: [n1, n2]
g2: [c1]
--
Vladimir Botka
--
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/20220614175347.0b105bc7%40gmail.com.
pgpBpQiYIkrDC.pgp
Description: OpenPGP digital signature
