在 Ansible 中为单个用户调整 crontab MAILTO

Adjusting crontab MAILTO for single user in Ansible

我目前正在像这样编辑特定用户的 crontab 条目:

---
- name: Create example cron entry
  cron:
      name: "Examplecrontab entry"
      minute: "5"
      hour: "5"
      day: "5"
      user: exampleuser
      job: "examplejob"
      state: present

这会在我用户的 crontab (crontab -l) 中创建以下条目:

#Ansible: Example cron entry
5 5 5 * * examplejob

我想将 MAILTO="" 添加到该用户的 crontab 的顶部。结果应该如下:

MAILTO=""
#Ansible: Example cron entry
5 5 5 * * examplejob

我试过将它添加到我的 ansible play 中:

---
- name: Disable cron mailing to root
  cronvar:
    name: MAILTO
    value: "\"\""

这运行没有错误,但没有产生如上所述的预期结果。

我从另一个 复制了这个,但这只在创建 /etc/cron.d 文件时有效,而我的工作不这样做。

怎样才能让自己的原创玩法达到预期的效果?

从技术上讲,我可以使用 lineinfile 模块并手动编辑 /var/spool/cron/exampleuser 文件,方法是在其顶部手动添加 MAILTO="",但据我所知,这被认为是不好的做法并且不是合法的解决方案。

提前致谢。

看来我没有正确阅读文档。看到默认为 root 的 user 属性,我添加了我的特定用户,我的问题已得到解决。对于其他人,我现在的玩法是这样的:

---
- name: Disable cron mailing to root
  cronvar:
    name: MAILTO
    value: "\"\""
    user: exampleuser

- name: Create example cron entry
  cron:
      name: "Examplecrontab entry"
      minute: "5"
      hour: "5"
      day: "5"
      user: exampleuser
      job: "examplejob"
      state: present

crontab -l 作为 exampleuser 现在给我这个:

MAILTO=""
#Ansible: Example cron entry
5 5 5 * * examplejob

我想你要找的是cronvar_module

例如:

---
- name: Create example cron entry
  cron:
      name: "Examplecrontab entry"
      minute: "5"
      hour: "5"
      day: "5"
      user: exampleuser
      job: "examplejob"
      state: present

- name: MAILTO exists for user username
  cronvar:
    name: MAILTO
    user: username
    value: "\"\""
    state: present
    

MAILTO=""
#Ansible: test