温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

怎样用Ansible定时任务

发布时间:2026-09-21 05:39:51 来源:亿速云 阅读:93 作者:小樊 栏目:系统运维

在 Ansible 里“定时任务”通常有两层含义,下面分别说明,并给出常见用法示例。


一、用 Ansible 管理远程主机的定时任务(cron)

这是最常见的用法:通过 Ansible 在目标机上创建 / 修改 / 删除 crontab。

1️⃣ 使用 cron 模块

示例:每天凌晨 2 点执行备份脚本

- name: 添加定时备份任务
  ansible.builtin.cron:
    name: "backup job"
    minute: "0"
    hour: "2"
    job: "/usr/local/bin/backup.sh"

示例:每 5 分钟执行一次

- 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 本身“定时执行”(调度 Ansible)

如果你是想定时跑 Ansible Playbook,那是在控制机上做调度。

方法 1:Linux crontab(最常用)

crontab -e

示例(每天 3 点跑):

0 3 * * * /usr/bin/ansible-playbook /opt/ansible/site.yml >> /var/log/ansible.log 2>&1

⚠️ 注意:

  • 使用绝对路径
  • 配置好 SSH 免密
  • 可加 ANSIBLE_CONFIG

方法 2:systemd timer(更现代)

适合服务器环境。

# /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

方法 3:Ansible AWX / Tower(企业级)

  • Web 界面
  • 可视化定时任务
  • 支持通知、权限、日志

适合运维平台化场景。


三、常见坑提醒

  • cron 环境非常“干净”,注意 PATH
  • 日志一定要重定向
  • 不要在 cron 里跑交互式 playbook
  • 生产建议用 ansible-pull(边缘节点)

如果你能说明:

  • 是 远程主机 cron
  • 还是 定时跑 Ansible
  • 操作系统(CentOS / Ubuntu)

我可以直接给你一份可用 playbook 或 crontab 配置。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI
助
手