てくてくあるく

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


01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
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


01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
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

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

詳細へ »

Vagrant で GitBucket を 立ち上げてみた

詳細へ »

Bitbucket の Webhook から Mattermost へ 投稿する

詳細へ »