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を育てていきます。