サーバーを契約する
今回さくらVPSを契約してSlackのオープンソース版(OSS)のMattermostサーバーを構築していきます。
チャットでのファイル送信など考慮して、50GBプランを選択。
サーバーが設置されている場所は、一番低価格な石狩を選択。
念のため初期費用が1,000円プラスされますが、ストレージを100GBに変更。
会員登録やカード情報など登録すると、すぐに2週間の無料期間がスタートし利用することができます。
サーバーの管理画面でOSをインストールする
ログインしたら、「契約情報」タブを開き、「契約サービスの確認」をクリックします。
契約中のサービスが表示されたら、「サーバー設定」をクリックします。
VPS管理画面が表示されますので、「各種設定」から「OSインストール」を行います。
インストールするOS「CentOS8」を選択し、管理者のパスワードを入力し画面下部の「設定内容を確認する」をクリックします。
インストールの実行確認ウィンドウが表示されますので、「インストールを実行する」をクリックします。
ステータスが「稼働中」になれば、インストール完了です。
この後、サーバーへ必要なソフトなどインストールする必要がありますので、サーバーURLを控えておいてください。
telnetでサーバーにログインする。
いろいろなtelnetクライアントがあるかと思いますが、個人的にはTeraTermを昔から利用してますのでおすすめです。
TeraTermをインストールし起動したら、サーバーURLを設定しOKをクリックします。
セキュリティ警告が表示されたら、「続行」をクリックします。
ユーザ名に「root」と入力し、OSインストール時に設定したパスワードをパスフレーズに入力しOKをクリックします。
下のようなコマンド入力画面が表示されたら、サーバーへのログイン完了です。
Mattermostの環境を作成する。
TeraTermを利用している場合は、コマンドをコピーした後に、TeraTermのコマンドラインを右クリックすると貼り付けすることができます。
1.OSを更新する
まずCentOS8をインストールしただけですので、アップデートを適用します。
dnf update
途中 「Total download size: 〇〇〇 M Is this ok [y/N]: 」などと、表示されたら「y」を入力しEnterを押します。
2.MariaDBをインストールと設定
データベース「MariaDB」を以下のコマンドでインストールします。
dnf install mariadb-server -y
インストールが完了したら、サービスを起動します。
systemctl start mariadb
サーバーが再起動しても、自動でサービスが起動するようにします。
systemctl enable mariadb
MariaDBへの管理者ログインパスワードが未設定ですので、パスワードを設定します。
mysql_secure_installation
コマンドラインにメッセージが表示されますので、下記のように入力していきます。
Enter current password for root (enter for none): ←現在のパスワードなので空欄でEnter
Set root password? [Y/n] ←YでEnter
New password: ←パスワードを入力
Re-enter new password: ←パスワード確認入力
rootユーザーでMariaDBにログインします。
mysql -u root -p
上記で設定したパスワードの入力を求められるので、パスワード入力しEnterを押します。
MariaDBにログインすると、下記のような画面になります。
Mattermostのデータベースを作成します。
CREATE DATABASE mattermostdb;
作成したデータベースにユーザーを作成します。
GRANT ALL PRIVILEGES ON mattermostdb.* TO mattermost@localhost IDENTIFIED BY '【パスワードを設定】';
作成したユーザーを有効にします。
FLUSH PRIVILEGES;
MariaDBからログアウトします。
EXIT;
3.Mattermostをインストールします。
サーバー上でMattermostを実行するユーザーを作成します。
useradd -d /opt/mattermost -U -M mattermost
ダウンロードコマンドをインストールします。
dnf install wget
最新バージョンのMattermostをダウンロードします。
wget https://releases.mattermost.com/5.22.2/mattermost-5.22.2-linux-amd64.tar.gz
ダウンロードしたファイルを解凍します。
tar -xvzf mattermost-5.22.2-linux-amd64.tar.gz
解凍したフォルダをoptフォルダへ移動します。
mv mattermost /opt/
ダウンロードしたファイルは必要無いので削除します。
rm mattermost-5.21.0-linux-amd64.tar.gz
Mattermostフォルダにdataフォルダを作成します。
mkdir /opt/mattermost/data
Mattermostフォルダに所有ユーザーと権限を設定します。
chown -R mattermost:mattermost /opt/mattermost chmod -R g+w /opt/mattermost
コマンドラインで使えるテキストエディタをインストールします。
dnf install nano
Mattermostの設定ファイルを開きます。
nano /opt/mattermost/config/config.json
設定ファイル内のSqlSettingsのDataSource部分を修正しCtrl+Xで終了時に保存して終了します。
"SqlSettings": { "DriverName": "mysql", "DataSource": "mattermost:【設定したパスワード】@tcp(localhost:3306)/mattermostdb?charset=utf8mb4,utf8\u0026readTimeout=30s\u0026writeTimeout=30s", "DataSourceReplicas": [], "DataSourceSearchReplicas": [], "MaxIdleConns": 20, "ConnMaxLifetimeMilliseconds": 3600000, "MaxOpenConns": 300, "Trace": false, "AtRestEncryptKey": "", "QueryTimeout": 30 },
Mattermostを自動起動するサービスファイルを作成する。
nano /etc/systemd/system/mattermost.service
空のファイルが作成されるので、下記をコピーし右クリックで張り付け、Ctrl+Xで保存終了する。
[Unit] Description=Mattermost After=syslog.target network.target mariadb.service [Service] Type=notify WorkingDirectory=/opt/mattermost User=mattermost ExecStart=/opt/mattermost/bin/mattermost PIDFile=/var/run/mattermost.pid TimeoutStartSec=3600 LimitNOFILE=49152 [Install] WantedBy=multi-user.target
作成したサービスファイルを読み込ませます。
systemctl daemon-reload
Mattermostサービスを起動します。
systemctl start mattermost
Mattermostサービスを再起動時でも自動起動するようにします。
systemctl enable mattermost
4.WEBサーバーをインストールする。
Nginx Webサーバーをインストールします。
dnf install nginx -y
Nginxを起動し、OS再起動でもサービスを自動起動するようにします。
systemctl start nginx systemctl enable nginx
Nginx サービスを再起動します。
systemctl restart nginx
5.ファイヤーウォールを設定します。
SELinuxを無効にするために設定ファイルを開きます。
nano /etc/selinux/config
開いたら「SELINUX =disabled 」の部分を、下記のように修正します。
SELINUX = permissive
ファイヤーウォールを起動し、OS再起動時に自動起動するように設定します。
systemctl start firewalld systemctl enable firewalld
ファイヤーウォールにMattermostのポート開放を追加します。
firewall-cmd --zone=public --add-port=8065/tcp --permanent
ファイヤーウォールを再起動します。
firewall-cmd --reload
さくらVPSサーバー管理画面から、パケットフィルタをクリックします。
パケットフィルタ設定を開きます。
Mattermostのポート番号8065を追加します。
ブラウザでMattermostを表示する。
サーバーURL末尾に「:8065」を追加してブラウザURLを入力します。
例:http://〇〇〇〇〇.vs.sakura.ne.jp:8065/
最初にアカウントを作成する画面が表示されます。
初期設定時には、パスワードは10文字以上の大小英数と記号を含む必要があります。
次にチャットグループを作成します。
チャットグループ名を入力します。
今回は「test」と入力しましたが、後で変更も可能です。
グループのURLが表示されますので、確認してFinishをクリックします。
Mattermostを日本語化する
メニューをクリックし、System Console(システムコンソール)を開きます。
システムコンソールのLocalization(ローカリゼーション)を開き、各種言語設定を行います。
次にチャットグループに戻り、Account Setting(アカウントセッティング)を開きます。
Display(ディスプレイ)の項目を開き、LanguageのEditを開きます。
アカウントの言語設定を変更し、保存して終了します。(Saveをクリック)