まっしろけっけ

めもてきなやーつ

Berkshelfの続き

こちらの記事の続き

自作のレシピを使用する

前回作成したkitchenを引き続き使用する
せっかくなので今回はこちらの以前作成したレシピを使用する。
もちろんchef init chef-solo等で新規に作成を行ってもおk

$ cd kitchen
$ git clone git://github.com/shiro16/chef-solo

Berksfileを編集する

$ vi Berksfile
- cookbook 'nginx'
+ cookbook 'base', path: 'chef-solo/site-cookbooks/base'
+ cookbook 'nginx', path: 'chef-solo/site-cookbooks/nginx'
+ cookbook 'mysql', path: 'chef-solo/site-cookbooks/mysql'
+ cookbook 'ruby',  path: 'chef-solo/site-cookbooks/ruby'
+ cookbook 'redis', path: 'chef-solo/site-cookbooks/redis'

cookbook "cookbook name", path: "directory"でそのcookbookで使用するレシピの
ディレクトリを指定出来るみたい。

Vagrantfileのrun_listを編集する

$ vi Vagrantfile
hef.run_list = [
        "recipe[kitchen::default]",
        "recipe[base]",
+        "recipe[nginx]",
+        "recipe[mysql]",
+        "recipe[ruby]",
+        "recipe[redis]"
    ]

これで再度chefを流す

$ bundle exec vagrant provision
$ vagrant ssh
$ ruby -v
ruby 2.0.0p451 (2014-02-24 revision 45167) [x86_64-linux]

ちゃんと各recipeが反映されてました。
これで開発環境の準備の自動化を行うことが出来ました!

以下は設定しておくと便利なやーつ

vagrant syncの設定を追加する

ローカルとリモートのディレクトリをsyncすることでローカルで作業したものを
リモートにアップしたりとかの手間を省ける

$ vi Vagrantfile
+ config.vm.synced_folder "../data", "/vagrant_data"
$ vagrant up

ローカルディレクトリ, リモートディレクトリの順で指定
Vagrantfileを編集後にvagrant upで立ち上げる

これでローカルで作成したファイルがリモートでも作成されていることが確認出来るはず。

今回作成したkitchenはこちらにあります。
今後はほぼpackageをinstallしているだけの各recipeを育てていきます。