心地よいライフハック

これ便利だな〜と思ったことなど

MatterMost を CentOS7 にインストールする

Slackは便利だけども、クラウドだし、
機密情報を含む内容を投稿するには微妙。。
そういった時の、" Mattermost "。
自分で お好みの場所に slack風 チャットサーバーを たてちゃいましょう。
 
CentOS7 に matterMost をインストールして、立ち上げるところまでやります。
 
 
今回は、CentOS7 に 構築した時の 記録をご紹介します。
( 2018年3月13日 時点の最新 )
 
- - - - -
 
< 実施環境 >
CentOS Linux release 7.4.1708 (Core) 
MariaDB 10.3.2
mattermost 4.7.3
vim がインストール済みであること 
 
< MariaDB のインストール準備 >
 
  ○ GPG-keyをインストール 
 
  ○ repoファイルの作成
 

# vim /etc/yum.repos.d/mariadb.repo

 

  
  ○ MatterMost で使うデータベース MariaDB をインストール
 
 

# yum -y install MariaDB-client MariaDB-server

 

 
  ○ 自動起動と起動の設定
 
  # systemctl enable mariadb.service
  # systemctl start mariadb.service

 

< MariaDB の初期設定 >
 

  # mysql_secure_installation

 

 
  ここで初期設定を行う。
  不要なデータベースや anonymous ユーザを削除。
 
  ○ MariaDB 上にデータベースやユーザを作成
    (ここ重要!)
  
 

# mysql -u root

 

 
    CREATE DATABASE mattermost;
    CREATE USER 'mmuser@localhost' IDENTIFIED BY 'mmuserpassword';
    GRANT ALL PRIVILEGES ON mattermost.* TO 'mmuser@localhost' WITH GRANT OPTION;
    FLUSH PRIVILEGES;
    quit
 

 

 
< Mattermost のインストール >
 
  ○ ここから、欲しいバージョンを持ってくる。
 
  例)
  # tar zxvf mattermost-4.7.3-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

 

 
  ○ Mattermost 設定ファイルの確認 - SqlSettings の部分を確認。
 

# less /opt/mattermost/config/config.json 

 

 
    "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
    },

  

  ○ このうち DataSource の部分を編集して紐づける。
  

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

 

 
   ★ mattermost_test ではなくなっているところが要チェック!!
 
  - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 
  ○ 同様に PluginSettings の 部分も以下のように修正する。
 
    "PluginSettings": {
        "Enable": false,
        "Plugins": {}
    }

 

 
    ( もしくは plugins パスを /opt/mattermost/bin/plugins にしたい場合 )    
 
   
"PluginSettings": {
          "Enable": true,
          "EnableUploads": false,
          "Directory": "./plugins",
          "ClientDirectory": "/opt/mattermost/bin/plugins",
          "Plugins": {},
          "PluginStates": {
              "jira": {
                  "Enable": true
              }
          }
      }

 

 
 
  < Mattermost サービス化 および UNIT 定義 >
 
  systemd に 以下の内容で /etc/systemd/system/mattermost.service を新規作成
 
 
  [Unit]
  Description=Mattermost
  After=syslog.target network.targeti mariadb.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 を起動
 
 # systemctl daemon-reload
 # systemctl enable mattermost.service
 # systemctl start mattermost.service

 

 
  起動が完了したら、ブラウザで http://(立ち上げたホストのIPアドレス):8065/ にアクセスします。