ansible.builtin.cron 模块 – 管理 cron.d 和 crontab 条目
注意
此模块是 ansible-core
的一部分,包含在所有 Ansible 安装中。在大多数情况下,即使不指定 collections 关键字,您也可以使用简短的模块名称 cron
。但是,我们建议您使用 完全限定集合名称 (FQCN) ansible.builtin.cron
,以便轻松链接到模块文档并避免与可能具有相同模块名称的其他集合冲突。
概要
使用此模块管理 crontab 和环境变量条目。此模块允许您创建环境变量和命名 crontab 条目,更新或删除它们。
当管理 crontab 作业时:模块包含一行描述 crontab 条目的内容
"#Ansible: <name>"
,对应于传递给模块的“name”,ansible/module 的未来调用将使用它来查找/检查状态。“name”参数应该唯一,更改“name”值将导致创建一个新的 cron 任务(或删除不同的任务)。当管理环境变量时,不会添加注释行,但是,当模块需要查找/检查状态时,它使用“name”参数来查找环境变量定义行。
使用 % 等符号时,必须正确转义。
需求
以下是执行此模块的主机所需的条件。
cron(任何符合“vixie cron”的变体,例如 cronie)
参数
参数 |
注释 |
---|---|
如果设置,则在修改 crontab 之前创建其备份。此模块在 选项
|
|
作业应运行的月份中的某一天( 默认值: |
|
作业应运行的小时( 默认值: |
|
与 如果指定,则环境变量将在指定环境变量的声明之后插入。 |
|
与 如果指定,则环境变量将在指定环境变量的声明之前插入。 |
|
作业应运行的分钟( 默认值: |
|
作业应运行的月份( 默认值: |
|
crontab 条目描述,或者如果设置了 env,则为环境变量的名称。 从 ansible-core 2.12 版本开始,此参数始终是必需的。 |
|
特殊时间规范别名。 选项
|
|
确保作业或环境变量存在还是不存在。 选项
|
|
应修改其 crontab 的特定用户。 未设置时,此参数默认为当前用户。 |
|
作业应运行的星期几( 默认值: |
属性
属性 |
支持 |
描述 |
---|---|---|
支持:完全支持 |
可以在检查模式下运行并返回更改状态预测,而无需修改目标;如果不支持,则将跳过此操作。 |
|
支持:完全支持 |
处于差异模式时,将返回有关已更改内容(或在检查模式下可能需要更改的内容)的详细信息。 |
|
平台: posix |
可以对其进行操作的目标操作系统/系列。 |
示例
- name: Ensure a job that runs at 2 and 5 exists. Creates an entry like "0 5,2 * * ls -alh > /dev/null"
ansible.builtin.cron:
name: "check dirs"
minute: "0"
hour: "5,2"
job: "ls -alh > /dev/null"
- name: 'Ensure an old job is no longer present. Removes any job that is prefixed by "#Ansible: an old job" from the crontab'
ansible.builtin.cron:
name: "an old job"
state: absent
- name: Creates an entry like "@reboot /some/job.sh"
ansible.builtin.cron:
name: "a job for reboot"
special_time: reboot
job: "/some/job.sh"
- name: Creates an entry like "PATH=/opt/bin" on top of crontab
ansible.builtin.cron:
name: PATH
env: yes
job: /opt/bin
- name: Creates an entry like "APP_HOME=/srv/app" and insert it after PATH declaration
ansible.builtin.cron:
name: APP_HOME
env: yes
job: /srv/app
insertafter: PATH
- name: Creates a cron file under /etc/cron.d
ansible.builtin.cron:
name: yum autoupdate
weekday: "2"
minute: "0"
hour: "12"
user: root
job: "YUMINTERACTIVE=0 /usr/sbin/yum-autoupdate"
cron_file: ansible_yum-autoupdate
- name: Removes a cron file from under /etc/cron.d
ansible.builtin.cron:
name: "yum autoupdate"
cron_file: ansible_yum-autoupdate
state: absent
- name: Removes "APP_HOME" environment variable from crontab
ansible.builtin.cron:
name: APP_HOME
env: yes
state: absent