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)をバックアップ
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
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/
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
上記のサイトからソースファイル(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起動
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 |
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のバージョンを確認してみましょう。新しいバージョンが表示されていれば成功です。
以上です。
万が一失敗してしまったら
下記の手順で戻します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
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 |
以上です。
バージョンアップするメリット
バージョンアップすることでセキュリティ向上、バグ修正、機能改善などが望めますので、ぜひ行ってみてください。