Vagrant mongonouchi9

Preview:

Citation preview

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

About me.

質問です

検証環境作ってますか?

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

簡単に配布できますか?

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

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

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

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

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

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

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

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

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

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

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

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

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

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

MongoDB の場合

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

MongoDB の場合

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

MongoDB の場合

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

MongoDB の場合

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

MongoDB の場合

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

VirtualBox の管理ソフトウェア

Vagrant とは?

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

Vagrant とは?

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

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

Vagrant とは?

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

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

Vagrant とは?

DEMOMongoDB 2.4.1 で Replica Sets を構築

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

DEMO 環境の材料

Hands-onMongoDB 2.4.1 で Replica Sets を構築

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

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

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

材料

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

VirtualBox のインストール

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

Vagrant のインストール

rubyinstaller-1.9.3-p392.exe

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

環境変数 PATHを

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

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

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

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

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

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

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

下記のディレクトリ直下で、下記を実行 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 に登録する

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

vagrant up

VM を起動してみる

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

VM へ ssh 接続してみる

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

vagrant destroy

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

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

vagrant up

VM を起動する

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

VM へ ssh 接続する

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

おまけ

Sandbox (Sahara plugin)   vagrant gem install sahara

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

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

こんな機能もあります。

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

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

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

Cookbook 、作ってみる?