配置管理工具(Puppet、Chef)是否能夠使已安裝的軟體包保持最新?
對於那些已經在執行配置管理工具的人來說,這可能是一個簡單的問題。配置管理工具(例如 Puppet 或 Chef)是否是保持已安裝軟體包最新的正確方法?
假設我執行許多伺服器,主要基於 Debian 和 Ubuntu。當安全更新或錯誤修復出現時,配置管理工具是否可以更輕鬆地更新從儲存庫安裝的軟體包?
我目前執行“無人值守升級”以讓系統自動安裝安全更新,但我仍然需要連接到伺服器並
aptitude update && aptitude safe-upgrade
經常執行。自然,伺服器越多,這就會變得乏味、乏味且容易出錯。諸如 Puppet 或 Chef 之類的工具是否是使已安裝軟體包保持最新的正確方法?你們中是否有人使用這些工具來避免
aptitude
在 15 台伺服器上手動執行或等效?我很確定這些問題的答案是“是的,當然!”但是我在哪裡可以找到有關此特定案例的更多資訊?我還沒有時間深入研究 Puppet 或 Chef,範例食譜或課程僅顯示了安裝特定軟體包(例如 ssh)的或多或少的瑣碎範例。除了官方文件之外,您還有其他資源可以推薦(當然,一旦我知道哪些工具適合我,我就會去研究文件)。
Puppet(我很確定 chef 也這樣做)與您的apt-get / yum軟體儲存庫相關聯。由於他們負責確定哪些軟體包可用,這意味著
ensure => latest
只適用於 Ubuntu/CentOS/Debian 等。只要您正確設置了適當的文件(/etc/apt/sources.list
等)。
你可以用 puppet 來做,你可以:
ensure => latest,
要麼
ensure=> "1.0.2",
指定最新/所需的版本。IE
package { apache2: ensure => "2.0.12-2" } package { apache2: ensure => latest }
這至少意味著您可以在所有系統中指定相同的版本,並防止伺服器(可能很危險)自動升級自身。我已經在許多站點的生產中使用了這種方法,並且效果很好。
執行無人值守升級讓我有點害怕,特別是如果他們正在升級關鍵任務包、核心、mysql 庫、apache 等。特別是如果安裝腳本可能想要重新啟動服務!