Ansible
基於變數省略ansible的參數
我想用 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 時將指定參數?
我認為如何通過大於/等於 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" }