mattermostのインストール

メモ:

チャットのようなツールを使いたいと依頼を受け、Slackを検討したのですが社内の事情により使用できなかったため代替ツールとしてMattermostを導入することとしました。ここでは、Mattermostのインストール手順をまとめていきます。

Mattermost Documentationでは、CentOS 7にMySQL又はPostgreSQlとnginxを使ったインストール方法が記載されているので、ここでは、CentOS 7.3.1611にMySQLとnginxを使って環境を構築します。

Mattermost Documentationを確認しながら作業を進めていきます。

MySQL 5.7のインストール

MySQLのyumリポジトリーをダウンロードし、リポジトリを追加します。

$ wget http://dev.mysql.com/get/mysql57-community-release-el7-9.noarch.rpm
$ sudo yum localinstall mysql57-community-release-el7-9.noarch.rpm

MySQLをインストールします。

$ sudo yum -y install mysql-community-server

MySQLをサービスとして起動できるよう登録していきます。

$ sudo systemctl start mysqld
$ sudo systemctl enable mysqld

MySQLの管理者ユーザー(root)の初期パスワードが必要となるので、次のコマンドで初期パスワードを確認します。

$ sudo grep 'temporary password' /var/log/mysqld.log
2017-05-15T16:27:10.193398Z 1 [Note] A temporary password is generated for root@localhost: jdxdeyV=m8eG

初期パスワードが「jdxdeyV=m8eG」となっていたので、事前に管理者ユーザーのパスワードを変更します。

$ mysql -u root -p
Enter password:
Welcome to ...
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY '新しいパスワード';
Query OK, 0 rows affected (0.01 sec)
mysql > exit

次にMySQLの初期設定を行います。今回は、事前に管理者のパスワードを変更しましたが mysql_secure_installation の処理中に変更することもできます。

$ sudo mysql_secure_installation

mysql_secure_installationでは、MySQLのセキュリティ対策として色々確認されますが、ここでは「Y」を選択して不要なデータベースなどを削除しておきます。

MySQLのインストールが終わったので、Mattermost用のデータベースを用意します。

$ mysql -u root -p
mysql> create database mattermost;
mysql> grant all privileges on mattermost.* to 'mmuser'@'localhost' identified by 'パスワード';
mysql> flush privileges;

ここまでで、入れ物の用意が完了しました。

Mattermostのインストール

MattermostのサイトからMattermostをダウンロードします。

$ cd /usr/src
$ sudo wget https://releases.mattermost.com/4.0.1/mattermost-4.0.1-linux-amd64.tar.gz

ダウンロードしたファイルを展開して、/opt配下へ配置しdataディレクトリを作成します。

$ sudo tar -xvzf mattermost-team-4.0.1-linux-amd64.tar.gz
$ sudo mv mattermost /opt
$ sudo mkdir -p /opt/mattermost/data

Mattermostを実行するユーザを作成します。

$ sudo useradd -r mattermost -U
$ sudo chown -R mattermost:mattermost /opt/mattermost
$ sudo chmod -R g+w /opt/mattermost

Mattermostを動作させるために必要な最低限の設定を行います。 ポート番号は、ドキュメントに合わせて8065に設定し、DataSourceのDBユーザー名、パスワード、データベース名は先ほどMattermost用に作成したものと合わせて設定します。

$ sudo vi /opt/mattermost/config/config.json
        "ListenAddress": ":8065",

        "DriverName": "mysql",
        "DataSource": "mmuser:パスワード!@tcp(localhost:3306)/mattermost?charset=utf8mb4,utf8",

        "DefaultServerLocale": "ja",
        "DefaultClientLocale": "ja",

Mattermostの動作確認

インストール作業が完了したので、Mattermostの動作確認を行います。binディレクトリにあるplatformを使ってMattermostを実行してみます。

$ cd /opt/mattermost/bin
$ sudo ./platform

Webブラウザから8065ポートにアクセスし、アカウント登録画面が表示されたら正常に動作してます。

サービスとして登録する

Mattermostをサービスとして実行できるよう、サービス定義ファイルを作成します。

$ sudo vi /etc/systemd/system/mattermost.service
[Unit]
Description=Mattermost
After=syslog.target
After=network.target
After=mysqld.service

[Service]
Type=simple
WorkingDirectory=/opt/mattermost/bin
ExecStart=/opt/mattermos

[Install]
WantedBy=multi-user.target

定義ファイルができたら、サービスを登録し開始します。

$ sudo systemctl start mattermost
$ sudo systemctl enable mattermost

もう一度Webブラウザからアクセスし、正常に画面が表示されたらインストールは完了です。