Slackに似ているオープンソースのチャットツールとして「Mattermost」が存在しますが、比較的頻繁にアップデートが行われています。
今回はこの「Mattermost」の安全なバージョンアップ手順について紹介したいと思います。
※下記の環境での設定例となります。またDocker コマンドを利用してインストールしたMattermostの場合には同手順でのアップデートは出来ません。
OS:CentOS 6.9
Webサーバ:Nginx
DB:MySQL
mattermost-team-4.8.0から 本ブログ掲載時点で最新のmattermost-5.20.1へのアップデート
目次
現在のバージョンを確認
現在のバージョンは下記の手順で確認できます。
ログイン後、システムコンソール → Mattermost について をクリック
これでMattermostのバージョンが表示されます。
Mattermostとデータベース(MySQL)をバックアップ
WEBサーバを停止します。 /etc/init.d/nginx stop 今回のやり方ではデータベースの復元作業は必要ありませんが念のため、データベースのバックアップを取得します。 mysqldump --single-transaction -u DBユーザ名 -p DB名 > 出力先ファイル名 MySQLを停止します。 /etc/init.d/mysqld stop Mattermostを停止します。 /etc/init.d/mattermost stop Mattermostのデータ(設定、データ、ログ)が保存されているデータ領域を移動します。 mv /opt/mattermost /opt/mattermost.old
Mattermostのアップデート
Mattermost最新版のダウンロードはこちら
https://mattermost.com/download/
上記のサイトからソースファイル(mattermost-5.20.1-linux-amd64.tar.gz)を入手して、/usr/local/srcに設置します。 解凍先を/opt/以下に指定してソースファイルの解凍します tar xf /usr/local/src/mattermost-team-5.20.1-linux-amd64.tar.gz -C /opt 各種デフォルトのデータ、設定ファイル、ログデータを退避させます。 mv /opt/mattermost/config /opt/mattermost/config_bak mv /opt/mattermost/data /opt/mattermost/data_bak mv /opt/mattermost/logs /opt/mattermost/logs_bak 移動しておいたデータ、設定ファイル、ログデータを戻します。 mv /opt/mattermost.old/data /opt/mattermost/data mv /opt/mattermost.old/config /opt/mattermost/ mv /opt/mattermost.old/logs /opt/mattermost/ オーナーをmattermosに一括で変更します。 chown -R mattermost:mattermost /opt/mattermost
Mattermost起動
MySQLの起動
/etc/init.d/mysqld start
Nginxの起動
/etc/init.d/nginx start
Mattermostの起動
/etc/init.d/mattermost start
※Mattermostの起動を/opt/mattermost/bin/mattermost.sh start としていた場合、
/opt/mattermost.old/bin/mattermost.sh をコピーするか、
下記の手順で起動スクリプトを作成しなおしてください。
Mattermost起動スクリプトを下記場所に作成。
vi /opt/mattermost/bin/mattermost.sh
#!/bin/sh
# chkconfig: - 85 15
# description: mattermost
SERVICE=mattermost
start() {
cd /opt/mattermost/
sudo -u mattermost ./bin/platform > /dev/null &
echo "service $SERVICE [start]"
}
stop() {
pkill platform
echo "service $SERVICE [stop]"
}
status() {
PID=`pgrep platform | wc -l`
if [ $PID -eq 0 ]; then
echo "$SERVICE stop"
else
echo "running $SERVICE ..."
fi
}
case $1 in
start)
start
;;
stop)
stop
;;
status)
status
;;
restart)
stop
start
;;
*)
echo "Usage: $SERVICE [start|stop|restart|status]"
;;
esac
exit 0
権限の修正およびMattermostの起動
chmod 755 /opt/mattermost/bin/mattermost.sh
/opt/mattermost/bin/mattermost.sh start
現在のバージョンを確認
最後にMattermostのバージョンを確認してみましょう。新しいバージョンが表示されていれば成功です。
以上です。
万が一失敗してしまったら
下記の手順で戻します。
WEBサーバを停止します。 /etc/init.d/nginx stop MySQLを停止します。 /etc/init.d/mysqld stop Mattermostを停止します。 /etc/init.d/mattermost stop バックアップしていたデータと入れ替えます。 mv /opt/mattermost /opt/mattermost_shippai mv /opt/mattermost.old_bakup /opt/mattermost MySQLの起動 /etc/init.d/mysqld start Nginxの起動 /etc/init.d/nginx start Mattermostの起動 /etc/init.d/mattermost start
以上です。
バージョンアップするメリット
バージョンアップすることでセキュリティ向上、バグ修正、機能改善などが望めますので、ぜひ行ってみてください。





![群馬の法人ITサポートサービス Wide Net[ワイドネット] 群馬の法人ITサポートサービス Wide Net[ワイドネット]](https://www.nedia.ne.jp/wp-content/themes/nedia/images/bnr_bt_widenet03.png)



