web-dev-qa-db-ja.com

Ubuntu 16.04:無人アップグレードがランダムに実行されます

セキュリティパッケージをインストールし、インストール時にメールで通知するように無人アップグレードを構成しました。

インストールが非常にランダムに発生することに気付きました。最新バージョンでは、cron.dailyの実行時間から最大30分のランダムな遅延が追加されたことを知っています。

しかし、私が経験している遅延はそれよりはるかに大きいです。午前9時、午後3時、午前12時に無人アップグレードが実行されるのを確認します。

無人アップグレードタスクはcron.dailyの最初のタスクです。つまり、実行時間が非常に長い以前のタスクはありません。

誰も同じようなことを経験しましたか?

11
daniel f.

これをデバッグした後、私は解決策を見つけました。

この問題の根本的な原因は、Ubuntu 16.04以降では、無人アップグレードがcronではなくsystemdを使用して、大幅にランダム化された遅延で更新をスケジュールすることにあります。

/lib/systemd/system/apt-daily.timerはで構成されます

OnCalendar=*-*-* 6,18:00
RandomizedDelaySec=12h

つまり、1日2回、6:00と18:00に実行され、最大12時間のランダムな遅延が発生します。これは実稼働環境では常に受け入れられるとは限らないため、これらの設定をオーバーライドする必要がありました。

パッケージ構成ファイルに手を加えないために、/etc/systemd/system/apt-daily.timer.d/override.confでオーバーライドを定義しました(フォルダーとファイルを作成する必要がありました)。

そこに私は設定しました

[Timer]
OnCalendar=
OnCalendar=06:00
RandomizedDelaySec=1h

無人アップグレードを6:00に実行し、さらに最大1時間のランダムな遅延を実行します。

次に、systemctl restart apt-daily.timerでタイマーを再起動しました(最終的にはデーモンをリロードする必要があります)。

無人更新が予測可能な時間に再び実行されるようになりました!

編集:Ubuntu 18.04の状況は少し変わったように思えます。オーバーライドは/etc/systemd/system/apt-daily-upgrade.timer.d/override.confに保存され、次のようになります。

[Timer]
OnCalendar=*-*-* 6:00
RandomizedDelaySec=1h
16
daniel f.

https://wiki.debian.org/UnattendedUpgrades に関する公式のdebianドキュメントには、現在多くの人々を誤解させる間違いがあります。というファイルを作成することでアップグレード時間を上書きできると主張しています

/etc/systemd/system/apt-daily-upgrade.d/override.conf

ただし、正しいパスは

/etc/systemd/system/apt-daily-upgrade.timer.d/override.conf
2
Rolf Wojtech

ダニエルのソリューションを試しましたが、アップグレードはまだ間違った時間に実行されました。必要な2つのシステム化されたオーバーライドがあることが判明しました。

ダウンロードに使用

/lib/systemd/system/apt-daily.timer-/etc/systemd/system/apt-daily.timer.d/override.confでオーバーライド

アップグレードに使用

/lib/systemd/system/apt-daily-upgrade.timer-/etc/systemd/system/apt-daily-upgrade.timer.d/override.confで上書き

1
Niels Rask