社内にオンプレで構築しているJIRAのバージョンアップをしました。
バージョンアップの流れは以下です。
- 検証環境の構築
- リリースノートの読み込み
- 検証環境のバージョンアップ
- 検証環境の動作確認
- 調整
- 本番環境のバージョンアップ
- 本番環境の動作確認
- バージョンアップの報告
検証環境の構築
自社ではオンプレとはいえ、クラウドのサーバー上に構築しているので、同じサーバーを構築するのは楽です。
サーバーを停止せずに、数分でバックアップが取れて、すぐに環境を構築できます。
ですが、本番と検証では別の設定が必要だったりと苦労します。
結局、インフラに詳しい人に調べてもらって、(これだけやっているわけでもないけど)1ヶ月以上かかってました。
リリースノートの読み込み
バージョンアップに伴い、細かいことが変わっていたりします。
今回はメジャーバージョンが一つ上がるほどなので、積み上がったリリースノートが山ほど。
フィールドの説明にHTMLはデフォルトでは無効になったらしく、それ無効になったら困るよ、なんてこともさらっと書いてあります。
他にもこのファイルの設定を変えることが推奨なんてことも書いてあります。
こう言うのは黙って3回読んで確認しないとならんですね。
バージョンアップ
バージョンアップ自体は難しくないです、インストーラーに委ねればいいだけです。
ただ、インデックスの再作成が必要になるので時間がかかります。
苦労するのが、バージョンアップに伴う、プラグインの互換性。
無料のプラグインを使っていたのですが、バージョンアップをすると、互換性のあるバージョンに上げるには有料になるものもありました。
タダより高いものはないですね。
今回、ネックだったのがWatcher Field。JIRAのウォッチャーをカスタムフィールドとして扱えるプラグインです。
これがしれっとバージョンアップしていると互換性のあるものがなくなっているのです。何がひどいって、これがサードパーティーではなくAtlassianから提供されていることです。
びっくりしましたね。
互換性のあるプラグインでないとインデックスの再作成が上手くいかなくなったりするので、プラグインのチェックは重要です。
これに伴い、既存の仕様を見直す必要がありました。
とにかく、何か起きたら、サポートに相談するのが一番です。
自分で調べていたら、いくら時間があってもキリがありません。
そして本番作業
何度か練習して、いけるなと思って作業。
と思ったら、JIRAが止められないという問題が。
catalina.pidのファイル権限周りのせいか上手くstopコマンドが機能しないのです。
killコマンドでプロセスをkillしました。
さらには、server.xmlがバージョンアップに伴い、リセットされていた点。
Tomcatの設定なのですが、このserver.xmlが私、全然意味がわからず。一緒に作業した人が詳しいのでなんとかなりました。
最後に
バージョンアップが終わっても、これから使ってもらう社内の反応を見るまでが仕事なので安心できません。
バージョンアップ関係ないことを指摘されたり、関係あることを指摘されたり、で。
もうやりたくないというのが本音ですね。
ただし、バージョンアップは機能や性能の向上が見込めるだけではなく、サポート期限の兼ね合いがあるので必要です。
「地獄を見ても、なんとかなりますよ」と言っている社内の有能なエンジニアのとある一言を紹介します。
トラブルは祭り
以上。