てくてくあるく

WordPress の テーマ とか プラグイン に ついて 勉強しています

今回は Mattermost を 立ち上げます

Bitbucket から Webhook で 通知を受け取る時に ちょっと カスタマイズする必要があったので 今回も ローカル環境に立てて 実験用に使います

更に GitBucket からも Webhook で 通知を受け取れるように したいと 考えていますね


というわけで

Vagrant で GitBucket を 立ち上げてみた
https://tekuaru.jack-russell.jp/2018/08/24/2006/

の 第二弾 となります


Mattermost


Mattermost
https://mattermost.com/

Mattermost は Slack を 意識した オープンソース の チャットツール になります

よく Slackクローン と 言われていますね

では 早速 Vagrant で 立ち上げてみましょう


Vagrantfile


VAGRANT_CONFIGURATION = "2"

VAGRANT_NAME          = "mattermost"
VAGRANT_NETWORK       = "192.168.33.5"


Vagrant.configure(VAGRANT_CONFIGURATION) do |config|

  config.vm.box = "centos/7"

  config.vm.hostname = VAGRANT_NAME

  config.vm.network "private_network", ip: VAGRANT_NETWORK

  config.vm.synced_folder "../script/", "/home/vagrant/script/", create: true, owner: 'vagrant', group: 'vagrant', mount_options: ['dmode=777,fmode=777']

  config.vm.provider "virtualbox" do |vb|
    vb.name = VAGRANT_NAME
  end

  config.vm.provision "shell", :path => "setup.sh"

end

setup.sh


echo '# SELinux disable ----------------------------------------------------------------------------------'
setenforce 0
sed -i.bak "/SELINUX/s/enforcing/disabled/g" /etc/selinux/config

echo '# yum ----------------------------------------------------------------------------------------------'
yum -y update
yum -y upgrade

echo '# mkdir ~/download ---------------------------------------------------------------------------------'
mkdir -p ~/download/
cd ~/download/

# ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

echo '# curl ---------------------------------------------------------------------------------------------'
yum -y install curl-devel

echo '# MariaDB 10.3 -------------------------------------------------------------------------------------'
mkdir -p /etc/yum.repos.d/
touch /etc/yum.repos.d/mariadb.repo
cat << EOS > /etc/yum.repos.d/mariadb.repo
# MariaDB 10.3 CentOS repository list - created 2018-09-12 04:00 UTC
# http://downloads.mariadb.org/mariadb/repositories/
[mariadb]
name = MariaDB
baseurl = http://yum.mariadb.org/10.3/centos7-amd64
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1
EOS

yum -y install MariaDB-server MariaDB-client

echo '# MariaDB Setup ------------------------------------------------------------------------------------'
systemctl restart mariadb.service

# mysql_secure_installation

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

echo '# Mattermost ---------------------------------------------------------------------------------------'
cd ~/download/
curl -L -O https://releases.mattermost.com/5.2.1/mattermost-5.2.1-linux-amd64.tar.gz
tar zxvf mattermost-5.2.1-linux-amd64.tar.gz -C /opt
mkdir /opt/mattermost/data
cd ~/download/

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

sed -i.bak "s/mmuser:mostest@tcp(dockerhost:3306)\/mattermost_test?charset=utf8mb4,utf8\&readTimeout=30s\&writeTimeout=30s/mmuser:mmuser-password@tcp(127.0.0.1:3306)\/mattermost?charset=utf8mb4,utf8\&readTimeout=30s\&writeTimeout=30s/g" /opt/mattermost/config/config.json

touch /etc/systemd/system/mattermost.service
cat << EOS > /etc/systemd/system/mattermost.service
[Unit]
Description=Mattermost
After=syslog.target network.target postgresql-9.4.service

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

[Install]
WantedBy=multi-user.target
EOS
chmod 664 /etc/systemd/system/mattermost.service

# ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

echo '# MariaDB restart ----------------------------------------------------------------------------------'
systemctl enable mariadb.service
systemctl restart mariadb.service

echo '# Mattermost restart -------------------------------------------------------------------------------'
systemctl enable mattermost
systemctl restart mattermost

今回は MariaDB で Mattermost を 動かしています

vagrant up すると

Mattermost ローカル環境 (vagrant-hostsupdater 使用)
http://mattermost:8065/

で アクセス することができます


感想


今回も サクッと 環境を作ることができました

ファイルを 展開して アプリケーションを動かすタイプなので アップデートを行うのも 一苦労そうです…

I referred to Upgrading Mattermost Server ‐ Mattermost 5.2 documentation.
https://docs.mattermost.com/administration/upgrade.html

こちらに ドキュメント が ありますが 僕には難しそう…

vagrant にて 何度か トライしてみて sh を 作ってみないと 怖いですね…

Bitbucket から Webhook が うまく行ったら その時は また記事を書くかもしれません

Related Article

Bitbucket の Webhook から Mattermost へ 投稿する

詳細へ »

vagrant up 時に synced_folder が マウントできなくて 困った話

詳細へ »

GitHub の Webhook から Mattermost へ Workflow runs の 結果 を 投稿する

詳細へ »