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

\(上手に焼けましたー)/
カテゴリ: