Better way of running apt upgrade / dist-upgrade via chef

I am trying to run apt-get dist-upgrade via chef cookbook. I am aware that running apt-get upgrade in cookbook is not generally recommended (https://stackoverflow.com/questions/15080876/apt-get-update-and-apt-get-upgrade-in-chef#15093460), but we control our ubuntu mirrors and any packages will get into that mirror only after thorough testing, so running dist-upgrade is fine.

What I have currently in my cookbook is

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

which looks more like a shell script rather than a chef cookbook. Adding apt cookbook will run apt-get update but I didn't find a better way of doing things for apt dist-upgrade.

Even this https://supermarket.chef.io/cookbooks/apt-upgrade-once cookbook does in the same fashion.

How can this be done in a better manner via chef cookbook?

I am looking for answers via cookbooks only not by cron/unattendedupgrades (As I am aware doing things via cron/unattendedupgrades).

Update:

apt update can be better run by

apt_update 'update' do
  action :update
end

Reference

1
задан 1 September 2017 в 11:49
1 ответ

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

2
ответ дан 3 December 2019 в 20:20

Теги

Похожие вопросы