我有一个用于创建用户的yaml。
users:
username:
uid: 12345
gid: 6789
secggroups:
- group1
- group3
gecos: user_for_xyz
home: /home/username
我还有一个只有usernames
名为users_list
的文件。创建用户的剧本如下:
---
\- name: create users
user: name="{{ item }}" uid={{ users[item]['uid'] }} group={{ users[item][gid] }} comment="{{ users[item]['gecos'] }}" home={{ users[item]['home' }} expires=0
with_items:
\- users_list
如何循环浏览要添加给用户的组?
答案 0 :(得分:0)
你的剧本走在正确的轨道上。
尝试使用users变量:
users:
- username: someusername
uid: 12345
gid: 6789
groups:
- group1
- group3
gecos: "Some user"
home: /home/someusername
- username: someusername
... etc ...
这为用户播放
- name: User creation
user:
name:"{{item.username}}"
groups: "{{item.groups | join(',')}}"
comment: "{{item.name}}"
uid: "{{item.uid}}"
with_items: users
请注意,我修改了您的语法以不使用内联YAML。
此外,您可能会发现this users role有帮助。
答案 1 :(得分:0)
您可以使用以下子元素解决此问题:
- name: User creation
user:
name:"{{item.0.username}}"
groups: "{{item.1 }}"
with_subelements:
- "{{ users }}"
- groups
这是一个要调试的示例,如目录树:
vars:
test:
- name: Testing subelements loop
dir: dir0
subdir:
- subdir0
- subdir1
- subdir2
tasks:
- name: Subelements loop sample
debug:
msg: "{{ item.0.dir }}/{{ item.1 }}"
with_subelements:
- "{{ test }}"
- subdir
您可以在此处找到更多信息:http://docs.ansible.com/ansible/playbooks_loops.html#standard-loops