ウェブサイト検索

Mattermost を RHEL 7.1 にインストールする方法


導入

Mattermost は、Slack に代わるオープンソースのプライベート クラウドです。 MIT ライセンスに基づいてリリースされた、Web、PC、電話用の職場メッセージング システム。
前回のチュートリアルでは、Ubuntu 16.04 にインストールする方法について説明しました。
次に、データベースとして MySQL を使用して、RHEL 7.1 マシンに Mattermost をインストールして構成する方法を見てみましょう。

データベースのインストール

サーバー上で、次のコマンドを実行して MySQL 5.7 をダウンロードします。

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

そして、次のコマンドを使用して、そのファイルから yum リポジトリをインストールします。

yum localinstall mysql57-community-release-el7-9.noarch.rpm

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

yum install mysql-community-server

そしてそれを開始します:

systemctl start mysqld

このコマンドを初めて実行すると、MySQL は root アカウントの一時パスワードを生成します。それを取得するには、次のようにします。

grep 'temporary password' /var/log/mysqld.log

このコマンドは次のような出力を出力します。

2017-03-02T08:21:27.969295Z 1 [Note] A temporary password is generated for root@localhost: Ed4SxpDyuH(y

rootのパスワードを変更します。まず、root としてログインします。

mysql -u root -p

仮パスワードを入力します。
次に、MySQL シェルで次のようにします。

mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'my_new_root_strong_password';
mysql> EXIT;

起動時に MySQL が自動的に起動するように設定します。

chkconfig mysqld on

MySQL シェルを再度起動します。

mysql -u root -p

新しい root パスワードを入力して、Mattermost のユーザーと新しいデータベースを作成します。

mysql> CREATE USER 'mmuser'@'localhost' IDENTIFIED BY 'mmuser_strong_password';
mysql> CREATE DATABASE mattermostdb;
mysql> GRANT ALL PRIVILEGES ON mattermostdb.* TO 'mmuser'@'localhost';
mysql> FLUSH PRIVILEGES;
mysql> EXIT;

Mattermost サーバーをインストールする

Mattermost Server の最新リリースをダウンロードします。たとえば、現時点で次のように書いています。

wget https://releases.mattermost.com/3.6.2/mattermost-3.6.2-linux-amd64.tar.gz

アーカイブを解凍し、「mattermost」フォルダーを次の場所に移動します。

/opt
tar xf *.gz
mv mattermost /opt/

ストレージ ファイル用のディレクトリを作成します。

mkdir /opt/mattermost/data

ドライブに、保存されるアップロードされるファイルと画像の予想される数を保持するのに十分な大きさがあることを確認してください。

data


次に、両方とも「mattermost」という名前のユーザーとグループを設定し、所有権と権限を設定します。

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

次の方法でデータベース ドライバーをセットアップします。

/opt/mattermost/config/config.json

ファイル。その中で「DriverName」と「DataSource」の行を検索し、次のように変更します。

"DriverName": "mysql"
"DataSource": "mmuser:@tcp(localhost:3306)/mattermost?charset=utf8"
Save, exit, and test the Mattermost Server with the following command:
sudo -u mattermost /opt/mattermost/bin/platform

すべてが機能すると、出力されるはずです

 Server is listening on :8065

。 CTRL+Cで中断します。

systemd ユニットを作成します。

Mattermost 用の systemd ファイルを作成します。

/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

実行可能にします。

chmod 664 /etc/systemd/system/mattermost.service

そしてサービスをリロードします。

systemctl daemon-reload

Mattermost サービスを有効にします。

chkconfig mattermost on

そして systemd で起動します。

systemctl start mattermost

URL http://localhost:8065 にアクセスして、実行中かどうかを確認します。

NGINX のインストールと構成

インストール

運用システムでは、Mattermost Server の前にプロキシ サーバーを使用します。この場合、NGINX。
これを行うことの主な利点は次のとおりです。

  • SSL終端
  • ポートマッピング:80~:8065
  • HTTP から HTTPS へのリダイレクト
  • 標準リクエストログ

NGINX を RHEL 7.1 にインストールするには、yum リポジトリ ファイルを作成します。

/etc/yum.repos.d/nginx.repo

、次の内容:

[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/rhel/7.1/$basearch/
gpgcheck=0
enabled=1

保存して終了し、yum を使用して NGINX をインストールします。

yum install nginx.x86_64

NGINX を起動してテストします。

systemctl start nginx
構成

NGINX をプロキシ サーバーとして設定するには、次のファイルを作成します

/etc/nginx/sites-available/mattermost

そして過去:

upstream backend {
   server localhost:8065;
}

proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=mattermost_cache:10m max_size=3g inactive=120m use_temp_path=off;

server {
   listen 80;
   server_name    mattermost.mydomain.com;

   location /api/v3/users/websocket {
       proxy_set_header Upgrade $http_upgrade;
       proxy_set_header Connection "upgrade";
       client_max_body_size 50M;
       proxy_set_header Host $http_host;
       proxy_set_header X-Real-IP $remote_addr;
       proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
       proxy_set_header X-Forwarded-Proto $scheme;
       proxy_set_header X-Frame-Options SAMEORIGIN;
       proxy_buffers 256 16k;
       proxy_buffer_size 16k;
       proxy_read_timeout 600s;
       proxy_pass http://backend;
   }

   location / {
       client_max_body_size 50M;
       proxy_set_header Connection "";
       proxy_set_header Host $http_host;
       proxy_set_header X-Real-IP $remote_addr;
       proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
       proxy_set_header X-Forwarded-Proto $scheme;
       proxy_set_header X-Frame-Options SAMEORIGIN;
       proxy_buffers 256 16k;
       proxy_buffer_size 16k;
       proxy_read_timeout 600s;
       proxy_cache mattermost_cache;
       proxy_cache_revalidate on;
       proxy_cache_min_uses 2;
       proxy_cache_use_stale timeout;
       proxy_cache_lock on;
       proxy_pass http://backend;
   }
}

次のコマンドを使用して、既存のデフォルトのサイト対応ファイルを削除します。

rm /etc/nginx/sites-enabled/default

そして Mattermost を有効にします。

ln -s /etc/nginx/sites-available/mattermost /etc/nginx/sites-enabled/mattermost

NGINX を再起動します。

systemctl restart nginx

結論

このプロセスの最後には、サーバーが起動して実行されているはずです。 Web ブラウザで URL http://mattermost.mydomain.com にアクセスし、電子メール アドレスを入力してアカウントを作成して Mattermost の構成を続けます。
それだけです!サーバーはメッセージング システムとして機能する準備ができています。

関連記事: