【发布时间】:2016-11-10 09:35:43
【问题描述】:
我有一些字典:
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: harley@gmail.com
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: vasya@gmail.com
telnum: +7970000000
jobtitle: minister
我有一个只适用于列表的 ansible 模块:
- 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 }}"
此模块需要“用户”参数下的用户列表,创建一个组并将用户添加到其中。我想像这样映射字典“users_to_add”:
(使用 users_to_add 字典)
{group_name: ["user1", "user2"...]} 并将这个新字典提供给模块。
我如何使用ansible 完成此操作?
我知道首先我应该使用
set_fact:
new_dict:
with_items: {{ users_to_add }}
...
然后将这个新字典提供给模块,其中键是要创建的组名和值 - 要添加到组的用户列表,但我不明白如何使用 ansible 完成此操作...
【问题讨论】:
-
很难理解你想在这里实现什么...
ipa_group模块创建组并将用户分配给他们。但是您迭代users_to_add而不是组。请使用您希望创建的包含哪些用户名的确切组名来编辑您的问题。 -
我想迭代 users_to_add 字典并在新字典中收集所有组名和用户登录信息,其中:{group: [所有拥有该组的用户], group: ...}
标签: python dictionary ansible