UbuntuServerでセキュリティアップデートのみ行わせる(手動・自動)

Ubuntu Serverでセキュリティアップデートのみを行わせるには、yumと違ってapt-get(apt)だけだとできないようだ。
じゃあどうすればいいのかというと、「unattended-upgrades」というパッケージを利用するといいようだ。このパッケージ、手動だけではなく自動でのセキュリティアップデートを行わせることもできるようだ。今回は、UbuntuServer 16.04でこの確認を行う。

1.unattended-upgradesのインストール・設定

まずは、以下のコマンドでunattended-upgradesのインストールを行う。
(Ubuntu Server 16.04ではバンドルされてると思うが、念のため)

sudo apt-get install unattended-upgrades

次に設定を確認し、最低限やっておきたい設定だけしておく。
以下のコマンドを実行して、現在の設定状態を確認する(とりあえず、「Unattended-Upgrade::Allowed-Origins」で「"${distro_id}:${distro_codename}-security";」だけが有効になってればよい)。

cat /etc/apt/apt.conf.d/50unattended-upgrades

blacknon@BS-PUB-UBUNTU-01:~$ cat /etc/apt/apt.conf.d/50unattended-upgrades
// Automatically upgrade packages from these (origin:archive) pairs
Unattended-Upgrade::Allowed-Origins {
        "${distro_id}:${distro_codename}-security";
//      "${distro_id}:${distro_codename}-updates";
//      "${distro_id}:${distro_codename}-proposed";
//      "${distro_id}:${distro_codename}-backports";
};

// List of packages to not update (regexp are supported)
Unattended-Upgrade::Package-Blacklist {
//      "vim";
//      "libc6";
//      "libc6-dev";
//      "libc6-i686";
};

// This option allows you to control if on a unclean dpkg exit
// unattended-upgrades will automatically run
//   dpkg --force-confold --configure -a
// The default is true, to ensure updates keep getting installed
//Unattended-Upgrade::AutoFixInterruptedDpkg "false";

// Split the upgrade into the smallest possible chunks so that
// they can be interrupted with SIGUSR1. This makes the upgrade
// a bit slower but it has the benefit that shutdown while a upgrade
// is running is possible (with a small delay)
//Unattended-Upgrade::MinimalSteps "true";

// Install all unattended-upgrades when the machine is shuting down
// instead of doing it in the background while the machine is running
// This will (obviously) make shutdown slower
//Unattended-Upgrade::InstallOnShutdown "true";

// Send email to this address for problems or packages upgrades
// If empty or unset then no email is sent, make sure that you
// have a working mail setup on your system. A package that provides
// 'mailx' must be installed. E.g. "user@example.com"
//Unattended-Upgrade::Mail "root";

// Set this value to "true" to get emails only on errors. Default
// is to always send a mail if Unattended-Upgrade::Mail is set
//Unattended-Upgrade::MailOnlyOnError "true";

// Do automatic removal of new unused dependencies after the upgrade
// (equivalent to apt-get autoremove)
//Unattended-Upgrade::Remove-Unused-Dependencies "false";

// Automatically reboot *WITHOUT CONFIRMATION*
//  if the file /var/run/reboot-required is found after the upgrade
//Unattended-Upgrade::Automatic-Reboot "false";

// If automatic reboot is enabled and needed, reboot at the specific
// time instead of immediately
//  Default: "now"
//Unattended-Upgrade::Automatic-Reboot-Time "02:00";

// Use apt bandwidth limit feature, this example limits the download
// speed to 70kb/sec
//Acquire::http::Dl-Limit "70";
blacknon@BS-PUB-UBUNTU-01:~$ cat /etc/apt/apt.conf.d/50unattended-upgrades | grep -v -e ^// -e ^$
Unattended-Upgrade::Allowed-Origins {
        "${distro_id}:${distro_codename}-security";
};
Unattended-Upgrade::Package-Blacklist {
};

なお、デフォルトではセキュリティアップデートのみが実行されOS再起動はされないのだが、一部のアップデートではOS再起動が必要な場合がある。
その場合は「Unattended-Upgrade::Automatic-Reboot」をtrueにしてやればいいだろう。

2.セキュリティアップデートを手動実行させる

セキュリティアップデートを手動実行させるのは簡単。
sudo付きでオプションなしでコマンドを実行してやればいいだけだ。

sudo unattended-upgrades

3.セキュリティアップデートを自動実行させる

セキュリティアップデートを自動実行させる場合は、以下のコマンドを実行して画面の選択肢で<はい>を設定してやればよい。

sudo dpkg-reconfigure -plow unattended-upgrades

これで、セキュリティアップデートが日次で実行されるようになった。「/etc/cron.daily」と同じタイミングで実行されるようなので、「/etc/crontab」の設定日時に確認するといいだろう。