BerkshelfとVagrantでmongodbサーバを構築する
作業用ディレクトリを作る
mkdir -p ~/tmp/vagrantmongo
cd ~/tmp/vagrantmongo
以下、この作業用ディレクトリを起点にして作業します。
Berksfileを作る
作業用ディレクトリにBerksfileを作成します。Berksfile
cookbook 'mongodb', git: 'git://github.com/edelight/chef-mongodb.git'
記述するのはこの1行だけでOKです。
berksコマンドでcookbookたちを取得する
$ berks vendor cookbooks
Fetching 'mongodb' from git: 'git://github.com/edelight/chef-mongodb.git' with branch: 'master'
building universe...
Using mongodb (0.14.4) git: 'git://github.com/edelight/chef-mongodb.git' with branch: 'master' at ref: '2ea5fc251769de185f2bc003538797b84cf09441'
Using apt (2.3.4)
Using python (1.4.4)
Using runit (1.5.8)
Using yum (3.0.4)
Using build-essential (1.4.2)
Using yum-epel (0.2.0)
Vendoring mongodb (0.14.4) to /home/DK/tmp/vagrantmongo/cookbooks/mongodb
Vendoring apt (2.3.4) to /home/DK/tmp/vagrantmongo/cookbooks/apt
Vendoring python (1.4.4) to /home/DK/tmp/vagrantmongo/cookbooks/python
Vendoring runit (1.5.8) to /home/DK/tmp/vagrantmongo/cookbooks/runit
Vendoring yum (3.0.4) to /home/DK/tmp/vagrantmongo/cookbooks/yum
Vendoring build-essential (1.4.2) to /home/DK/tmp/vagrantmongo/cookbooks/build-essential
Vendoring yum-epel (0.2.0) to /home/DK/tmp/vagrantmongo/cookbooks/yum-epel
cookbooksディレクトリにcookbookたちがダウンロードされてきたことを確認します。
$ ls cookbooks/
apt/ build-essential/ python/ yum/
Berksfile.lock mongodb/ runit/ yum-epel/
Vagrantfileを作る
VAGRANTFILE_API_VERSION = "2"
Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
# ここはあなたのbox名を指定してください。
config.vm.box = "yourboxname"
config.vm.provision :chef_solo do |chef|
chef.cookbooks_path = "./cookbooks"
chef.add_recipe "mongodb"
# mongodbクックブックの挙動をカスタマイズしたい場合はこのようにする。
chef.json = { :mongodb => {:dbpath => "/data/db" }}
end
end
vagrant up
vagrant up
\(上手に焼けましたー)/