bitnami版のmattermostのアップデート方法で迷いそうな部分を補足する
はじめに
mattermostとはslackのようなOSSのコミュニケーションツールです。
mattermostをバージョンアップする際に利用している
bitnami公式の手順で迷いそうな部分があったのでまとめます。
公式手順
手順追記版
0.前提
全ての作業は以下の手順の通りsudoで実行するか、
もしくはrootユーザにスイッチしてから実行しましょう。
sudo su - root
1.サーバーを停止します。
sudo /opt/bitnami/ctlscript.sh stop mattermost
2.Mattermost インストール ディレクトリに移動します。
cd /opt/bitnami/mattermost
3.現在の構成ファイルをバックアップします。
mkdir ~/backup
cp -p config/config.json ~/backup/
4.MySQL ページの説明に従ってデータベースをバックアップします。
以下の公式手順に従って実施します。
バージョンアップがうまくいけばそのままMySQLのデータは引き継がれるので万が一のためのバックアップです。
やらなくてもバージョンアップは可能です。
余談ですが
現在mattermostの推奨DBはpostgresになっています。
MySQLでも稼働しますが、一部統計情報などモニタリングに関する項目が閲覧できない可能性があります。
私の環境(v9.9.0)では今のところ問題なく利用できています。
5.Mattermost データ ファイルをバックアップします。
cp -rp data ~/backup/
必要であれば上記と同じように「plugins」ディレクトリもバックアップしましょう
6.Mattermost の最新バージョンをダウンロードします。
cd ..
wget https://releases.mattermost.com/X.X.X/mattermost-team-X.X.X-linux-amd64.tar.gz
最新版は以下等で確認しましょう。
7.以前の Mattermost ファイルを削除します
前の手順ですでに必要なバックアップは実施済です。
rm -rf mattermost/*
8.新しいバージョンを解凍します。
tar xzf mattermost-team-X.X.X-linux-amd64.tar.gz -C mattermost --strip-components=1
9.以前の構成ファイルを復元します。
cd -
cp -p ~/backup/config.json config/config.json
9-1.config.jsonの権限を変更
config.jsonの権限が不足すると最後の起動でmattermostが起動しないため権限を変更します。
sudo chmod 755 config/config.json
9-2.ディレクトリを復元
data
画像や絵文字のデータが入っているdataディレクトリを復元します。
これを実施しないと今までmattermostに添付したファイルや作成した絵文字が引き継がれなくなります。
(ファイルストレージをS3に設定している場合は中身は入っていないかもですが、ディレクトリだけでも復元しましょう)
cp -r ~/backup/data .
plugins
pluginsもバックアップしている場合は、同じように復元します。
起動時にディレクトリは必要なので空でも作成しておきましょう。
cp -r ~/backup/plugins .
bleve用のディレクトリ
mattermostディレクトリ配下にbleve用のインデックス格納ディレクトリ作成していた場合は
再度同じように作成しておく必要があります。
mkdir bleveindexes
bleveとは
mattermostの全文検索機能です。
10.ファイルのアクセス許可を次のように調整します。
chown -R bitnami:mattermost .
sudo chown -R mattermost:mattermost logs client data plugins
data、pluginsディレクトリを復元していないとエラーが出ます。
bleve用のインデックス格納ディレクトリがある場合は同じように調整します。
sudo chown -R mattermost:mattermost bleveindexes
11.サーバーを再起動します。
sudo /opt/bitnami/ctlscript.sh restart mattermost
「システム コンソール」を開き、変更を保存します。これを行うと、追加された新しい設定のデフォルト値を使用して、 config.jsonスキーマが最新バージョンにアップグレードされます。
Discussion