らくがきちょう

なんとなく

CentOS 7.3 に Mattermost 4.4.2 をインストールする

以前に CentOS7 に Mattermost 4.2.0 をインストールするという記事を書きました。 Mattermost 4.4.2 がリリースされていたので、記事を更新しておきます。 内容には、ほぼ変更ありません。

テスト環境

今回は以下の環境を構築します。

MariaDB のインストール

Mattermost のバックエンドになる MariaDB をインストールします。 まず、GPG-KEY をインストールします。

rpm --import https://yum.mariadb.org/RPM-GPG-KEY-MariaDB

/etc/yum.repos.d/mariadb.repo というファイルを以下の内容で新規作成します。

[mariadb]
name = MariaDB
baseurl = http://yum.mariadb.org/10.3.2/centos73-amd64/
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1

インストールします。

yum -y install MariaDB-client MariaDB-server

起動&自動起動の設定を行います。

systemctl enable mariadb.service
systemctl start mariadb.service

MariaDB の初期設定

mysql_secure_installation で初期設定を行い、不要なデータベースや anonymous ユーザを削除しておきます。

mysql_secure_installation

MariaDB 上にデータベースやユーザを作成します。

mysql -u root
CREATE DATABASE mattermost;
CREATE USER 'mmuser'@'localhost' IDENTIFIED BY 'mmuser-password';
GRANT ALL PRIVILEGES ON mattermost.* TO 'mmuser'@'localhost' WITH GRANT OPTION;
FLUSH PRIVILEGES;
quit

Mattermost のインストール

ダウンロードページから Matttermost 最新版のソースコードをダウンロードします。 現時点の最新版は 4.2.0 でした。 ダウンロードが完了したら /opt 配下に展開します。 更に、データ用のディレクトリとして /opt/mattermost/data も作成しておきます。

curl -L -O https://releases.mattermost.com/4.4.2/mattermost-4.4.2-linux-amd64.tar.gz
tar zxvf mattermost-4.4.2-linux-amd64.tar.gz -C /opt
mkdir /opt/mattermost/data

Mattermost 実行用のシステムアカウントを作成します。 作成したユーザに必要な権限も付与します。

useradd --system --user-group mattermost
chown -R mattermost:mattermost /opt/mattermost
chmod -R g+w /opt/mattermost

設定ファイルは /opt/mattermost/config/config.json にあります。 SqlSettings 部分はデフォルトで以下のようになっているはずです。

    "SqlSettings": {
        "DriverName": "mysql",
        "DataSource": "mmuser:mostest@tcp(dockerhost:3306)/mattermost_test?charset=utf8mb4,utf8&readTimeout=30s&writeTimeout=30s",
        "DataSourceReplicas": [],
        "DataSourceSearchReplicas": [],
        "MaxIdleConns": 20,
        "MaxOpenConns": 300,
        "Trace": false,
        "AtRestEncryptKey": "",
        "QueryTimeout": 30
    },

DataSourceMariaDB 上に作成したデータベース名・ユーザ名・パスワードに合わせて修正します。 今回は以下のようにしました。

        "DataSource": "mmuser:mmuser-password@tcp(127.0.0.1:3306)/mattermost?charset=utf8mb4,utf8&readTimeout=30s&writeTimeout=30s",

systemd に Mattermost を登録します。 以下の内容で /etc/systemd/system/mattermost.service を新規作成します。

[Unit]
Description=Mattermost
After=syslog.target network.target postgresql-9.4.service

[Service]
Type=simple
WorkingDirectory=/opt/mattermost/bin
User=mattermost
ExecStart=/opt/mattermost/bin/platform
PIDFile=/var/spool/mattermost/pid/master.pid
LimitNOFILE=49152

[Install]
WantedBy=multi-user.target

デフォルトのままだと Mattermost が Port を Listen 出来ない為、setcap しておきます。

setcap cap_net_bind_service=+ep /opt/mattermost/bin/platform

Mattermost を起動します。

systemctl daemon-reload
systemctl enable mattermost.service
systemctl start mattermost.service

Mattermost はデフォルトで 8,065/TCP を Listen しますので、ブラウザで http://xxx.xxx.xxx.xxx:8065/ にアクセスします。