レポジトリ作成
$ git clone git://github.com/opscode/chef-repo.git
(特定のシステムに1個くらいの粒度のおおきさ
レポジトリを作成すると、knifeというツールがインストールされる
クックブック作成
knife初回設定
$ knife configure (いろいろきかれるけど全部デフォルトでおk)
cookbooksディレクトリ内にhelloというcookbookを作る
cd chef-repo knife cookbook create hello -o cookbooks
レシピ編集
cookbooks/hello/recipes/default.rb
# # Cookbook Name:: hello # Recipe:: default # # Copyright 2013, YOUR_COMPANY_NAME # # All rights reserved - Do Not Redistribute # log "hello, world!"
Chef Soloの実行
のまえに設定ファイルを作成する
実行するレシピを記述するJSONファイルを作成
chef-repo直下
localhost.json
// localhost.json { "run_list" : [ "recipe[hello]" ] }
chef-repo直下
solo.rb
# solo.rb file_cache_path "/tmp/chef-solo" cookbook_path ["/Users/shige/projects/chef-repo/cookbooks"]
サーバーのあらゆるファイルを操作するから、その実行にsudoはいる。
$ sudo chef-solo -c solo.rb -j ./localhost.json Starting Chef Client, version 11.6.0 Compiling Cookbooks... Converging 1 resources Recipe: hello::default * log[hello, world!] action write Chef Client finished, 1 resources updated