Назад | Перейти на главную страницу

Лучший способ запустить apt upgrade / dist-upgrade через шеф-повара

Я пытаюсь запустить 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

который больше похож на сценарий оболочки, чем на поварскую книгу. Добавление 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

Ссылка

Это не идемпотентное действие, так что то, что у вас есть, - лучшее, что вы можете сделать, может быть, с еще несколькими охранниками или чем-то, что нужно запускать только один раз в день или еще много чего.