開発者でも何でもない素人によるサイト

Rapberry Pi 2用Ubuntu Server セキュリティアップデート自動化(unattended-upgrades)の設定

  • このエントリーをはてなブックマークに追加

手動でアップデートすると、アップデートされるパッケージを確認しながら実行できるというメリットがありますが、セキュリティアップデート等重要な更新の適用が遅れる可能性があります。

従って今回はアップデート自動化の設定を行います。

unattended-upgradesのインストール

cron等で全パッケージをアップデートしてしまうと、動作の不具合が生じた際に原因の切り分けが難しくなるので、セキュリティアップデートだけ自動化し、他のアップデートはこれまでどおり手動で行いたいところです。

unattended-upgradesというパッケージを使えば、こうした自動アップデートの挙動を詳しく設定できるので、今回はこれを使います。

以下のコマンドでインストールしてください(最初から入っているかも)。

sudo apt install unattended-upgrades

unattended-upgrades有効化、cron等設定

Ubuntuのドキュメント公式Wikiに従って設定します。

まず、

sudo dpkg-reconfigure --priority=low unattended-upgrades

と打ちます。

すると「アップデートを自動化するか?」と聞かれるので、「yes」を選びます。

続いて自動アップデートの対象を設定するよう聞かれるので、デフォルトのDebianから

"origin=Ubuntu,codename=xenial,label=xenial-security"

というふうに書き換えます……が、この後のメッセージでエラーっぽい表示が出てうまく設定出来ないようです(大文字小文字等試しましたが、出来ませんでした)。

なので、手動で設定ファイルを書き換えます。

sudo nano /etc/apt/apt.conf.d/50unattended-upgrades

で設定ファイルが開くので、

...
// Automatically upgrade packages from these (origin:archive) pairs
Unattended-Upgrade::Allowed-Origins {
        "Ubuntu:xenial-security";
...
// 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";
...

と書き換えます。

後半は、アップデートがあったらroot宛にメールが届く、という設定です。ただし、今のところmailコマンドを使えるように設定していないので、おいおい設定していきたいと思います。

続いてアップデートの頻度を設定します。

sudo nano /etc/apt/apt.conf.d/10periodic

で、別の設定ファイルを開き、次のように書き換えます。

APT::Periodic::Update-Package-Lists "1";
APT::Periodic::Download-Upgradeable-Packages "1";
APT::Periodic::AutocleanInterval "7";
APT::Periodic::Unattended-Upgrade "1";

このようにすると、上で設定したパッケージを毎日アップデートし、週1回ダウンロードアーカイブが削除されるようです。

/var/log/unattended-upgrades/unattended-upgrades.log

にログが出力されるので、mailコマンドが使えない間は定期的にログを確認すると良いかと思います。

【追記:6/28】設定以来初めて、本日カーネルのセキュリティアップデートがありましたが、自動でアップデートをしてくれたうえで、「再起動してね」とメールが送られて来ました。

この間securityの他の、指定していないアップデートは、アップデートしていません。

とても優秀なソフトです。