我有一个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
或类似于任务内部的短语,还是应该停止尝试微观优化这么多内容?