переменной organizations, чтобы в таске
- name: Create user
debug:
var: item
loop: "{{ organizations | ?? }}"
в каждый item попадала такая мапа
{org_name: org 1, login_or_mail: user-1@org-1.com, role: Admin}
{org_name: org 1, login_or_mail: user-2@org-1.com, role: Editor}
{org_name: org 1, login_or_mail: user-3@org-1.com, role: Viewer}
{org_name: org_2, login_or_mail: user-1@org-2.com, role: Admin}
{org_name: org_2, login_or_mail: user-2@org-2.com, role: Editor}
{org_name: org_2, login_or_mail: user-3@org-2.com, role: Viewer}
Переменная organizations выглядит так
organizations:
- org_name: org 1
users:
- login_or_mail: user-1@org-1.com
role: Admin
- login_or_mail: user-2@org-1.com
role: Editor
- login_or_mail: user-3@org-1.com
role: Viewer
- org_name: org_2
users:
- login_or_mail: user-1@org-2.com
role: Admin
- login_or_mail: user-2@org-2.com
role: Editor
- login_or_mail: user-3@org-2.com
role: Viewer
'{{ organizations | map(attribute="users") | flatten }}'
Тут в списке словарей не будет ключа org_name
Ага, как раз с этим разбираюсь
Я бы порекомендовал вот такой вариант: organizations | subelements('users') | flatten
Как и в Вашем варианте, я как раз с subelements игрался, но не смог придти к нужному виду item
Я бы тогда сделал через include_tasks в котором уже сделал бы цикл по users.
Это было самой первой мыслю. Я как раз формирую мапы для include_tasks. Вот чтобы в include_tasks, в котором вызывается ещё один include_tasks не делать, решил через фильтры сформировать мапы.
В принципе, это делается легко с помощью кастомного фильтра
Обсуждают сегодня