Ubuntu 16.04 LTS でセキュリティーアップデートを自動適用するようにしてみる。
Linux
Ubuntu でセキュリティーアップデートを自動で適用して欲しかったので、自動アップデート周りの設定を確認してみました。
Ubuntu で自動アップデートを設定してみました。今回の環境は Ubuntu 16.04.1 LTS
で、インストールした時から用意されていた設定ファイルを使って調整してみます。
もっとも、もしかすると Ubuntu 16.04.1 LTS では既定でセキュリティーアップデートの自動実行が設定されているようだったので、設定項目の確認みたいな感じになりましたけれど。
50unattended-upgrades を調整する
自動更新を設定するためのファイルは、大きく分けて /etc/apt/apt.conf.d/20auto-upgrades
と /etc/apt/apt.conf.d/50unattended-upgrades
があるみたいですけど、自分の環境に前者はなかったので、今回は後者を使ってみることにしました。
アップデートの種類を指定
今回はセキュリティーアップデートだけを自動更新したかったので、そうなるように /etc/apt/apt.conf.d/50unattended-upgrades
の内容を調整します。
Unattended-Upgrade::Allowed-Origins {
"${distro_id}:${distro_codename}";
"${distro_id}:${distro_codename}-security";
// "${distro_id}:${distro_codename}-updates";
// "${distro_id}:${distro_codename}-proposed";
// "${distro_id}:${distro_codename}-backports";
};
自分の環境では最初から、セキュリティーアップデートの ${distro_id}:${distro_codename}-security
が対象になっていて、通常のアップデートの ${distro_id}:${distro_codename}-updates
はコメントアウトされていたので、これで大丈夫そうです。
自動再起動の設定
それと、アップデート後に必要なら再起動して欲しかったので、次の項目も調整します。
// Automatically reboot *WITHOUT CONFIRMATION*
// if the file /var/run/reboot-required is found after the upgrade
Unattended-Upgrade::Automatic-Reboot "true";
// If automatic reboot is enabled and needed, reboot at the specific
// time instead of immediately
// Default: "now"
Unattended-Upgrade::Automatic-Reboot-Time "02:00";
既定ではどちらもコメントアウトされていたので Unattended-Upgrade::Automatic-Reboot
で自動再起動を有効化して、Unattended-Upgrade::Automatic-Reboot-Time
で再起動の実行タイミングを指定します。
10periodic を調整する
更新間隔についても調整します。こちらは /etc/apt/apt.conf.d/10periodic
で設定されています。既定では APT::Periodic::Update-Package-Lists
が "1" になっていたので、自動更新は有効そうです。
APT::Periodic::Update-Package-Lists "1";
APT::Periodic::Download-Upgradeable-Packages "0";
APT::Periodic::AutocleanInterval "0";
これらの設定の意味は、次の通りのようです。
項目 | 意味 |
---|---|
APT::Periodic::Update-Package-Lists | パッケージリストの更新頻度を日単位で指定します。0 を指定した場合は更新しません。 |
APT::Periodic::Download-Upgradeable-Packages | パッケージをダウンロードする間隔を日単位で指定します。 |
APT::Periodic::AutocleanInterval | 使われていないパッケージを削除するタイミングを日単位で指定します。0 を指定した場合は削除しません。 |
設定完了
これで、おそらく自動更新の設定は完了しました。SSH 接続した時のメッセージを見る限り、特に何かを再起動しなくても、セキュリティーアップデートを自動で行い、必要に応じて指定したタイミングで再起動してくれる様子でした。
動作の様子は、たぶん less /var/log/apt/history.log
で確認できます。このログの中に Commandline: /usr/bin/unattended-upgrade
という記載があるので、これがきっと自動で更新されたパッケージの記録です。