我当前正在编辑特定用户的 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 游戏中:
---
- name: Disable cron mailing to root
cronvar:
name: MAILTO
value: "\"\""
这运行时没有错误,但不会创建如上所述的预期结果。
我从另一个post复制了这个,但这仅在创建
/etc/cron.d
文件时有效,而我的工作不这样做。
如何才能用我原来的玩法得到预期的结果?
从技术上讲,我可以使用
lineinfile
模块并通过手动将 /var/spool/cron/exampleuser
添加到其顶部来手动编辑 MAILTO=""
文件,但据我所知,这被认为是不好的做法,并且不是合法的解决方案。
提前致谢。
看来我没有正确阅读文档。看到 user 属性(默认为 root),我添加了我的特定用户,并且我的问题已得到解决。对于其他人来说,我的玩法现在看起来像这样:
---
- 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
作为示例用户现在给了我这个:
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
您可以指定
cron_file
指令将 cronvar 应用于某些 crons
---
# Set MAILTO
- name: MAILTO for some crons
community.general.cronvar:
name: MAILTO
value: "\"\""
user: root
cron_file: "{{ item }}"
loop:
- cron_file_1
- cron_file_2
- cron_file_3
...