Ubuntu

通過廚師執行 apt upgrade / dist-upgrade 的更好方法

  • September 1, 2017

我正在嘗試通過廚師食譜執行 apt-get dist-upgrade。我知道通常不建議在食譜中執行 apt-get upgrade ( https://stackoverflow.com/questions/15080876/apt-get-update-and-apt-get-upgrade-in-chef#15093460 ),但是我們控制著我們的 ubuntu 鏡像,任何包只有在經過徹底測試後才能進入該鏡像,所以執行 dist-upgrade 就可以了。

我目前在我的食譜中是

execute "apt update" do
   command "apt-get -y update"
end
execute "apt dist-upgrade" do
   command 'DEBIAN_FRONTEND=noninteractive apt-get -fuy -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold" dist-upgrade'
end
execute "apt autoremove" do
   command "apt-get -y autoremove"
end

它看起來更像是一個 shell 腳本而不是廚師食譜。添加 apt cookbook 會執行apt-get update,但我沒有找到更好的方法來進行 apt dist-upgrade。

甚至這本https://supermarket.chef.io/cookbooks/apt-upgrade-once食譜也是如此。

如何通過廚師食譜以更好的方式做到這一點?

我只是通過食譜而不是通過 cron/unattendedupgrades 尋找答案(據我所知,通過 cron/unattendedupgrades 做事)。

更新:

apt update 可以更好地執行

apt_update 'update' do
 action :update
end

參考

這不是一個冪等動作,所以你所擁有的就是你能做的最好的事情,也許有更多的守衛或者每天只執行一次的東西等等。

引用自:https://serverfault.com/questions/865003