【发布时间】:2020-04-12 10:33:39
【问题描述】:
我以为用 Ansible cron 模块配置 crontab 会是小菜一碟,但有些地方我看不懂。
这是我写的简单任务:
- name: Add job triggering logs rotation.
cron:
name: 'logrotate'
minute: '*/2'
job: '/etc/cron.daily/logrotate'
state: present
tags: cronjob
当我运行它时,Ansible 的输出正如我所想的那样成功:
TASK [cron : Add job triggering logs rotation.] **************************************************************************************
task path: /home/vagrant/ansible/roles/cron/tasks/main.yml:3
Thursday 19 December 2019 19:31:05 +0000 (0:00:00.023) 0:00:02.427 *****
Using module file /usr/lib/python3/dist-packages/ansible/modules/system/cron.py
<127.0.0.1> ESTABLISH SSH CONNECTION FOR USER: None
<127.0.0.1> SSH: EXEC ssh -C -o ControlMaster=auto -o ControlPersist=60s -o KbdInteractiveAuthentication=no -o PreferredAuthentications=gssapi-with-mic,gssapi-keyex,hostbased,publickey -o PasswordAuthentication=no -o ConnectTimeout=10 -o 127.0.0.1 '/bin/sh -c '"'"'sudo -H -S -u root /bin/sh -c '"'"'"'"'"'"'"'"'echo BECOME-SUCCESS-; /usr/bin/python'"'"'"'"'"'"'"'"' && sleep 0'"'"''
Escalation succeeded
<127.0.0.1> (0, b'\n{"envs": [], "invocation": {"module_args": {"name": "logrotate", "insertbefore": null, "state": "present", "cron_file": null, "reboot": false, "hour": "*", "month": "*", "disabled": false, "job": "/etc/cron.daily/logrotate", "special_time": null, "user": null, "env": null, "insertafter": null, "backup": false, "day": "*", "minute": "*/2", "weekday": "*"}}, "changed": true, "jobs": ["logrotate"], "warnings": []}\n', b'')
changed: [127.0.0.1] => {
"changed": true,
"envs": [],
"invocation": {
"module_args": {
"backup": false,
"cron_file": null,
"day": "*",
"disabled": false,
"env": null,
"hour": "*",
"insertafter": null,
"insertbefore": null,
"job": "/etc/cron.daily/logrotate",
"minute": "*/2",
"month": "*",
"name": "logrotate",
"reboot": false,
"special_time": null,
"state": "present",
"user": null,
"weekday": "*"
}
},
"jobs": [
"logrotate"
]
}
但是,当我检查 /etc/crontab/ 时,输出不存在。
我想要实现的目标是在/etc/crontab/:
*/5 * * * * /etc/cron.daily/logrotate
默认情况下应该将此作业添加到根 crontab,但我也会检查我的用户 contab 以确保它不存在并且不存在。
现在,每次我尝试运行任务时,Ansible 的输出都是OK。我不知道它是在哪里添加的,也不知道出了什么问题。
知道发生了什么吗?
【问题讨论】: