Re:シルの日々の戯言。

散財が生き甲斐になりかけている、デジタルガジェット大好き自称黄色いネズミの戯言。

RedmineとGitLabのデータ移行を済ませて1台ThinkPad T440pを停止した

先日調達したThinkPad W541を本格的に動かして、まずは旧ESXiサーバのThinkPad T440pを停止させることが出来ました。
sylve.hatenablog.jp

TS抜きチューナーを利用している方の(録画サーバの)ThinkPad T440pは改めてモジュールをコンパイルしたりするので一旦放置していますが、着々と準備は進めています。

今回の移行でESXi(vSphere Hypervisor)からHyper-Vに移行するに辺り、当初は仮想マシンコンバーターか何かでサクッと移行させようと目論んだのですが、どうやら無償版であるvSphere HypervisorからHyper-V仮想マシンをいい感じに変換する手立てが見つからず、一番イケていない新環境で全く同じ環境を立ち上げてデータ移し替えと言う泥臭い方法で移行としました・・・。*1

2代目ThinkPad T440pを入手して以降、個人的にRedmineとGitLabの2つを利用しています。

Redmineは個人的なナレッジ蓄積用*2として、GitLabは表に出せない(=仕事関連の一連で)Re:Viewのプロジェクトファイル*3を管理するのに重宝していますし、備わっているWeb IDEが案外個人の感性と合い、(一応IDEなので)ファイル作成・修正も行えるので大変重宝しています。

そんな訳で、他にも利用している機能*4はありますが個人の戯れ遊び環境にも関わらずデータ移行と言う仰々しい行為を行う必要が出てしまいました。

Redmineデータ移行は公式ドキュメントがクソ

なにげに一番苦労したのが、実はRedmineのデータ移行でして、公式ドキュメントのクソッぷりがあまりにアレ過ぎまして・・・。

guide.redmine.jp

添付ファイルやそもそもディレクトリ自体の移行もありますが、DBデータを移行しなければなりません。
そしてバックアップ・リストアのガイドが存在しますが、バックアップはまだいいのです。

リストア
TODO

TODOってなんですか?*5

RedmineをAnsibleで作成してるのでDBはPostgreSQL

面倒事が嫌いなので、RedmineはAnsibleを用いてほぼ全自動で環境を作成しました。*6
github.com

スキルアップのためには全部自分の手組みで作るべきなんでしょうが、公式で案内されているプレイブックがあるのならそれを利用して時短で作るのも一つのスキルです。・・・その影響でどのように構成されるかを十分把握しないままなので、あまり触れてこなかったPostgreSQLが入っているとは・・・。

別になんだって良いんですが、「Redmine 移行」などのキーワードで探すとMySQL(MariaDB)が結構多く出てくるので、どうやらPostgreSQLは少数派のようです。
そんな状況下でPostgreSQLで移行しようってーのだから何をどうしたら良いのやら。公式の移行ドキュメントが糞でバックアップは明確になってるものの、バックアップしたデータのリストアが何も書かれておらず、不慣れなPostgreSQLでどのようにリカバリさせれば良いのか頭を抱える有様です。*7

・・・結論としてはPostgreSQLバージョンアップ(マイグレーション)・移行のユーザー記事?が見つかり、それを参考にデータ移行することが出来ました。
www.wisewisdom.net

泣きながらぐぐれば案外先駆者様がなんとかしてくれているものです。公式ドキュメントと異なりバックアップ・リストアともにコマンドが明記されている上、ユーザにも注意しろよ?と細かく注意が書かれていたので本当に助かりました。

唯一ハマったポイントは、新サーバでもAnsibleで構築したので既にRedmine用のDatabaseが存在してデータも入っちゃってるので、既にデータあるよ?とリストア(インポート)に失敗したことくらいでしょうか。まぁ、これは単純にAnsibleで作られたRedmine用のDatabaseを消せば良いだけの話なので、そんな大した問題ではありません。

・・・あぁ、知見不足からDB移行に難儀した難儀したで終わってますが、普通にRedmineにアップロードしたファイルの移行も必要ですよ?まぁ、Redmineディレクトリまるっとtarで固めて持っていけば良い話なので綴るまでもないことですが・・・。*8

GitLabは・・・考えてみりゃGitなんだよな

もう1つのGitLabについて、はてさてコイツはどうしたものか・・・と思ったのですが、考えてみりゃGitです。どっかにクローン取っておけば良いだけです。

まぁ、プライベートで適当に使っているだけなので、ユーザは作り直せば良いやと言うデータ移行としては完全完璧に一番駄目なヤツ*9ですが、まぁ個人用途なので適当に気楽に・・・。

適当にgitクライアント突っ込んで、git cloneでリポジトリをゲットしておいて、新しく作ったGitLabに対しgit pushすりゃ終了です。

とりあえず動き出したが・・・

割とゴリ押しと言うか、素人のお戯れ環境だから移行作業の劣化コピーで終わりましたが、本来であればもっと効率的に行うべきだよなぁ・・・と思ったり思ったり。
理想は既存の仮想マシンをコンバートすることですが、先の通り無償版ではコンバーターが使えないようで、サードパーティの怪しげなコンバーターを使う必要がありそうだったので諦めた経緯はありますけど・・・。

それにしたってOSまた入れてインポートさせるために利用しているミドルウェアも入れて・・・と言うのはIT屋さんを名乗ってる人間がやる行為じゃないよなぁ・・・と。もう少し無い知恵を働かせて移行に無駄な時間を使わずに済む方法が無いか調べても良かったのではないかと思ったり思わなかったり。

そしてまだ録画サーバ機能の移行が済んでいないので、そこで何らかの手立てを・・・と思いつつ、録画サーバに関してはTS抜きチューナーとかアレゲなモノを使っているので流石に物理で移行が無難だよなぁ・・・と思ったり思わんかあったり。

ただ、録画サーバの移行が済めば長らく利用してきたThinkPad T440pも全部撤去できそうです。

・・・そうなると2台もThinkPad T440pが余ることになり、処分をどうするか考える必要がありますが・・・、・・・少なくとも1台はデッドストックとして抱えていようかなぁ・・・。特にCore i7の方。

文字通りの実験用として、OS再インストール大前提みたいな使い方で使っていけると良いかなぁ・・・と思ったり思わなかったり。

録画サーバと言う用途の都合で移行するにもタイミングを図る必要があるので*10思いついてヨッコイショとやる訳には行きませんが、まぁ適当なタイミングでこっちも早いところ移行してしまおうと思います。

*1:有償版ならコンバーターがあるようですが、残念ながら無償版では出処の怪しいサードパーティコンバーターを使う必要がありそうなので、探すより立てたほうが早いと諦めました。

*2:戯言日記に書くまでもないことを、備忘録として残したくてですね・・・。

*3:薄い本を作る前に仕事でチョットしたドキュメント作成で使うとはなぁ・・・。

*4:具体的にはPi-holeとRe:View、片方は仮想機専用として、片方は生成用なので移行するようなものではありません。

*5:一般的には「やること」で、ToDoリストとかで聞くアレ。

*6:これを利用したので、RedmineサーバがCentOS7系なのです・・・。

*7:元々DB周りは苦手意識丸出しに加え、触ってきたのがOracleなので・・・。あとphpMyAdminとかに逃げてた身なので・・・。

*8:こうして「綴るまでもない」=「ggrks」と言う姿勢が良くないんだろうなぁ・・・。

*9:ビルドアンドスクラップなので、GitLabで抱えているユーザ情報を引っこ抜いて移行するのがベストなんですが、まぁそれを言い出したらコンバーター周りで面倒だからと仮想マシン自体のスクラップビルドで新しい環境に立ててる時点で駄目ですね・・・。

*10:移行中に録画時間始まりましたーとかだと私泣いちゃう。