Tbpgr Blog

Ruby プログラマ tbpgr(てぃーびー) のブログ

Chef | cookbook作成のワークフロー

概要

cookbook作成のワークフロー

詳細

cookbook作成のワークフローについて。
現時点でのcookbook作成のワークフローをまとめます。
※まだ10日程度前にさわり始めたばかりなので、いろいろ覚えたら改善していくと思います

前提

vagrantの利用
sahara,vagrant-berkshelf,vagrant-omnibusの利用
berkshelfの利用

手動検証

・検証用にvagrant環境作成
・serverspec用の仮想環境をあらかじめ用意しておく
・serverspecにテストケースを追加
・sandbox onでvagrantを利用して、手動インストールの検証を行い、手順を記録しておく
※try & errorになるはずなのでsandbox rollbackを活用
・serverspecのテストが通れば手動検証完了

手動検証を元に自動化

・knife soloでkitchenを作成
vagrant initでVagrantfileのひな形作成
・Vagrantfileを任意の内容で編集
・knife cookbook createでcookbookを作成
・cookbookのrecipe等を任意の内容で編集
vagrantでprovisioningの実行
・serverspecが通ったら作業完了

パラメータ化

・デプロイ先のuser名等,変数となり得る箇所をdata_bagなどを利用して汎用化する
vagrantでprovisioningの実行
・serverspecが通ったら作業完了

cookbookをgitに登録

・cookbookのREADME.mdに詳細を記載する
GitHub等に疎通確認済みのcookbookを登録
・site-cookbooksに登録していたcookbookを削除し、berkshelfを利用してGitHubからcookbooksにcookbookを取得するように設定変更
vagrantでprovisioningの実行
・serverspecが通ったら作業完了
=>これで次回からこのcookbookをberkshelfを使って流用出来るようになった