我有一個Ansible任務,看起來像這樣:Alias一個Ansible字典引用任務中的`item`?
- name: Create cron job to backup foo (default is every day at 2AM)
cron: name="foo-database-backup"
cron_file="foo-database-backup"
minute="{{ foo.backup_policy.minute|default('0') }}"
hour="{{ foo.backup_policy.hour|default('2') }}"
day="{{ foo.backup_policy.day|default('*') }}"
weekday="{{ foo.backup_policy.weekday|default('*') }}"
month="{{ foo.backup_policy.month|default('*') }}"
job="/bin/true"
與相應group_vars文件看起來像這樣:
---
foo:
backup_policy:
minute: 30
hour: 3
day: "*/3"
不過,我在想,如果我可以做的任務更具可讀性和在複製代碼片段時,通過在任務中將字典參考item
別名,可以減少出錯的機率。我試着這樣做使用with_items
這樣的:
- name: Create cron job to backup foo (default is every day at 2AM)
cron: name="foo-database-backup"
cron_file="foo-database-backup"
minute="{{ item.minute|default('0') }}"
hour="{{ item.hour|default('2') }}"
day="{{ item.day|default('*') }}"
weekday="{{ item.weekday|default('*') }}"
month="{{ item.month|default('*') }}"
job="/bin/true"
with_items: foo.backup_policy
但由於with_items
不工作(因爲我非常期待)真正想要的清單或設置(我得到錯誤with_items expects a list or a set
如果我嘗試)。
是否有可能將此詞典的別名縮寫爲item
或類似於任務內部的短語,還是應該停止嘗試微觀優化這麼多內容?