Chefを使ってプロビジョニング


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作成

  • クックブック取得

    $ bundle exec berks --path cookbooks