You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Ansible更新root用户crontab并解决权限报错问题

错误原因

你对become参数的用法存在误解:become: true是Ansible的任务级/Play级全局参数,不属于cron模块的内置参数,不能写在cron模块的参数块中,并非cron模块不支持become。
报错must be privileged to use -u的根因是:你当前执行任务的远程普通用户没有权限为root用户创建crontab规则。

解决方案(最推荐,完全匹配sudo crontab -e的执行效果)

将become: true写在与任务name同级的位置,以root权限执行整个cron任务即可,修改后配置如下:

- name: foo
  become: true
  ansible.builtin.cron:
    name: "bar"
    minute: "*/5"
    job: "/home/mytask.sh"
    # 已通过become切换为root执行,user: root可省略,保留也不影响

验证方法

任务执行成功后,登录目标主机执行sudo crontab -u root -l,即可看到新增的定时任务。


内容的提问来源于stack exchange,提问作者Nakrule

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 12:15:03