У меня есть Dict:Собирают Dict из другого Dict в анзибль
users_to_add:
- username: Harley Quinn
login: 90987264
group: mininform
group_desc: "Some random data for description"
personal_data:
- first_name: Harley
last_name: Quinn
mail: [email protected]
telnum: +7777777777
jobtitle: minister
- username: Vasya Pupkin
login: 77777777
group: mininform
group_desc: "Some random data for description"
personal_data:
- first_name: Vasya
last_name: Pupkin
mail: [email protected]
telnum: +7970000000
jobtitle: minister
И у меня есть анзибль модуль, который работает только со списками:
- name: Create needed groups
ipa_group:
state: present
name: "{{ item.group }}"
description: "{{ item.group_desc }}"
ipa_host: "{{ global_host }}"
ipa_user: "{{ global_user }}"
ipa_pass: "{{ global_pass }}"
validate_certs: no
user: []
with_items:
- "{{ users_to_add }}"
Этот модуль хочет список пользователей в разделе «пользователь» аргумент, создание группы и добавление к ней пользователей. Я хочу сопоставить dict «users_to_add» следующим образом: (используя users_to_add dict) {group_name: ["user1", "user2"...]}
и передать этот новый dict модулю. Как это сделать с ansible
? Я знаю, что первый я должен использовать
set_fact:
new_dict:
with_items: {{ users_to_add }}
...
А затем кормить эту новую Dict к модулю, где ключ является имя группы для создания и значение - список пользователей, чтобы добавить в группу, но я не могу понять, как это сделать с ansible
...
это трудно понять, что вы хотите достичь здесь ... 'ipa_g Модуль roup' создает группы и назначает им пользователей. Но вы перебираете «users_to_add», а не группы. Измените свой вопрос именно тем, какие имена групп вы хотите создать, содержащие имена пользователей. –
Я хочу итерации users_to_add dict и собирать все имена групп и логинов пользователей в новом dict, где: {group: [все пользователи, у которых есть эта группа], группа: ...} – Mizeraj