この記事では、Ubuntu 26.04 で unattended-upgrades を使い、セキュリティ更新を自動適用する基本設定を整理します。すべての更新を無条件に自動化するのではなく、対象 origin、再起動方針、確認方法を分けて考えることが重要です。
サーバー運用では、パッケージ更新を完全に手作業へ寄せると、重要なセキュリティ更新が遅れやすくなります。一方で、すべての更新を無条件に自動適用すると、意図しない再起動や互換性問題を招くことがあります。
unattended-upgrades は、この中間にある仕組みです。Ubuntu 26.04 では、セキュリティ更新を自動適用しつつ、再起動や対象 origin を明示して、運用として読める形にしておくのが扱いやすいです。
unattended-upgrades の位置づけ
unattended-upgrades は、APT の定期処理として、指定された origin から提供される更新を自動的に適用する仕組みです。主な用途はセキュリティ更新の取りこぼしを減らすことです。
| 項目 | 考え方 |
| 対象 | 主に security origin のパッケージ更新 |
| 目的 | 脆弱性対応の遅れを減らす |
| 注意点 | 自動再起動、対象 origin、除外パッケージを明示する |
| 確認 | APT periodic 設定、unattended-upgrades 設定、service 状態、ログを確認する |
重要なのは、apt upgrade の代わりに何でも自動実行するものとして扱わないことです。セキュリティ更新を自動化するのか、通常更新まで含めるのか、再起動まで許可するのかを分けて決めます。
unattended-upgrades をインストールする
まずパッケージをインストールし、サービスの状態を確認します。
sudo apt update
sudo apt install -y unattended-upgrades
systemctl status unattended-upgrades.service --no-pagerunattended-upgrades.service は、常時処理を実行し続けるというより、APT periodic の設定と組み合わせて動く仕組みです。サービス状態だけでなく、設定ファイルの中身も合わせて確認します。
APT periodic を有効化する
/etc/apt/apt.conf.d/20auto-upgrades で、パッケージリスト更新と自動更新を有効にします。
sudo tee /etc/apt/apt.conf.d/20auto-upgrades >/dev/null <<'EOF'
APT::Periodic::Update-Package-Lists "1";
APT::Periodic::Unattended-Upgrade "1";
EOF
sudo chmod 0644 /etc/apt/apt.conf.d/20auto-upgrades| 設定 | 意味 |
APT::Periodic::Update-Package-Lists | 定期的にパッケージリストを更新する |
APT::Periodic::Unattended-Upgrade | unattended-upgrades による自動更新を有効にする |
ここでは値を 1 にしています。無効化する場合は 0 にします。
自動適用する origin を絞る
/etc/apt/apt.conf.d/50unattended-upgrades では、自動適用する origin、除外パッケージ、自動再起動の扱いを設定します。
sudo tee /etc/apt/apt.conf.d/50unattended-upgrades >/dev/null <<'EOF'
Unattended-Upgrade::Allowed-Origins {
"${distro_id}:${distro_codename}-security";
"${distro_id}ESMApps:${distro_codename}-apps-security";
"${distro_id}ESM:${distro_codename}-infra-security";
};
Unattended-Upgrade::Package-Blacklist {
};
Unattended-Upgrade::DevRelease "auto";
Unattended-Upgrade::Automatic-Reboot "false";
Unattended-Upgrade::Automatic-Reboot-Time "04:00";
EOF
sudo chmod 0644 /etc/apt/apt.conf.d/50unattended-upgrades
sudo systemctl restart unattended-upgrades.serviceこの例では、通常更新ではなく security origin を対象にしています。ESM Apps や ESM Infra は、Ubuntu Pro の利用状況によって意味が変わります。利用していない環境では対象パッケージが存在しないこともありますが、方針として security 系に絞っている点が重要です。
自動再起動は慎重に扱う
自動再起動は便利ですが、サーバー運用では慎重に扱うべきです。この記事の設定では Unattended-Upgrade::Automatic-Reboot "false"; とし、更新適用と再起動判断を分けています。
- セキュリティ更新は自動適用する
- 再起動が必要かどうかは別途確認する
- メンテナンス時間帯や冗長構成を踏まえて再起動する
- サービス影響が大きいホストでは自動再起動を避ける
再起動まで自動化するかどうかは、単体サーバー、クラスタ、ロードバランサ配下、Kubernetes node など、対象ホストの役割によって変わります。少なくとも、全ホストで一律に自動再起動を有効化するのは避けた方が安全です。
設定とログを確認する
設定後は、dry-run とログで挙動を確認します。
sudo unattended-upgrade --dry-run --debug
systemctl status unattended-upgrades.service --no-pager
journalctl -u unattended-upgrades.service --no-pager -n 80
ls -l /var/log/unattended-upgrades
sudo grep -R "Unattended-Upgrade" /etc/apt/apt.conf.d/20auto-upgrades /etc/apt/apt.conf.d/50unattended-upgrades--dry-run は、実際に適用する前に対象や処理の流れを確認するために使います。ログは /var/log/unattended-upgrades 配下にも出力されるため、systemd journal と合わせて確認します。
通常更新とは分けて考える
unattended-upgrades を入れても、通常の更新確認が不要になるわけではありません。セキュリティ更新を自動化しつつ、通常更新、カーネル更新、再起動、サービス影響は別の運用として確認します。
| 作業 | 扱い |
| security update | unattended-upgrades で自動適用しやすい |
通常の apt upgrade | 手動確認やメンテナンス作業として扱う |
| 再起動 | 自動適用とは分けて判断する |
| 互換性確認 | 重要なミドルウェアやアプリケーションでは別途確認する |
更新管理は、自動化するか手動にするかの二択ではありません。自動化してよい範囲と、人間が判断すべき範囲を分けることが重要です。
まとめ
Ubuntu 26.04 で unattended-upgrades を使うと、セキュリティ更新の適用漏れを減らせます。ただし、すべてを自動化するのではなく、対象 origin、除外パッケージ、自動再起動の扱いを明示する必要があります。
unattended-upgradesをインストールする20auto-upgradesで APT periodic を有効化する50unattended-upgradesで security origin を指定する- 自動再起動は原則として慎重に扱う
unattended-upgrade --dry-run --debugとログで確認する
セキュリティ更新は早く適用したい一方で、サーバーの再起動や互換性影響は別の判断が必要です。unattended-upgrades は、更新作業を丸投げする仕組みではなく、更新対象と運用判断の境界を明確にするための仕組みとして扱うのがよいです。



