我已經在節點上運行sudo chef-client,並且它具有節點內的文件。但是現在我想從節點中刪除軟件包。如果我從廚師服務器刪除run_list中的recipie,它將不會從節點中刪除。如何從廚師的節點中刪除食譜
請告訴我什麼是刪除節點上的軟件包的最佳方式。
我已經在節點上運行sudo chef-client,並且它具有節點內的文件。但是現在我想從節點中刪除軟件包。如果我從廚師服務器刪除run_list中的recipie,它將不會從節點中刪除。如何從廚師的節點中刪除食譜
請告訴我什麼是刪除節點上的軟件包的最佳方式。
Chef中的每個資源都有一個或多個操作。通常情況下,默認行爲是沿着install
或create
行的,但它們通常也提供相反的結果。在這種情況下,您需要使用如下資源製作新配方(或更改現有的配方):
package 'foo' do
action :remove
end
我首先想到的將是一個卸載配方,但感覺就像是一種反模式,因爲我們只想卸載一次,真的不是我們每次運行它都會有點奇怪。
這是一個可重複的服務器定義,你可能想旋轉其他副本?如果是這樣,我會說手動刪除可能是最乾淨的,並讓您的角色定義或運行列表定義跨機器保持一致。
另一種選擇,如果你真的想它的代碼並把它在廚師在默認的食譜有指示是否應該「啓用」或「安裝」
if node['your_package']['enabled'].eql?("false")
uninstall_it_if_installed()
else
install_it_if_missing()
end
我再次」它的屬性我不確定這是乾淨的還是廚師必須做的,但它可能會讓你想要去的地方。
另一種選擇是使用您希望保存爲角色「myServerType」的運行列表定義將機器吹走並重新啓動。我認爲紙是最乾淨的解決方案,但當然可能有很多原因不適合