2016-07-28 30 views
3

我正在使用Ansible使用cron_file參數創建cron.d文件。如何將MAILTO添加到Ansible的cron.d cron_file中?

但是,如何添加一個MAILTO文件?

看來env = true只是用於crontab,而不是cron.d文件。我錯了嗎?

+0

的官方文檔,我用我自己的帶有'copy'模塊的文件。如果你沒有找到用'cron'模塊指定變量的方法,你可以使用這種方法。 –

+0

你給了我一個好主意。在創建cron文件後,我只是循環遍歷,並使用帶有'insertbefore:BOF'的'lineinfile'模塊來預先配置MAILTO命令。 – Nathan

回答

6

由於Ansible 2.0你有cronvar命令:

# modify /etc/cron.d/sweep_for_rebel_code 
- cronvar: 
    name: MAILTO 
    value: [email protected] 
    cron_file: sweep_for_rebel_code 

看到http://docs.ansible.com/ansible/cronvar_module.html

+1

如果你想將'MAILTO'設置爲'「」'來禁用郵件,你應該使用'value:「\」\「」',否則你會得到可靠的錯誤'失敗! => {「changed」:false,「msg」:「\」/ tmp/crontabPbSYxL \「:0:在crontab文件中錯誤的分鐘\ nerrors,無法安裝。\ n」}「(經過2.4測試)。 – deterralba

1

這對我的作品與ansible 2.1:

- cron: 
    cron_file: ansible_test 
    env: "{{ item.env }}" 
    name: "{{ item.name }}" 
    job: "{{ item.job }}" 
    user: vagrant 
    with_items: 
    - env: true 
     name: MAILTO 
     job: [email protected] 
    - env: false 
     name: cmd 
     job: /bin/true 
+0

所以如果我有另一個任務,cronf_file,我只是創建一個更多隻爲env參數? – Nathan

+0

其實,這似乎只改變了crontab,而不是一個cron.d文件 – Nathan

+0

我的playbook片段創建/etc/cron.d/ansible_test MAILTO =「[email protected]」變量集(我測試過了) 。這不是你的任務嗎? –

相關問題