Ubuntu 18.04 から 20.04.1 へアップグレード(Ubuntu-server)

bash

ずっと待っていた Ubuntu 20.04.1 LTS がリリースされました。

このblogが動いているサーバは、Ubuntu 18.04.5 LTSで稼働しています。

VPSを利用しているので、メンテナンスは、リモートから行う必要があります。リモートからということは、アップグレードに失敗したり、ブートに失敗したりすると、かなり面倒な事になってしまいます。

ですので、18.04から20.04へのアップグレードは、bug fixリリースが出てから行おう!と待ち構えていたのです。

このvpsで動いているUbuntuを 16.04から18.04へアップグレードした時の記事 は、2018年12月30日にアップロードしているので、1年半ぶりの作業になります。

なにはともあれ リリースノート

18.04 から 20.04 へ上げるにあたり、まずは、何が変わったのか?を確認します。

Ubuntu 20.04 LTS Release note
https://wiki.ubuntu.com/FocalFossa/ReleaseNotes

Ubuntu 20.04.1 LTS Change summary
https://wiki.ubuntu.com/FocalFossa/ReleaseNotes/ChangeSummary/20.04.1

大規模なディストリビューションなので、変更は多岐にわたっていると思いますが、自分が利用しているアプリケーション、システムで利用しているパッケージのバージョンが変わっているか?など、自分の環境と照らし合わせながら見ていきます。

20.04で(このサーバに関係のある)変更

  • Toolchain upgrades
    • python 3.8.2
    • php 7.4
  • base system
    • bind 9.16
    • openssh 8.2

blogが稼働しているサーバで関係がありそうなのは上記項目くらい。影響がありそうなのは、pythonとphpのバージョンが上がること。

特にpythonは2.7系がdefaultで入らなくなり、/usr/bin/pythonが今まで 2.7系を指していたのが3.8系を指すようになるそうです。

またwordpressは、phpで書かれていますから既存のphp7.2 -> 7.4への変更でエラーが出る事も考えられます。

必要そうな設定ファイルはバックアップをしておきます。

20.04.1でのchangelog

どんなバグがあったのかな?と 20.04.1 change summaryも軽く見ておきます。

致命的なbugはなさそうですが、systemd周りはいくつかpatchが入ってます。

upgradeを始める

upgrade note に目を通します。慎重に作業をしても失敗する可能性もありますから、必要なデータは、外部へバックアップしておくこと。

(1) リリースノートにあるように、既存18.04を最新の状態へ更新します。

 

(2) Ubuntuのバージョンを確認

 

(3) 念の為、一度リブートをしておきます。

 

(4) 必要なファイルをバックアップ

wordpressのデータとDB dumpは、毎日取得して別サーバへ送っているので、今は設定ファイルを中心にバックアップしていきます。

アップグレード時、サードパーティのリポジトリは無効にされます。アップグレード後に忘れずに戻しましょう

 

(5) いよいよアップグレード

sshのセッションを2つ張ります。※ do-upgradeコマンドを実行すると別ポートでsshdが起動されます。そちらに接続しておくのもいいでしょう。

1つ目は、upgradeコマンドを叩く為
2つ目は、package uprage時、設定ファイルに変更があった場合に修正する為

まずは、update-managerの最新版が入っている事を確認します。

いよいよupgrade開始です。ネットワーク帯域やサーバスペックにもよりますが、割と時間がかかるので、時間に余裕のある時に実行しましょう。

ターミナルでログの記録をしておくのも良いと思います。

(6) 最後にリブート

‘Upgrade complete’ と表示されたら、最後にリブートして完了です。

(7) apt lineを元に戻す
再起動後、問題なく動いているようなら、upgrade時disableにされたサードパーティリポジトリをもとに戻します。各ファイルは、リリース名が書き換えられ、コメント状態になっています。

先頭行の#を外し、有効にします。

ハマったところ

blog用のvpsは、基本的にパッケージを使って運用しています。なので、あまりハマる事はなかったのですが、mysqlが 8.0 に上がった事で、古い設定ファイルが使えなくなりエラーを吐いて起動に失敗してしまいました。

リリースノートにmysqlの記述は無かったのですが、8.0に上がってしまいました。

このように修正してから、upgradeを続行しました。

 

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)