LoginSignup
51
51

More than 5 years have passed since last update.

Vagrant Berkshelf plugin を使う場合のメモ

Last updated at Posted at 2013-08-01

Vagrant Berkshelf plugin

RiotGamesがリリースしてるBerkshelfというプロダクト。
GemfileっぽくBerksfileというファイルに使いたいcookbookを書いていく。

Berksfile
site :opscode

cookbook 'apt'
cookbook 'git'
cookbook 'ruby'

そして、cookbookをネット経由だかリソース経由だかでインストールする。

berks install --path cookbooks

Berkshelf自体、とても便利。
Vagrantと連携させたいなーと思ってたら
vagrant-berkshelf pluginがあった。RiotGames製。

これで、Berksfileにcookbook一覧を書いて
あれこれすれば終わるな~、便利だなーと思ったがはまりどころが。

Berksfile
site :opscode

cookbook 'rbenv', git: 'https://github.com/fnichol/chef-rbenv.git'

んで、こうしてberks installすれば、
rbenvのgithub上で公開されてるクックブックを手元に落としてこれる。便利。

site-cookbooks転送でハマり

でまあ、enabled = trueにしないとVagrant Berkshelf plugin無効になってると思うじゃないですか。
そうじゃなかったんですよね。明示的にenabled = falseにする必要があります。
まあ、Berkshelfの教義に沿うならそりゃcookbooksだけしか使わないですよね...

Vagrantfile
config.berkshelf.enabled = false

はまって週末を無駄にしました...

chef.cookbooks_path = [ "cookbooks", "site-cookbooks" ]

以上のように明示的にcookbooksのパス指定しても、
Vagrant box上にホストマシンからcookbookが転送されないので
「???」ってなっちゃって大変でした。

メタなcookbooksを使うには

Vagrant Berkshelf pluginを使いつつ、メタな、
他のcookbook利用前提のcookbooksを使うにはどうするか。

cookbookそのものを調整中の場合

Berksfileのcookbookにpathとしてローカルを指定する

Berksfile-local
cookbook 'my_cookbook', path: "/home/hoge/fuga/site-cookbooks/my_cookbook'

ローカル指定(path)しても、Berkshelfは
opscodeにあるcookbook優先して確認しにいくので
cookbookについてはユニークな名称じゃないといけない。

メタなcookbookが完成した場合

Berksfileのcookbookにメタcookbookのリポジトリを登録する

Berksfile-git
cookbook 'my_cookbook', git: 'https://github.com/futoase/chef-my_cookbook.git'

その他

chefが既にインストールされてるVagrant box使う場合、
古いバージョンのchefを利用することになるので、vagrant-omunibus pluginを利用すると良いです。

Vagrantfile
config.omnibus.chef_version = "11.4.4" # バージョン 11.4.4 の chef を使いたい場合

knife-solo使うとか他にもやり方はあるけど、なんかこう手段が多すぎる...

個人的にresetさんとお話してみたい

51
51
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
51
51