オープンソースのチャット型コラボレーションツール「Rocket.Chat」や「Mattermost」を使ってみよう 3ページ
「Mattermost」を使ってみる
続いて、Mattermostについて紹介しよう。こちらは、「セルフホスティング式のSlack代替」を謳っており、より強くSlackを意識しているようだ。Slackの機能をほぼすべて備えており、さらにSlackと一部互換性のあるWebフック機能を提供している(図10)。
また、Rocket.Chatと同様、WebブラウザからだけでなくiOS/AndroidアプリやWindows/Mac OS X/Linux向けデスクトップクライアントも提供されている。そのほか、Slackはチーム毎にアカウント作成が必要だったが、Mattermostでは1ユーザーを複数のチームに所属させることができたり、Markdownによるフォーマッティング、チャネル名に英語以外の言語を利用可能、シンタックスハイライティングなど、非常に多くの機能を備えているのも特徴だ。
なお、MattermostはGo言語で実装されており、データベースにはMySQL(および互換データベースであるMariaDB)もしくはPostgreSQLが利用できる。ただし、MySQL/MariaDBの場合はFULLTEXTインデックスを利用するため、MySQL 5.6.4以上もしくはMariaDB 10.0.5以上が必要となる。CentOS 7の場合、現時点ではこれらは公式パッケージとしては用意されていないが、MariaDBの公式パッケージを利用すれば容易に入手が可能だ。
Mattermostのインストール
今回はCentOS 7へのインストールについて紹介する。これ以外の環境へのインストールについては、Rocket.Chatと同様、Mattermostの公式ドキュメントを参照して欲しい。
まず、MariaDBの最新版を利用するためにMariaDBの公式リポジトリを利用できるよう、/etc/yum.repos.d/mariadb.repoという設定ファイルを作成する。
# touch /etc/yum.repos.d/mariadb.repo
設定ファイルの中身は次のようになる。
[mariadb] name = MariaDB baseurl = http://yum.mariadb.org/10.1/centos7-amd64 gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB gpgcheck=1
次に、yumコマンドでMariaDBの最新安定版をインストールする。なお、すでにCentOSの公式パッケージでMariaDBをインストールしている場合はいったんMariaDBを停止させておく必要がある。
# systemctl stop mariadb ←MariaDBがすでにインストールされている場合、いったんmariadbサービスを停止させておく # yum install --enablerepo=mariadb MariaDB-server MariaDB-client # systemctl start mariadb
続いて、適当なディレクトリに以下のような「create_db.sql」ファイルを作成する。
# touch create_db.sql
このファイルには、データベースを作成するための次のようなSQLを記述する。なお、「mmuser_password」の部分は適当なパスワードに置き換えて欲しい。
CREATE DATABASE mattermost; CREATE USER 'mmuser'@'localhost' IDENTIFIED BY 'mmuser_password'; GRANT ALL PRIVILEGES ON mattermost.* TO 'mmuser'@'localhost' IDENTIFIED BY 'mmuser_password'; FLUSH PRIVILEGES
ファイルを作成したら、mysqlコマンドを使ってこのSQLを実行し、データベースおよびユーザーを作成する。
# mysql -u root < create_db.sql
続いて、Mattermost本体のインストールを行う。Mattermost最新版の配布アーカイブ入手URLはダウンロードページに掲載されているので、このURLをコピーし、インストールするサーバーにダウンロードする。
# curl -o mattermost-team-3.3.0-linux-amd64.tar.gz https://releases.mattermost.com/3.3.0/mattermost-team-3.3.0-lin ux-amd64.tar.gz
ダウンロードしたパッケージを展開すると「mattermost」というディレクトリが作成されるので、これを適当なディレクトリに移動する。今回は/opt/ディレクトリ以下に移動した。
# tar xvzf mattermost-team-3.3.0-linux-amd64.tar.gz # mkdir /opt # mv mattermost /opt/
続いて、データ保存先ディレクトリ(/opt/mattermost/data)の作成と、設定ファイル(/opt/mattermost/config/config.json)の編集を行う。
# mkdir -p /opt/mattermost/data
/opt/mattermost/config/config.json内には多くの設定内容が記されているが、ここではデータベース設定のみを環境に応じて修正しておく。下記の「SqlSettings」部分がデータベース設定となっているので、「DriverName」が「mysql」になっていることを確認し、「DataSource」を「”mmuser:<mmuserのパスワード>@localhost:3306/mattermost?charset=utf8mb4,utf8″」と設定する。データベースとしてlocalhost以外を使用する場合は「localhost」の部分を変更すれば良い。
"SqlSettings": { "DriverName": "mysql", "DataSource": "mmuser:mmuser_password@localhost:3306/mattermost?charset=utf8mb4,utf8", "DataSourceReplicas": [], "MaxIdleConns": 10, "MaxOpenConns": 10, "Trace": false, "AtRestEncryptKey": "7rAh6iwQCkV4cA1Gsg3fgGOXJAQ43QVg" }, "LogSettings"
また、今回はMattermostを「mattermost」というユーザーで実行するので、useraddコマンドでこのユーザーを作成し、各種ファイル/ディレクトリのパーミッションを変更しておく。
# useradd -r mattermost -U # chown -R mattermost:mattermost /opt/mattermost
以上でインストール作業は完了だ。続いてSystemdでMattermostサービスを管理するための設定ファイル(/etc/systemd/system/mattermost.service)を用意する。
# touch /etc/systemd/system/mattermost.service
ファイルの中身は下記のようになる。
[Unit] After=network-online.target Description=mattermost server Requires=network-online.target rsyslog.service mariadb.service [Service] WorkingDirectory=/opt/mattermost/bin User=mattermost ExecStart=/opt/mattermost/bin/platform PIDFile=/var/spool/mattermost/pid/master.pid StandardOutput=syslog StandardError=syslog SyslogIdentifier=mattermost [Install] WantedBy=multi-user.target
最後にsystemctlコマンドで設定の反映とmattermostサービスの実行を行う。
# systemctl daemon-reload # systemctl start mattermost
「systemctl status」コマンドで正しくサービスが稼動しているかどうかも確認しておこう。
# systemctl status mattermost ● mattermost.service - mattermost server Loaded: loaded (/etc/systemd/system/mattermost.service; disabled; vendor preset: disabled) Active: active (running) since 火 2016-08-30 20:42:08 JST; 2s ago Main PID: 25733 (platform) Memory: 10.6M CGroup: /system.slice/mattermost.service mq25733 /opt/mattermost/bin/platform : :
最後に、今回使用する8065番ポートにアクセスできるようファイアウォールの設定も行っておく。
# firewall-cmd --add-port 8065/tcp