0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Vagrant + Hyper-V でMattermostを立ててみる

Posted at

趣旨

テレワークをきっかけに、既存のコミュニケーション手段だけでは不足しているため、チャットツールを使いたい…
でも大人の事情でイントラネットに閉じたものしか使えない…
しかもサーバは準備できず、普通のWindows10 PCしか用意できない…

といったこともあると思うので、その場合でも環境構築出来ないか検証してみました

前提

  • 母艦はWindows10
    • Hyper-Vが使える、ProもしくはEnterpriseエディション
    • HomeならVirtualBox使えると思いますが、検証してないのでよく分かりませぬ :-)
  • 構築するツールはSlack互換OSSの、Mattermost

Vagrant のインストール

まずドキュメントに従って一旦無効にする

Disable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V-All

公式ページでWindows用インストーラをダウンロードし、インストールする
なお、再起動することになるので注意

再起動後、もう一度Hyper-Vを有効化する
また再起動入ります…

Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V -All

Cent7イメージのBoxダウンロード

再起動後、Powershellで

vagrant box add centos/7 https://app.vagrantup.com/centos/boxes/7

途中、プロバイダを聞かれるので…

1) hyperv
2) libvirt
3) virtualbox
4) vmware_desktop

Enter your choice:

1) hypervを選択
ダウンロードが始まるのでお茶でも入れて待つ

Vagrantファイルの作成

適当な場所にディレクトリを掘って(例:Desktop\mattermost)
Vagrantfileを作成し、以下を張り付ける

Vagrant.configure("2") do |config|
  config.vm.box = "centos/7"

  config.vm.hostname = "mattermost.vagrant.local"

  config.vm.provider "hyperv" do |h|
    h.cpus = "2"
    h.memory = "2048"
    h.vmname = "mattermost-vagrant"
  end

  config.vm.provision :shell do |shell|
    shell.path = "./setup.sh"
    shell.privileged = true
  end
end

setup.shの作成

Vagrantファイルと同じディレクトリ内に、setup.shを作成し、以下貼り付ける

#!/bin/sh

# --- Package update ---

yum upgrade -y


# --- Docker setup ---

yum install -y yum-utils device-mapper-persistent-data lvm2 git
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
yum install -y docker-ce docker-ce-cli containerd.io

systemctl start docker
systemctl enable docker

if !(type "docker-compose" > /dev/null 2>&1); then
  curl -L "https://github.com/docker/compose/releases/download/1.25.5/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
  chmod +x /usr/local/bin/docker-compose
  ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
fi

# --- Container setup ---

mkdir /mattermost
cd /mattermost

git clone https://github.com/mattermost/mattermost-docker
cd ./mattermost-docker

sed -i -e "s/      # args:/      args:/" docker-compose.yml
sed -i -e "s/      #   - edition=team/        - edition=team/" docker-compose.yml

mkdir -p ./volumes/app/mattermost/{data,logs,config,plugins}
chown -R 2000:2000 ./volumes/app/mattermost/
docker-compose up -d

echo "Script done!"

起動

Powershellを管理者権限で開き、
Vagrantファイルと、setup.shが入っているディレクトリに移動、
その後、vagrant upで起動する

サービス確認

NATで割り振られたIPに対し、母艦からWebブラウザにアクセスすると、初期設定画面が表示される(はず)

Hyper-Vの仮想スイッチをデフォルトのものにしておくと、NATになるため、
他のクライアントからアクセスさせるためにはポートフォワーディングの設定が必要になる(追記予定)

参考

https://qiita.com/esparrago_b/items/a919f985ca01de253820
https://qiita.com/daichi87gi/items/d5da33c76295ee32a735
https://4thsight.xyz/324
https://patorash.hatenablog.com/entry/2019/05/02/184639
https://qiita.com/ymasaoka/items/b6c3ffea060bcd237478
https://qiita.com/8ayac/items/b6b6f0a385d08659316b

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?