※Evernote に箇条書きした内容を整理したものですので、誤字脱字、そもそも大間違いがるやもしれませんがご了承くださいませ。
要件
- 最近は寝ても覚めても chef
- chef 続きですいません
- より良い cookbook を書けるようになりたい
- 意識高いというか(意識)不明です
内容
前回のおさらい
chef-solo
- 簡単便利
- でも chef server を使いましょう
- capistrano と chef-solo で苦労しているなら chef server を使いましょう
- chef client と Ohai が chef クライアント(node)には入る
- cookbook とか roles とか...が workstation に入る
knife
リポジトリ
- node
- 設定先
- cookbook
- 設定内容をまとめたもの
- レシピ
- 設定ファイル群
- リソース
- node object
- Roles
- Runlist
- Attlibute
- node に直接関係した情報
cookbook に纏わる座学
knife cookbook create で作られるひな形についての解説
- chef server を使う場合には metadeta.rb はちゃんと設定すべき
- version を変えて cookbook を個別に適用すること出来る
- definitions
- 頻繁に発生するパターンを resource っぽく書いたファイルを置く場所
- attribute の優先順位
- いろんな場所に、いろんな優先順位でおける
- 14 通りの優先順位
- Environment で指定した attribute が優先される
- Automatic
- ohai が集めてきた情報
chef 専用の DSL
resouce 共通で使えるファンクション
- http://docs.opscode.com/chef/resources.html
- notify & subscribe
- いかにして使いこなすかが鍵!
- condition
- not_if
- only_if
- action
- :immediately(今すぐ動かして)
attribute と databag の違い
- attibute
- node に紐付いた属性情報
- datanag
- DB のパスワードに使われる
- 暗号化が可能
- センシティブな情報に使える!
- JSON 形式で記載
- cookbook をアップロードしただけでは使えない
- knife data bag create admins -> knife data bag...
ハンズオン
メモ
- Omunibus インストーラの怪
- /opt 以下だけではなくて /usr/local/bin 以下もイジる
- /opt/chef/embedded/bin/ 以下の gem が利用される
- インストール場所を意識する
- .chef は chef-repo 以下に置く
- ベストプラクティス
- プロジェクト単位で .chef を置くべき
- cookbook のテスト
- knife cookbook test(ちゃんとシンタックスも見てくれる...)
- whyrun
- Food Critic
質問
cookbook をまとめる単位は?
- 好き好き
- Opscode の cookbook を参考にするよ良いかも
Windows への適用は?
- そこそこちゃんと使えている印象
まとめ
- 昨日は様々事例が聞けて、今日は具体的な cookbook の作り方、まだまだ見習いだけど吐きそうな位充実した二日間でした...。
- レシピ書きの肝は notify & subscribe と condition。ちゃんと使いこなせるようになりたい。
- attribute の優先順位って...
- knife cookbook test がシンタックスのチェックをしているからよさげ。
- やっぱり chef server を使おうと思う。