Ubuntu は活発な開発が続けられている。
このため、定期的にアップデートを確認するなどしないと、未適用のアップデートが驚くほど増えてしまう。しかし、多くのサーバーを管理するとなると面倒だし抜けも増えてしまいそう。
自動的に適用させる方法はないだろうか調べてみた。
スポンサードリンク
インストール
unattended-upgrades というもので実現できるらしいから、早速インストールする。
$ sudo apt-get update $ sudo apt-get instal unattended-upgrades
※筆者環境では既にインストールされていた
設定
設定ファイルは次のファイルとのこと。
$ sudo vi /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"; };
設定ファイルには、「セキュリティ」や「アップデート」など、その範囲を選択できるようだ。
セキュリティー関連くらいは勝手にアップデートして欲しいと思っていたのだけれど、設定を見る限り、すでに有効になっていたようだ。ということは、その溜まっていくアップデートというのは”通常のアップデート”だったらしい。
これを有効にするには「// “${distro_id}:${distro_codename}-updates”;」のコメントアウトを外し、「”${distro_id}:${distro_codename}-updates”;」とすれば良い。
適用しないパッケージの設定
// List of packages to not update Unattended-Upgrade::Package-Blacklist { // "vim"; // "libc6"; // "libc6-dev"; // "libc6-i686"; };
特にVMwareServer2 などを利用している時に当てはまるかもしれないけれど、自動的にアップデートされると困ることがある。その場合は、上記のサンプルを参照しながら記述すれば良い。
※今回はVMwareServer2 が入っていないし、アップデートされて困るものはないので記述していない
メール通知設定
ここまで設定してきて気になったのは、「自動アップデートで問題が発生した場合」のこと。もちろん重要なサーバーなら外部監視もしているけれど、通知機能もあるらしいから設定してみることにした。
実行時にメール送信
// 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. //Unattended-Upgrade::Mail "root@localhost";
設定ファイルの上記の部分がメール送信設定らしく、サンプルではroot@localhost 宛にメールを送信するらしい。
直接受け取りたい外部のメールアドレスを設定しても良いかもしれないが、Linux システムではメールエイリアスという機能があるので、有効にするだけで良いと思われる。
ここでは「//Unattended-Upgrade::Mail “root@localhost”;」のコメントアウトを外し、「Unattended-Upgrade::Mail “root@localhost”;」とした。
というのは、root 宛のメールは既に任意のメールアドレスに転送するように設定されているから、あちこち設定をばらまく必要はない。詳しくは*メールBOXがいっぱい*あたりを参照されたい。
エラー時のみメール送信
// 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";
電子メールで「自動アップデートしたよ」と教えてくれるのは嬉しいかもしれないけれど、毎度毎度送られてくると確認を怠ってしまうかもしれない。そのような時はエラー時のみメールを受け取るように設定ればよい(たぶん)。
自動再起動
// Automatically reboot *WITHOUT CONFIRMATION* if a // the file /var/run/reboot-required is found after the upgrade //Unattended-Upgrade::Automatic-Reboot "false";
アップデートによって再起動を必要とすることがある。自動的に再起動するように設定することも可能だけれど、自動的に再起動されては困るので有効にはしていない。
# エラーor 再起動が必要なときだけ通知してくれる設定はないのかな・・?
# まだテスト中(Ubuntu 12.04 LTS 環境)なので間違いが含まれているかもしれない
# 参考文献にはさらに多くの様々な使用方法などが解説されている
参考文献
- Ubuntu/自動アップデートさせる – TOBY SOFT wiki
- Ubuntu Weekly Recipe:第83回 アップデートの管理|gihyo.jp … 技術評論社
コメント