スポンサーリンク

さくらのVPSで、CentOS 7&kusanagi 8をCentOS Stream 9&kusanagi 9に入れ替え

めんどくさいけどやるしかない

このブログはさくらのVPS(石狩)上にCentOS 7 & kusanagi8で構築していました。

PHPも8.0系を使ってナウなバージョンだ!とか思っていたのも束の間、kusanagi 8も知らぬ間に後継のkusanagi 9が登場していました。

ナウなPHP8.3系を使うにはkusanagi 9が必須、さらにkusanagi 9を使用するにはCentOS Stream 9が必須、つまりOSを入れ替える作業クソダリーということで1年ぐらい見て見ぬふりを続けてきました(/ω\)

CentOS 7が2024年6月30日にオワコン(EOL)を迎え、いよいよ見て見ぬふりを続けられなくなったので、重い腰を上げて作業をしました。

理想

業務的な観点で言えば、一番事故が少なくて安全なステップとしては、

  • CentOS Stream 9とkusanagi 9の新サーバーを新規で構築
  • 新サーバーにテスト用の仮ドメインを割り当てる
  • 旧サーバーの資材とDBを丸ごとバックアップ
  • 新サーバーに展開して動作チェック
  • DNS設定を切り替えて仮ドメインから本ドメインで新サーバーを有効化
  • 旧サーバーを解約

が理想でした。この手順であればダウンタイムはほぼゼロに抑えることが可能ですし、もし新サーバー側の準備段階で何かポシャっても運用中のサーバーには影響がありません。

 

現実

一個人サイトで大掛かりにやるのも(費用的にも規模的にも)勿体無いので、私はダウンタイム上等で以下の手順で実施しました。

  • 現サーバーの資材とDBを丸ごとバックアップ
  • CentOS Stream 9とkusanagi 9で現サーバーでOS再インストール
  • バックアップ資材を現サーバーに再アップロード&展開して動作チェック

つまり移行用のサーバーやドメインを追加せず、既存サーバーでOS再インストールするという手段です。当然、OS再インストールからの初期セットアップでミスったらその分ダウンタイムが伸びていく危険性があります。まぁ個人サイトだしええやろ^q^の精神です。

 

作業備忘録

まぁ私と同じようにダウンタイム上等で金をケチって同じような作業をする人は少ないとは思いますが、インターネットの海に備忘録的に残しておきます。

参考サイト1(公式の移行手順)

kusanagi migrateコマンドで移行する - KUSANAGI Tech Column
CentOS 7ベースのKUSANAGI 8とCentOS Stream 8ベースのKUSANAGI 9のEOL(サポート終了)が来年に迫っています。これを受け、新しいKUSANAGIに移行する時期が来ていると考えられます。それを簡単にする...

参考サイト2(CentOS 7でmariaDB10.5にアプデできない時)

CentOS 7 系で、yumコマンドを利用可能にする方法 | クラウド・AWSのIT技術者向けブログ SKYARCH BROADCASTING

参考サイト3(OS再インストール)

KUSANAGI 9 for さくらのVPS - 超高速CMS実行環境 KUSANAGI
KUSANAGI 9 for さくらのVPSは、さ ... Read more

手順

基本的にはkusanagi公式の参考サイト1の通りの進め方でOKです。ざっくりと以下の流れです。

  • 現環境(CentOS 7 & kusanagi 8)でPHP8.0最新版&MariaDB10.5にアップデートする
  • kusanagi migrateコマンドで移行用tar.gzを作成してローカルマシン側にダウンロード
  • 参考サイト3の通りにOS再インストール、その際にCent OS Stream 9 & kusanagi 9を選択
  • OS再インストール後のマシンに移行用tar.gzをアップロード
  • kusanagi migrateコマンドで移行用tar.gzを指定して復元
  • let’s Encryptの自動更新を有効化
  • nginxの設定ファイルを調整
  • (お好みで)PHPを最新のPHP 8.3系に切り替え

マシン(IPアドレス)自体は同一なので、DNS設定変更は不要でいけるはず。

注意事項1

参考サイト1の中で、
>kusanagi upgrade mariadb 10.5
のコマンドについては、2024年7月現在エラーが発生します。

Determining fastest mirrors
>Could not retrieve mirrorlist http://mirrorlist.centos.org/?release=7&arch=x86_64&repo=os&infra=genclo error was
>14: curl#6 – “Could not resolve host: mirrorlist.centos.org・・・・

そこで、参考サイト2の手順を実行したら無事MariaDBを10.5にアップデートできました。

注意事項2

OS再インストール後にkusanagi initで初期化が完了後、バックアップtar.gzファイルを任意のFTPソフトでアップロードしてmigrateコマンドを実行するのですが、その際にmigrateコマンドで指定するtar.gzファイルはフルパス指定が必要です(当たり前ですが)

例えばFTPで/home/kusanagi/hogehoge-20240707.tar.gz とアップロードした場合、

kusanagi migrate –import /home/kusanagi/hogehoge-20240707.tar.gz

というコマンドになります。topディレクトリにいるのに何度もtar.gzファイル名だけ指定して動かねぇ動かねぇ騒ぐというアホをかましたのは私だけで良いです(‘A`)

注意事項3

nginxの設定ファイルの内容(xxx_httpd.confなど)について、手動でカスタマイズした分は移行してくれません。そもそもディレクトリ構造的にもkusanagi 8とkusanagi 9では作りが違うっぽいので、もし移行前のkusanagi 8時代にカリカリに設定ファイルをイジってしまっていた場合、再度設定し直しになります。

私の場合、

を追加で実施する必要がありました。

ちなみに、kusanagi9のnginxの設定ファイルは

/etc/opt/kusanagi/nginx/conf.d 配下の
{プロファイル名}.wp.inc
{プロファイル名}.conf
…他

だゾ。毎回設定ファイルがどこのディレクトリにあったかわからなくなるんよな。/etcまでは覚えてるんだけど、optディレクトリを毎回忘れる・・・

 

作業後

無事、ナウなPHPバージョンの8.3.9で動作しています。特に問題なく動作はしていますが・・・

なんかOOM KillerさんがMaria DBをKillしたせいで、12時間ぐらいDB接続エラーでサイトが死んでたりしました。kusanagi 9はメモリ食いまくるんかな・・?kusanagi 8の時は一度もなかったですよ。

まぁさくらのVPSはケチってメモリ1GBタイプを契約しているのでね。そりゃメモリ不足も出ますよ。

とりあえずスワップメモリ領域2GBを設定したけど、kusanagi公式としてはメモリ4GB推薦だからねぇ・・・メモリ4GBだと月額3200円ぐらいかかるんよな。流石に財布的にね。。。正直このブログは個人の趣味&nginxの実験場所なので・・・

 

 

コメント

タイトルとURLをコピーしました