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/
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
以上です。
バージョンアップするメリット
バージョンアップすることでセキュリティ向上、バグ修正、機能改善などが望めますので、ぜひ行ってみてください。