ようへいの日々精進XP

よかろうもん

Recipeを書いて勘所を掴む!デベロッパのための『Chef』ハンズオンに参加した一部始終

※Evernote に箇条書きした内容を整理したものですので、誤字脱字、そもそも大間違いがるやもしれませんがご了承くださいませ。

要件

  • 最近は寝ても覚めても chef
  • chef 続きですいません
  • より良い cookbook を書けるようになりたい
  • 意識高いというか(意識)不明です

内容

前回のおさらい

chef-solo
  • 簡単便利
  • でも chef server を使いましょう
  • capistrano と chef-solo で苦労しているなら chef server を使いましょう
  • chef client と Ohai が chef クライアント(node)には入る
  • cookbook とか roles とか...が workstation に入る
knife
  • knife で chef server でアップロード
  • chef server で GUI で確認することが出来る
    • 意外と GUI で使っている人が多くい
  • Workstation から出来ることは chef server で出来る
リポジトリ
  • 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 が集めてきた情報
resouce 共通で使えるファンクション
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
  • 要件
  • またしくった...
    • そもそも knife ec2 create で provision した EC2 インスタンスを見失った
    • 慌ててもう一回 knife ec2 create を叩いたらエラー...そりゃそうだね...
    • しかも knife cookbook upload ${cookbook} をしていなかった...気づかなかったよ、おっかさん...

質問

cookbook をまとめる単位は?
  • 好き好き
  • Opscode の cookbook を参考にするよ良いかも
Windows への適用は?
  • そこそこちゃんと使えている印象

まとめ

  • 昨日は様々事例が聞けて、今日は具体的な cookbook の作り方、まだまだ見習いだけど吐きそうな位充実した二日間でした...。
  • レシピ書きの肝は notify & subscribe と condition。ちゃんと使いこなせるようになりたい。
  • attribute の優先順位って...
  • knife cookbook test がシンタックスのチェックをしているからよさげ。
  • やっぱり chef server を使おうと思う。