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