在 Ansible 里“定时任务”通常有两层含义,下面分别说明,并给出常见用法示例。
这是最常见的用法:通过 Ansible 在目标机上创建 / 修改 / 删除 crontab。
cron 模块- name: 添加定时备份任务
ansible.builtin.cron:
name: "backup job"
minute: "0"
hour: "2"
job: "/usr/local/bin/backup.sh"
- name: 每5分钟执行
ansible.builtin.cron:
name: "health check"
minute: "*/5"
job: "/usr/local/bin/check.sh"
- name: 删除定时任务
ansible.builtin.cron:
name: "backup job"
state: absent
- cron:
name: "sync time"
user: www
job: "/usr/sbin/ntpdate pool.ntp.org"
如果你是想定时跑 Ansible Playbook,那是在控制机上做调度。
crontab -e
示例(每天 3 点跑):
0 3 * * * /usr/bin/ansible-playbook /opt/ansible/site.yml >> /var/log/ansible.log 2>&1
⚠️ 注意:
ANSIBLE_CONFIG适合服务器环境。
# /etc/systemd/system/ansible-backup.timer
[Unit]
Description=Run Ansible daily
[Timer]
OnCalendar=*-*-* 03:00:00
Persistent=true
[Install]
WantedBy=timers.target
# /etc/systemd/system/ansible-backup.service
[Unit]
Description=Ansible Playbook
[Service]
Type=oneshot
ExecStart=/usr/bin/ansible-playbook /opt/ansible/site.yml
启用:
systemctl enable --now ansible-backup.timer
适合运维平台化场景。
PATHansible-pull(边缘节点)如果你能说明:
我可以直接给你一份可用 playbook 或 crontab 配置。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。