前回記事の続きになります。
MattermostのローカルのファイルストレージのファイルをOCIのオブジェクトストレージに移行する手順について整理しました。
仕様を確認する
移行時になにか追加で設定変更やファイルの変換が必要だったりするのかを調べます。
結論から言うとファイルをそのまま移行(アップロード)すればいいだけでした。
ファイルを移行する
OCIでは簡単にオブジェクトストレージやその他サービスに対しての操作ができるCLIが公開されているので、それを使ってファイルをアップロードします。
OCI CLIのインストール
まずはOCI CLIをMattermostサーバにインストールします。
私はUbuntuにインストールしたのでインストーラ・スクリプトを実行するだけでインストールが完了しました。
- OCICLI-クイックスタート
- コマンドライン(CLI)でOCIを操作する
- 認証の設定などはこちら参照。
#python入ってるか一応確認。入ってなくても下のスクリプトで自動でインストールしてくれる。
python --version
#全部enter。勝手にpythonも入るっぽい。
#===> Modify profile to update your $PATH and enable shell/tab completion now? (Y/n): Y
#うそ、これだけYes
bash -c "$(curl -L https://raw.githubusercontent.com/oracle/oci-cli/master/scripts/install/install.sh)"
source .bashrc
#CLIの設定ファイルを作成する。認証情報など。インスタンスプリンシパルを利用する場合は不要。
#設定方法は参考リンクから。
oci setup config
OCI CLIを使ってオブジェクトストレージにファイルをバルクアップロードする
コマンド一発で指定したフォルダ配下のファイルをディレクトリ構造を保ったまま一括アップロードすることができます。
#Mattermostのローカルファイルにアクセスできるようにする。
#私の環境ではDockerを使ってインストールしているため以下ディレクトリがファイルストレージの場所です。
sudo chmod -R 755 /home/ubuntu/mattermost/volumes/app/mattermost/data
#バケット名とソースディレクトリを指定するだけ。インスタンス認証を使っているのでauthオプションをつけています。
oci os object bulk-upload --bucket-name mattermost --src-dir /home/ubuntu/mattermost/volumes/app/mattermost/data --auth instance_principal
私の環境だと大体500MBくらいのファイル群が2分くらいでアップロード完了しました。
Mattermostでリンク切れ状態が治っているのを確認したら、もともとのローカルのdataは削除してOK。

これにて移行完了です!
コメント
ありがとうございます!早速やってみます!