このblog siteは、Ubuntu 16.04 LTS上で動かしていました。
16.04というのは、2016年04月にリリースされたバージョン。LTSは、長期サポート版という意味になります。LTSは、5年間のセキュリティアップデートパッケージが提供されるので、危険の伴うOS Upgradeを行わずに長期間にわたり利用できるので重宝しています。しかし、LTSは、2年毎にリリースされるので、2018年4月に18.04 LTSがリリース済みの状態で、そろそろ新しいバージョンにしたいなぁと思っていました。
Ubuntuの元となっているDebianでは、かなり安定したアップグレードの仕組みが提供されています。Debianではパッケージ間の依存関係の自動修復機能の評判があまりよくなかった(気がする)のですが、Ubuntuではそれの完成度が高く、魅力のひとつになっていて、blogを開設するにあたりUbuntuを選んだのは、それが理由の一つでした。
さて、このblogは、自宅ではなく、さくらインターネットさんのVPS上で稼働しています。ですので、メンテナンスはリモートで行う必要があり、もし、失敗して起動しなくなった場合とっても面倒な事になってしまうのです。
16.04 to 18.04
今回は16.04LTSから18.04LTSへということで、LTS間のUpgradeなので、何の問題も無く完了しました。いくつか気をつける箇所があるので、メモ代わりに書き出してみます。
- apt-get upgrade と dist-upgradeを行い、「すべて」のパッケージを最新の状態にしておくこと
- upgrade前に1度再起動を行い、再起動後に意図する形でプロセスが起動し、設定などが反映されている事を確認しておくこと
- 外部リポジトリを追加している場合は、そこからインストールしたパッケージを把握しておくこと(os upgrade中に外部リポジトリはdisableにされます)
- リリースノートに、軽くでもいいので目を通し、メジャーバージョンが代わるパッケージを把握しておくこと
- os upgrade時に新しい/既存のどちらの設定ファイルを利用するかの選択をする事ができますが、自分で書き換えた設定ファイルは、バックアップを取っておくこと
- 最後にrebootを行うので、稼働中のサービス、プロセス、ルート、mount状態などの状態を保存しておくこと
最低でも(1),(3),(5)は、必ず行っておけば、なにかあった場合でも安心です。
準備ができたら、下記コマンドを実行するだけです。
1 |
$ sudo do-release-upgrade |
ぼくは、sshセッションを複数張っておいて(sshdの入れ替えが行われても既存セッションは切れません)、(5)の設定ファイル変更された時には、自分の設定を別セッションを使って書き戻したりしています。
これが一番大切かもしれませんが、リリース直後は本番環境には適用しないこと。今回は、18.04.1 がリリースされたのを知ったのでos upgradeを行いました。
何か変った?
blog用であまりサービスを立ち上げていないし、チューニングもしていないので、目に見える大きな変化はありませんでした。
os-upgrade前
1 2 3 4 5 6 7 8 9 |
root@vps:~# uname -ar Linux vps 4.4.0-137-generic #163-Ubuntu SMP Mon Sep 24 13:14:43 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux root@vps:~# lsb_release -a No LSB modules are available. Distributor ID: Ubuntu Description: Ubuntu 16.04.5 LTS Release: 16.04 Codename: xenial |
os-upgrade後
1 2 3 4 5 6 7 8 9 |
root@vps:~# uname -ar Linux vps 4.15.0-38-generic #41-Ubuntu SMP Wed Oct 10 10:59:38 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux root@vps:~# lsb_release -a No LSB modules are available. Distributor ID: Ubuntu Description: Ubuntu 18.04.1 LTS Release: 18.04 Codename: bionic |