Mattermost環境を新設して既存環境からデータを移行した。次回の環境移行に生かすために手順を記録しておく。
Mattermost環境の構築
Proxmox VE Helper-ScriptsのMattermostスクリプトを使ってLXCコンテナでMattermost環境を構築した。
Proxmox VEホストのシェルで以下のコマンドを実行する。Advanced Settingsでディスクサイズとメモリサイズを指定。
bash -c "$(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/ct/mattermost.sh)"
とりあえず実行したところ、W: Failed to fetch http://archive.ubuntu.com/ubuntu/dists/noble-security/InRelease Temporary failure resolving 'archive.ubuntu.com'のエラーが発生した。
http://archive.ubuntu.comの名前解決が失敗しているようなので、Advanced SettingsのDNSサーバにCloudflareのパブリックDNS 1.1.1.1を指定して再実行し、スクリプト実行が成功した。
続けてTailscaleスクリプトを実行し、MattermostのLXCコンテナにTailscaleをインストールする。
bash -c "$(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/tools/addon/add-tailscale-lxc.sh)"
Mattermostコンテナを再起動、コンテナのコンソールでTailscale upを実行し、 Tailscaleネットワークに参加する。
tailscale serveでMattermostのサービスをTailscaleネットワークに公開する。
Tailscale serve --bg --https=443 localhost:8065
/opt/mattermost/config/config.jsonのSiteURLをTailscale Serveで公開したURLに更新、データ移行作業の際にmmctlからローカルモード接続するために/opt/mattermost/config/config.jsonのEnableLocalModeをtrueに変更。コンテナを再起動する。
ブラウザでTailscale ServeのURLにアクセス、Mattermostの初期設定ページが表示されることを確認。Mattermostコンテナ内部の~/mattermost.credsを参照してPostgreSQLのデータベース認証情報を確認、ブラウザに戻って初期設定を実行する。
以上でMattermost環境を構築できた。
mmctlでデータ移行
先ほど構築したMattermost環境のmmctlコマンドを使ってデータ移行を進める。
まず、既存のMattermost環境からmmccl exportでデータをエクスポートする。
mmccl auth login <古いMattermostのURL> # システム管理者でログイン mmctl export create # 実行結果からIDを取得 mmctl export job show <ID> # Statusがsuccessになっていることを確認 mmctl export list # 表示されたzipファイルのファイル名を取得 Mmccl export download <zipファイル名>
続けて新環境へのインポートを実施する。
# エラーを防ぐためにインポートファイルサイズの最大値を増やす
mmctl config set TeamSettings.MaxUsersPerTeam {ファイルサイズ}
mmmccl import upload <先ほどエクスポートしたzipファイル名>
mmctl import list available
# 表示されたzipファイル名を取得
mmctl import process <zipファイル名>
# 表示結果からIDを取得
mmctl import job show <ID>
# Statusがin_progressになっていることを確認
# 時間をおいて再実行し、Statusがsuccessになったことを確認
mmctlで仮のシステム管理者ユーザーを作成する。
mmctl user create --email user@example.com --username userexample --password Password1 --system-admin
ブラウザでMattermostにアクセスし追加したシステム管理者ユーザーでログイン、システム統計でユーザー、チャンネル、メッセージ等がインポートされていることを確認する。
既存ユーザのパスワードを再設定するなど、必要な設定を終えた後、仮のシステム管理者ユーザを削除する。
mctl user delete user@example.com --local
以上でデータ移行が成功した。
添付ファイルを含めてシンプルにエクスポート、インポートできるのが嬉しかった。インポートジョブは割と時間がかかり、インポート進行中にチャンネルを表示するとメッセージが空っぽで失敗したかと不安になった。ジョブの完了後に再確認すると無事にメッセージが表示された。
mmccl command line tool - Mattermost docs.mattermost.com