Chefレポジトリを作成する
-
レポジトリ作成
sudo knife solo init chef-repo
-
gitに登録
cd chef-repo git init git add . git commit -m 'first commit'
cookbookの作成
-
cookbookを作成する
$ knife cookbook create your_cookbook_name -o site-cookbooks
knife solo prepare
-
サーバ用のノードjsonファイルが./node/配下に作成される
$ sudo knife solo prepare 192.168.1.1
サーバ用設定
-
jsonファイルへ適用するレシピを指示したりパラメータを書き込む
# vi nodes/192.168.1.1
Chef Solo 実行
-
レシピをノードに適用
$ sudo knife solo bootstrap 192.168.1.1
サードパーティーのcookbookを使う場合
berkshelf
berkshelf導入
-
Gemfile作成
(chef-repo)/Gemfile$ cat << EOS > Gemfile && cat Gemfile source :rubygems gem 'berkshelf' EOS
-
bundle実行
bundle --path vendor/bundle
cookbookの取得
-
Berksfile作成
-
https://supermarket.chef.io/cookbooks-directoryから先人が作成したcookbookを拝借する。
(chef-repo)/Berksfile# Berksfile site :opscode cookbook 'yum' cookbook 'nginx' ... (必要なものをリストアップ)
-
-
クックブック取得
$ bundle exec berks --path cookbooks