セキュリティパッケージをインストールし、インストール時にメールで通知するように無人アップグレードを構成しました。
インストールが非常にランダムに発生することに気付きました。最新バージョンでは、cron.dailyの実行時間から最大30分のランダムな遅延が追加されたことを知っています。
しかし、私が経験している遅延はそれよりはるかに大きいです。午前9時、午後3時、午前12時に無人アップグレードが実行されるのを確認します。
無人アップグレードタスクはcron.dailyの最初のタスクです。つまり、実行時間が非常に長い以前のタスクはありません。
誰も同じようなことを経験しましたか?
これをデバッグした後、私は解決策を見つけました。
この問題の根本的な原因は、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
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つのシステム化されたオーバーライドがあることが判明しました。
/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で上書き