如果package "nginx"
在廚師被轉換爲apt-get install nginx
Ubuntu的節點上,什麼可以在廚師的食譜,這會造成這樣寫:apt-get的更新和apt-get升級廚師
apt-get -y update
apt-get -y upgrade
未能進行從apt
cookbook找出。
如果package "nginx"
在廚師被轉換爲apt-get install nginx
Ubuntu的節點上,什麼可以在廚師的食譜,這會造成這樣寫:apt-get的更新和apt-get升級廚師
apt-get -y update
apt-get -y upgrade
未能進行從apt
cookbook找出。
The Opscode "apt" cookbook的默認配方將運行apt-get update
以確保更新包緩存。我們建議儘早將它放在節點的運行列表中,以便以後可以使用正確的版本安裝軟件包。
由於某些原因,我們通常不建議用戶在配方中使用「apt-get upgrade
」。
apt-get
可以升級,其具有衝突的配置或其他問題不能沒有再次運行命令,或手動運行其他APT/dpkg的命令被解析的包裝。對於應始終更新到最新版本的軟件包,請使用「升級」操作。
package "nginx" do
action :upgrade
end
如果你打算重用的一本菜譜,它定義了菜譜,你可以寫一個食譜,修改現有資源的作用,就像這樣:
resources("package[nginx]").action(:upgrade)
,配方中的#resources
方法在Resource Collection中查找指定的資源(包nginx)。然後發送#action
方法與參數:upgrade
將告訴大廚,行動應該是升級。
編輯更新:選擇會以這種方式自動升級包時一定要小心。封裝中的上游更改可能會對系統造成不利影響。如果這樣的程序包重新啓動它在後安裝腳本中管理的服務,情況尤其如此。瞭解您的基礎架構,如果有疑問,請運行您自己的軟件包存儲庫,該存儲庫具有您需要的用於應用程序堆棧的關鍵軟件包
公寓廚師食譜不會隨着每位廚師的跑步而更新。控制這個的屬性被稱爲periodic_update_min_delay
並被設置爲86400(該屬性應該被稱爲sec_delay)。如果以下文件存在並且超過24小時,apt將更新緩存。
/var/lib/apt/periodic/update-success-stamp
它也看起來,apt配方(default.rb)包含一個指令,強制您的配方可以調用更新。
# For other recipes to call to force an update
execute 'apt-get update' do
如果你這樣做,雖然,你會想要一個not_if避免運行過於頻繁,此時你還不如手動調用它自己。我厭倦了這一切,最終只是在安裝之前在節中調用apt-get update。
execute "apt-get-update" do
command "apt-get update"
end
我懷疑安全更新的長期解決方案是將更新延遲設置爲幾個小時。
請問這個https://github.com/patdeegan/chef-unattended-upgrades有幫助嗎? – favoretti 2013-02-26 03:41:08
我是這麼認爲的,但如果有更輕的解決方案,我很感興趣。 – 2013-02-26 12:40:36