Vagrant mongonouchi9

47
MongoDB の ののののののののののの

Transcript of Vagrant mongonouchi9

Page 1: Vagrant mongonouchi9

MongoDB の検証環境を作ってみよう

Page 2: Vagrant mongonouchi9

About me.

Page 3: Vagrant mongonouchi9

質問です

Page 4: Vagrant mongonouchi9

検証環境作ってますか?

Page 5: Vagrant mongonouchi9

本番環境と同じ構成ですか?

Page 6: Vagrant mongonouchi9

簡単に配布できますか?

Page 7: Vagrant mongonouchi9

3 分で再構築できますか?

Page 8: Vagrant mongonouchi9

検証環境が壊れた。捨てて再構築したい

3 分で再構築できますか?

via http://www.slideshare.net/TakeshiKomiya/3-201207-pyfes

Page 9: Vagrant mongonouchi9

検証環境が壊れた。捨てて再構築したい手順書が 20 項目くらいある

3 分で再構築できますか?

via http://www.slideshare.net/TakeshiKomiya/3-201207-pyfes

Page 10: Vagrant mongonouchi9

検証環境が壊れた。捨てて再構築したい手順書が 20 項目くらいあるしかも間違ってる ( オペミスかもしれない)

3 分で再構築できますか?

via http://www.slideshare.net/TakeshiKomiya/3-201207-pyfes

Page 11: Vagrant mongonouchi9

検証環境が壊れた。捨てて再構築したい手順書が 20 項目くらいあるしかも間違ってる ( オペミスかもしれない)なんだかんだ対応してたら一日過ぎた

3 分で再構築できますか?

via http://www.slideshare.net/TakeshiKomiya/3-201207-pyfes

Page 12: Vagrant mongonouchi9

Version UP のリハーサル環境がほしい

MongoDB の場合

Page 13: Vagrant mongonouchi9

Version UP のリハーサル環境がほしいVersion ごとの挙動の変化を確認したい ex. 以前踏んだあのバグ、直ったのか確かめたい

MongoDB の場合

Page 14: Vagrant mongonouchi9

Version UP のリハーサル環境がほしいVersion ごとの挙動の変化を確認したい ex. 以前踏んだあのバグ、直ったのか確かめたいReplicaSets や Sharding 環境を何度も作り直すの めんどくさい

MongoDB の場合

Page 15: Vagrant mongonouchi9

Version UP のリハーサル環境がほしいVersion ごとの挙動の変化を確認したい ex. 以前踏んだあのバグ、直ったのか確かめたいReplicaSets や Sharding 環境を何度も作り直すの めんどくさいAWS 使えば多数の環境を用意できるけど、有料。。

MongoDB の場合

Page 16: Vagrant mongonouchi9

Version UP のリハーサル環境がほしいVersion ごとの挙動の変化を確認したい ex. 以前踏んだあのバグ、直ったのか確かめたいReplicaSets や Sharding 環境を何度も作り直すの めんどくさいAWS 使えば多数の環境を用意できるけど、有料。。手順書作ってもメンテされない・しきれないよね

MongoDB の場合

Page 17: Vagrant mongonouchi9

環境構築自動化したいよね

Page 18: Vagrant mongonouchi9
Page 19: Vagrant mongonouchi9

VirtualBox の管理ソフトウェア

Vagrant とは?

Page 20: Vagrant mongonouchi9

VirtualBox の管理ソフトウェアOS が box イメージという形で配布されている

Vagrant とは?

Page 21: Vagrant mongonouchi9

VirtualBox の管理ソフトウェアOS が box イメージという形で配布されているChef-solo が組み込まれているため、簡単に構成管

理できる ⇒ 開発環境と本番環境の環境を揃えやすい

Vagrant とは?

Page 22: Vagrant mongonouchi9

VirtualBox の管理ソフトウェアOS が box イメージという形で配布されているChef-solo が組み込まれているため、簡単に構成管

理できる ⇒ 開発環境と本番環境の環境を揃えやすいSandbox 機能で、何度でも変更を Rollback できる ミドルウェアバージョンアップ検証 構成の変更の検証 デプロイの試験などがお手軽に

Vagrant とは?

Page 23: Vagrant mongonouchi9

DEMOMongoDB 2.4.1 で Replica Sets を構築

Page 24: Vagrant mongonouchi9

VirtualBoxVagrant 1.0.7 (Chef-solo)Ruby1.9.3-p392MongoDB 2.4.1

DEMO 環境の材料

Page 25: Vagrant mongonouchi9

Hands-onMongoDB 2.4.1 で Replica Sets を構築

Page 26: Vagrant mongonouchi9

USB メモリの中身についてUSBメモリ +- win or mac     : Vagrantのインストールに必要なバイナリが入っています。 +- vagrant    : 今回作成する VagrantVMに必要なファイルが入っています。

Page 27: Vagrant mongonouchi9

Hands-on – 1. InstallationMongoDB 2.4.1 で Replica Sets を構築

Page 28: Vagrant mongonouchi9

VirtualBoxVagrant 1.0.7 (Chef-solo)Ruby1.9.3-p392

材料

Page 29: Vagrant mongonouchi9

VirtualBox-4.2.12-84980-Win.exeVirtualBox-4.2.12-84980-OSX.dmg

VirtualBox のインストール

Page 30: Vagrant mongonouchi9

Vagrant.msi   install path : C:\vagrantVagrant.dmg install path : 指定しませんでした

Vagrant のインストール

Page 31: Vagrant mongonouchi9

rubyinstaller-1.9.3-p392.exe

Ruby1.9.3-p392 のインストール

環境変数 PATHを

設定するにチェックを入れ

Page 32: Vagrant mongonouchi9

$ sudo port install ruby19 下記のようにインストールされます $ ruby1.9 -v

Ruby1.9.3-p392 のインストール

Page 33: Vagrant mongonouchi9

Hands-on – 2. VM SetupMongoDB 2.4.1 で Replica Sets を構築

Page 34: Vagrant mongonouchi9

下記ディレクトリ直下に、  USB メモリの vagrant ディレクトリの中身を 展開します。 C:\vagrant\mongors\ ~/vagrant/mongors/ が今回のワークスペースになります。

Win : C:\vagrant\ 直下Mac : ~/vagrant/ 直下

VM のワークスペースを用意する

Page 35: Vagrant mongonouchi9

下記のディレクトリ直下で、下記を実行 vagrant box add $VmName $vm.box

Win : C:\vagrant\mongors\ 直下で vagrant box add mongors C:\vagrant\boxes\CentOS-6.3-i386-v20130101.boxMac : ~/vagrant/mongors/ 直下で vagrant box add mongors ~/vagrant/mongors/ boxes/CentOS-6.3-i386-v20130101.box

VM のテンプレート box をVagrant に登録する

Page 36: Vagrant mongonouchi9

Vagrantfile を編集

VM の設定ファイルを作る

Vagrant::Config.run do |config| config.vm.box = "mongors" config.vm.define :rs1 do |config| config.vm.customize ["modifyvm", :id, "--memory", "1024", "--cpus", "1", "--name", "mongors1"] config.vm.network :hostonly, "192.168.56.100", :netmask => "255.255.255.0“ endend

Page 37: Vagrant mongonouchi9

vagrant up

VM を起動してみる

Page 38: Vagrant mongonouchi9

ターミナルで、 ssh localhost:2222 ID/Password : vagrant/vagrant

VM へ ssh 接続してみる

Page 39: Vagrant mongonouchi9

Hands-on – 3. MongoDB Replica Setson Vagrant VMMongoDB 2.4.1 で Replica Sets を構築

Page 40: Vagrant mongonouchi9

vagrant destroy

さっき作った VM は捨てちゃおう

Page 41: Vagrant mongonouchi9

Vagrantfile を編集

VM の設定ファイルを修正し VM 起動時に MongoDB をインストールするよう設定する

Vagrant::Config.run do |config| config.vm.box = "mongors" config.vm.define :rs1 do |config| config.vm.customize ["modifyvm", :id, "--memory", "1024", "--cpus", "1", "--name", "mongors1"] config.vm.network :hostonly, "192.168.56.100", :netmask => "255.255.255.0" config.vm.provision :chef_solo do |chef| chef.cookbooks_path = "./chef-repo/cookbooks" chef.add_recipe "mongodb" end endend

Page 42: Vagrant mongonouchi9

vagrant up

VM を起動する

Page 43: Vagrant mongonouchi9

ターミナルで、 ssh localhost:2222 ID/Password : vagrant/vagrant

VM へ ssh 接続する

Page 44: Vagrant mongonouchi9

ssh 接続して、 MongoDB の Replica Sets を初期化する

Replica Sets を設定する

config = {_id: 'mongors', members: [

{_id: 0, host: 'localhost:27017'},{_id: 1, host: 'localhost:27018'},{_id: 2, host: 'localhost:27019'}

]}

rs.initiate(config);

$ /usr/local/mongodb/mongors.1/product/bin/mongo --port 27017

Page 45: Vagrant mongonouchi9

おまけ

Page 46: Vagrant mongonouchi9

Sandbox (Sahara plugin)   vagrant gem install sahara

静止点の作成 vagrant sandbox on静止点へのロールバック   vagrant sandbox rollbackchef のレシピテストや、 MongoDB などのアップ

グレード手順の検証に便利です。

こんな機能もあります。

Page 47: Vagrant mongonouchi9

## knife-solo が必要です。gem install knife-solo で入ります。

1.リソースリスト  http://docs.opscode.com/resource.html

2.参考レシピリスト  http://community.opscode.com/

Cookbook 、作ってみる?