我需要将cron作业配置为在多个主机上的不同时间运行。 理想情况下,我希望有一个索引来标识我当前正在修改的主机并将其抵消。
所以,如果我对:
运行ansibleHOSTA
HOSTB
HOSTC
我想将cron配置为像这样
0 1 * * * #HOSTA
0 2 * * * #HOSTB
0 3 * * * #HOSTC
如果没有对每个主机的变量进行硬编码,你知道如何实现它吗?
答案 0 :(得分:4)
您可以在字典数组上使用循环with_items。然后使用inventory_hostname或ansible_hostname:
过滤相应的项目- name: cron jobs
cron: min=0 hour={{ item.h }} job="echo server {{ item.s }} cron job started" state=present
when: inventory_hostname == item.s
with_items:
- { s: 'hosta', h: 1 }
- { s: 'hostb', h: 2 }
- { s: 'hostc', h: 3 }