はじめに
前々回,前回の続きです.ChefやBerkshelf,Vagrantの初心者が勉強しながら執筆しています.
今回はberksコマンドで最初に作ったCookbookについて勉強が進み,少しわかったことが増えましたので,メモします.
berksコマンドが作ったCookbook
ここで前々回で行った作業をふりかえります.最初にberksコマンドを用いて,
$ berks cookbook precise
というコマンドを実行しました.これにより,preciseという名前のcookbookが作成されました.このcookbookの名前は,metadata.rbの一行目にかかれています.
name 'precise'
maintainer 'YOUR_NAME'
maintainer_email 'YOUR_EMAIL'
license 'All rights reserved'
description 'Installs/Configures precise'
long_description IO.read(File.join(File.dirname(__FILE__), 'README.md'))
version '0.1.0'
CookbookのRecipeの参照方法
このpreciseという名前のcookbookは,Vagrantfileのrun_listから参照されます.run_listにあるcookbookはvagrantprovisionの時などにChef(料理人)が調理します.
...
chef.run_list = [
"recipe[precise::default]"
]
...
ここのpecise::defaultの箇所が,参照をしているところです.では,「default」とは何でしょう.これは,cookbook(料理本)にあるrecipe(レシピ)の名前です.具体的にはrecipes/フォルダのなかのdefault.rbファイルです.
ところで,recipes[…]は省略できます.そして,defaultも省略できるようです(要出典).なので,上の例は
...
chef.run_list = [
"precise::default"
]
...
ないしは
...
chef.run_list = [
"precise"
]
...
としても同じ結果になりました.
おわりに
今回学んだことは,berks cookbookpreciseコマンドで作成したのは,preciseという名前のcookbookであることです(なんだか,アタリマエのことに気づいた感じです).そして,recipes/の中にレシピがあることがわかりました.そうすると,この場所にレシピを追加すればいろいろとVMを鍛えていくことができることになります.
また,run_listのなかにcookbook名を書いてあげると,そのcookbookのdefaultのレシピを指定できます.さらに,precise::defaultのように,レシピの名前まで指定することができます.
- source /mnt/c/Users/yc/Dropbox/org/qiita/d286ccab0fa0d501a45c.org