由于我使用ansible来设置cron任务,并且我想避免在我的所有服务器上同时运行相同的任务,我正在寻找一个优雅的解决方案来生成cron& #34;随机"通过在重新运行我的ansible角色时保持不重要性。
我已经制作了这个工作脚本:
li {
list-style-type: none;
padding: 0;
margin: 0;
}
.main-contain{
display: flex;
justify-content: flex-end;
}
.lists {
display: inline-block;
}
我们的想法是调用脚本并将服务器名称作为参数。
但我对自己的解决方案并不信服。有没有更好的方法呢?我正在寻找Ansible中直接提供的东西。
答案 0 :(得分:3)
从Ansible 2.3版本开始,也可以从种子初始化随机数生成器。这样,您就可以创建随机但幂等的数字:
{{59 | random(seed = inventory_hostname)}} * * * * root / script / from / cron
答案 1 :(得分:1)
幂等cron
任务,时间由inventory_hostname
播种:
- cron:
name: myjob
job: myscript.sh
minute: "{{ ( inventory_hostname | hash | list | map('int',0,16) | sum ) % 60 }}"
hour: "{{ ( inventory_hostname | hash | list | map('int',0,16) | sum ) % 24 }}"
答案 2 :(得分:0)
使用带有随机值的ansible cron
模块
- cron: name='JOB_NAME' job="JOB" minute={{ 59 |random }} hour={{ 4 |random(start=3) }}
这将创建一个cron作业,它的分钟范围(0-59)和小时范围(3-4)