我想用 ansible 维护用户。我使用user
模块,但我想要一些非唯一的用户 ID。现在我有一本这样的字典:
users:
user: { password: "HASH", shell: "/bin/zsh", home: "/home/user", uid: -1, non-unique: "no" }
userroot: { password: "HASH1", shell: "/bin/zsh", home: "/home/userroot", uid: 0, non-unique: "yes" }
我正在创建这样的用户:
- name: Create users
user: name={{ item.key }} createhome=yes shell={{ item.value.shell }} password={{ item.value.password }} home="{{ item.value.home }}" append=yes state=present
with_dict: "{{users}}"
问题是如何添加一个逻辑,uid
当参数设置为大于或等于 0 的值时,该逻辑将指定该参数?
答案1
我认为如何通过大于/等于 uid 数来决定这一点的唯一方法是拥有两个带有条件的不同资源when
。
但如果你不需要uid: -1
,这样的东西也可以工作。只需删除用户变量中的uid
和值即可:non_unique
- name: Create users
user:
name={{ item.key }}
createhome=yes
shell={{ item.value.shell }}
password={{ item.value.password }}
home="{{ item.value.home }}"
append=yes
state=present
uid="{{ item.value.uid | default(omit) }}"
non_unique="{{ item.value.non_unique | default('no') }}"
with_dict: "{{users}}"
并且在普通用户中不要使用 uid 和 non_unique (注意这个变量,必须有_
代替):-
user: { password: "HASH", shell: "/bin/zsh", home: "/home/user" }
userroot: { password: "HASH1", shell: "/bin/zsh", home: "/home/userroot", uid: 0, non_unique: "yes" }