Configuration-Management
在 SaltStack 執行期間關閉 Cron
如果我們用 SaltStack 更新我們的系統,這大約需要 40 秒。
在這 40 秒內,系統的狀態並不一致。
如果有在此期間啟動的 cron 作業,它們很可能會產生奇怪的錯誤。
當然,我們可以完全改變我們的設置並使用容器。這將使原子更新成為可能。但這需要大量的工作,而今天無法處理。
如果鹽被執行,有沒有辦法在minion上禁用cron作業?
要完全禁用 cron 作業,您可以簡單地關閉
cron
守護程序(它通常crond
在 CentOS 和cron
Ubuntu 伺服器中)。您可以直接在 salt run 中停止和啟動它。
如果您只需要為某些特定的 cron 作業禁用 cron 執行,您可以創建一個腳本(我們稱之為
run-crons
)並使用它來禁用特定的 cron 執行。例如,您可以創建類似於以下內容的 cron 條目:
* * * * * root run-crons && echo "this is my actual cron job"
run-crons
腳本類似於#!/bin/bash set -e [ -f /etc/disabled/crons ] && exit 10 exit 0
因此,如果
/etc/disabled/crons
存在,則前面的那些特定 cronrun-crons
行將不會執行。您也可以在鹽執行期間創建/刪除禁用文件要在 salt 執行時停止
cron
守護程序,只需包含如下狀態:stop_cron: service.dead: - name: cron - order: 1 start_cron: service.running: - name: cron - order: last
您可能需要根據您的 linux 發行版調整 cron 守護程序的名稱
順便說
run-crons
一下,包括一個 .sls 類似的東西:disable_cron: file.managed: - name: /etc/disabled/cron - replace: false - order: 1 enable_cron: file.absent: - name: /etc/disabled/cron - order: last