[英]Remove cron using Ansible
我正在嘗試從所有節點中刪除 cron 作業。 Ansible 腳本運行沒有任何錯誤,但它不會刪除 cron。
這是我的劇本
---
- hosts: all
user: <user_name>
tasks:
- name: disable cron
cron:
name: clean
env: yes
state: absent
user: root
become: True
這是我在目標主機上的 cron。
[root@host1]# crontab -l
#Ansible: None
*/5 * * * * /root/cleanup.sh
#Ansible: None
*/5 * * * * /root/cleanup.sh
#Ansible: clean
*/5 * * * * /root/cleanup.sh
我嘗試將 name 替換為None
、 Ansible: None
、 #Ansible: None
和clean
。 他們都沒有工作。
如何刪除此 cron? 看起來冪等性不適用於 ansible 中的 cron 模塊,因為我運行了兩次放置 cron 並且它放置了兩次 cronjob。
這對我有用(都添加 cron 條目作為刪除):
- name: Enforce cron entries in variable files
hosts: all
become: true
become_user: wls
tasks:
- name: "enforce crontab entries"
cron:
name: "{{ item.name }}"
minute: "{{ item.minute| default('') }}"
hour: "{{ item.hour| default('') }}"
job: "{{ item.job| default('') }}"
state: "{{ state | default('present') }}"
loop: "{{ crontabentries }}"
when:
- crontabentries is defined
- crontabentries| length > 0
- item.state|default('present') != 'absent'
- name: enforce absence of entries
cron:
name: "{{ item.name }}"
state: absent
loop: "{{ crontabentries }}"
when:
- crontabentries is defined
- crontabentries| length > 0
- item.state|default('present') == 'absent'
帶有要刪除的變量文件:
crontabentries:
- name: "somecronjob"
state: absent
或要添加的變量文件:(狀態 = 默認情況下存在,因此無需提及)
crontabentries:
- name: "somecronjob"
minute: "0"
hour: "6"
job: "find /var/log/*.log -mtime +30 -type f -delete"
定義env
您要求刪除環境變量。
- name: disable cron
cron:
name: clean
state: absent
user: root
become: True
看起來冪等性不適用於 Ansible 中的 cron 模塊
它工作正常,所以檢查你的代碼。 如果你有問題,你可以隨時在 SO 上提出另一個問題,但你需要包含代碼。
如果您有非常復雜的 crontab 條目,您也可以通過 ansible 的 shell 模塊將其刪除,如下例所示。
---
- name: Deleting contab entry
hosts: ecx
become: true
tasks:
- name: "decroning entry"
shell:
"crontab -l -u root |grep -v mybot |crontab -u root -"
register: cronout
- debug: msg="{{cronout.stdout_lines}}"
說明:- 您只需將第 8 行的"mybot"
字符串替換為您的 crontab 條目的唯一標識。 而已。 對於“ how to delete multiple crontab entries by ansible
”,您可以在grep
中使用多個字符串,如下所示
"crontab -l -u root |grep -v 'strin1\|string2\|string3\|string4' |crontab -u root -"
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.