首页 > 解决方案 > Ansible 在每次应用时添加 crontask

问题描述

我已将以下行添加到 cron 以在重新启动时运行脚本

@reboot /usr/local/bin/autostart.sh

但是当我为它准备 ansible 脚本时,我发现每次应用 ansible 时它都会增加 1 行。

任务如下:

- name: Add autostart script to cron
  cron:
    special_time: reboot
    user: user
    state: present
    job: /usr/local/bin/autostart.sh

经过几次更新后,我得到了以下 cron:

#Ansible: None
@reboot /usr/local/bin/autostart.sh
#Ansible: None
@reboot /usr/local/bin/autostart.sh
#Ansible: None
@reboot /usr/local/bin/autostart.sh
#Ansible: None
@reboot /usr/local/bin/autostart.sh

对我来说,这是一种奇怪的行为,因为state: present应该检查记录是否已经存在。

或者也许我错过了什么?

标签: cronansible

解决方案


添加名称参数。例如

- name: Add autostart script to cron
  cron:
    name: "autostart"
    special_time: reboot
    user: user
    state: present
    job: /usr/local/bin/autostart.sh

引用cron

name:crontab 条目的描述,或者,如果设置了 env,则为环境变量的名称。如果 state=absent 则为必需。请注意,如果 name 未设置且 state=present,则将始终创建一个新的 crontab 条目,而不管现有的条目。在未来的版本中将始终需要此参数。


推荐阅读