はじめに
外部Webサービスの利用が禁止の場所にいることが多いです。
チャットすらできないので、うんざりです。
...自分で作ればいいじゃん!
本稿が目指すところ
- OSSで、Webアプリケーションを動かす基盤を作ります
ついでに、Webアプリケーションも動かします。 - インターネットに自由に繋げない環境での運用を想定します
インストール/アップデート時以外は、インターネット接続を不要にします。 - 簡単に構築する
なるべくコマンドコピペで構築できるようにします。
というわけで、以下の環境を構築します。
用途 | アプリケーション |
---|---|
仮想マシン作成 | Vagrant + Vritualbox |
仮想OS | Ubuntu16.04 |
コンテナ管理 | Rancher + Docker Compose |
ユーザ認証管理 | OpenLdap |
LDAP管理GUI | phpLDAPadmin |
Webアプリ | Rocket.Chat |
Webアプリは、用途に合わせて追加/削除します。
今回は試しに、Rocket.Chatを導入します
仮想化ソフトウェアインストール
公式サイトからインストーラをダウンロード→インストールします。
Vagrant
https://www.vagrantup.com/
Virtualbox
https://www.virtualbox.org/
仮想マシン作成
Vagrantfile作成
Ubuntの仮想マシンの設定を記述します。
NAT接続なので、forwarded_port設定もしておきます。
Vagrantfile
Vagrant.configure("2") do |config|
config.vm.box = "bento/ubuntu-16.04"
#Docker構成変更時は、forwarded_port設定を適宜変更する
config.vm.network "forwarded_port", guest: 8001, host: 8001, id: "Rancher"
config.vm.network "forwarded_port", guest: 8010, host: 8010, id: "phpLDAPadmin"
config.vm.network "forwarded_port", guest: 3000, host: 3000, id: "Rocket.chat"
#メモリとCPUの割り当てはホストマシンのリソースに合わせて調整する
config.vm.provider "virtualbox" do |vb|
vb.name = "vagrant-ubuntu"
vb.memory = 4096
vb.cpus = 2
vb.customize [
"modifyvm", :id,
"--hwvirtex", "on",
"--nestedpaging", "on",
"--largepages", "on",
"--paravirtprovider", "kvm",
]
end
end
vb.customizeについては、下記を参考にさせていただきました。
http://qiita.com/hidekuro/items/385bcc4b9eb43945751d
https://www.virtualbox.org/manual/ch08.html#vboxmanage-modifyvm
仮想マシン作成&起動
コマンドプロンプト or シェルで、vagrant upを実行します
$ vagrant up
```
完了したら、statusを見てみます。
```Bash:
$ vagrant status
Current machine states:
default running (virtualbox)
The VM is running. ...(後略)
```
仮想マシンが起動しました!
※初回起動時のみ、インターネット接続が必要です。
プロキシ環境下では、環境変数を設定するか
ブラウザでboxファイルをダウンロードします。
## 仮想マシンに接続する
仮想マシンでコマンドを実行するには、以下の方法があります。
* VirtualBoxマネージャで仮想マシンを選択→表示
* sshクライアントを使用する
今回は、sshクライアントで接続します。
```Bash:
$ vagrant ssh
(省略)
vagrant@vagrant:~$
```
仮想マシンの中に入ることができました!
※sshクライアントがインストールされていない場合、エラーになります。
ホストOSがWindowsの場合、open-sshやTeratermなどをインストールします。
私は"Bash on Ubuntu on Windows"を使用しています。
つづく→[(2)Dockerインストール](http://qiita.com/gldn/items/813e56722c6de3119e7f)
## 目次: RancherでLDAPとRocket.Chatを構築する
[(1)仮想マシン構築](http://qiita.com/gldn/items/565adc5158a3c1d57ef3)
[(2)Dockerインストール](http://qiita.com/gldn/items/813e56722c6de3119e7f)
[(3)Rancherを構築する](http://qiita.com/gldn/items/f5168cf0e09fa8562e31)
[(4)OpenLDAPサーバを構築する]
(http://qiita.com/gldn/items/19116548743a85c85ddf)
[(5)Rocket.Chatを構築する](http://qiita.com/gldn/items/c611e2eb49c481f58a40)