Contents
Overview
Ubuntu はデフォルトで自動アップデートが有効になっています。本稿では自動アップデートのメール通知設定を追加します。
前提条件
- こちらを参考にローカル MTA 設定が完了していること。
インストール
自動システムアップデートに必要なサービスは unattended-upgrades です。unattended-upgrades はデフォルトでインストールされています。
/etc/apt/apt.conf.d/20auto-upgrades
Update-Package-Lists が apt-get update、nattended-Upgrade が apt-get upgrade に相当します。何れも 1(デフォルト値)が有効な値です。プロダクション環境では自動アップデートをさせない運用も多いと思いますので、その場合は 0 に変更します。
myadmin@ubuntu:~$ cat /etc/apt/apt.conf.d/20auto-upgrades
APT::Periodic::Update-Package-Lists "1";
APT::Periodic::Unattended-Upgrade "1";
unattended-upgrades の有効性はログで確認できます。下記の例の通り /var/log/apt/history.log
の Commandline が /usr/bin/unattended-upgrade
となっており、手動で APT コマンドを実行した場合とは異なるログです。
myadmin@ubuntu:~$ cat /var/log/apt/history.log
Start-Date: 2022-05-23 03:38:34
Commandline: /usr/bin/unattended-upgrades -v
Upgrade: python3-problem-report:amd64 (2.20.11-0ubuntu82, 2.20.11-0ubuntu82.1)
End-Date: 2022-05-23 03:38:34
/etc/apt/apt.conf.d/50unattended-upgrades
unattended-upgrades のデフォルト値ではアップデート時の通知を行いません。50unattended-upgrades にメール通知設定を追加できます。
デフォルト値
デフォルト値は全てコメントアウトされています。
設定値
Unattended-Upgrade::Mail で指定したメールアドレスに通知されます。
myadmin@ubuntu:~$ sudo cp /etc/apt/apt.conf.d/50unattended-upgrades /etc/apt/apt.conf.d/50unattended-upgrades.orig
myadmin@ubuntu:~$ sudo tee /etc/apt/apt.conf.d/50unattended-upgrades <<"EOF"
Unattended-Upgrade::Allowed-Origins {
"${distro_id}:${distro_codename}";
"${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::Mail "myadmin@si1230.com";
EOF
設定の有効化
myadmin@ubuntu:~$ sudo systemctl restart unattended-upgrades.service && systemctl status unattended-upgrades.service
ローカル MTA 設定
CentOS の dnf-automatic は単独で自動更新時のメール通知が可能でしたが、Ubuntu の unattended-upgrades のメール通知にはローカル MTA が必要です。こちらを参考に設定して下さい。
設定に問題が無ければアップデート時に下記のようなメールが送信されます。メール送信のデバッグはできないため確認には数日待つ必要があります。
Subject:
unattended-upgrades result for ubuntu.si1230.com: SUCCESS
Body:
Unattended upgrade result: All upgrades installed Packages that were upgraded: libssl3 openssl Package installation log: Log started: 2022-06-23 06:48:41 Preparing to unpack .../openssl_3.0.2-0ubuntu1.5_amd64.deb ... Unpacking openssl (3.0.2-0ubuntu1.5) over (3.0.2-0ubuntu1.2) ... Setting up openssl (3.0.2-0ubuntu1.5) ... Installing new version of config file /etc/ssl/openssl.cnf ... Processing triggers for man-db (2.10.2-1) ... NEEDRESTART-VER: 3.5 NEEDRESTART-KCUR: 5.15.0-39-generic NEEDRESTART-KEXP: 5.15.0-39-generic NEEDRESTART-KSTA: 1 Log ended: 2022-06-23 06:48:44 Log started: 2022-06-23 06:48:44 Preconfiguring packages ... Preconfiguring packages ... Preparing to unpack .../libssl3_3.0.2-0ubuntu1.5_amd64.deb ... Unpacking libssl3:amd64 (3.0.2-0ubuntu1.5) over (3.0.2-0ubuntu1.2) ... Setting up libssl3:amd64 (3.0.2-0ubuntu1.5) ... Processing triggers for libc-bin (2.35-0ubuntu3) ... NEEDRESTART-VER: 3.5 NEEDRESTART-KCUR: 5.15.0-39-generic NEEDRESTART-KEXP: 5.15.0-39-generic NEEDRESTART-KSTA: 1 NEEDRESTART-SVC: apt-daily-upgrade.service NEEDRESTART-SVC: named.service NEEDRESTART-SVC: packagekit.service NEEDRESTART-SVC: postfix@-.service NEEDRESTART-SVC: ssh.service NEEDRESTART-SVC: systemd-journald.service NEEDRESTART-SVC: systemd-logind.service NEEDRESTART-SVC: systemd-manager NEEDRESTART-SVC: systemd-networkd.service NEEDRESTART-SVC: systemd-resolved.service NEEDRESTART-SVC: systemd-timesyncd.service NEEDRESTART-SVC: systemd-udevd.service NEEDRESTART-SVC: udisks2.service Log ended: 2022-06-23 06:48:47 Unattended-upgrades log: Starting unattended upgrades script Allowed origins are: o=Ubuntu,a=jammy, o=Ubuntu,a=jammy-security, o=UbuntuESMApps,a=jammy-apps-security, o=UbuntuESM,a=jammy-infra-security Initial blacklist: Initial whitelist (not strict): Packages that will be upgraded: libssl3 openssl Writing dpkg log to /var/log/unattended-upgrades/unattended-upgrades-dpkg.log All upgrades installed