『Chef 実践入門』読書メモ

読了。 Chef Server の章は流し読み。

第1章

  • Infrastructure as Code
    • インフラをコード(= Chef のレシピ)で記述し Github で管理

第2章

  • chef-solo は Chef のスタンドアロン
  • コードで書いたサーバー設定の手順が「レシピ」
  • レシピに必要なデータやファイルをまとめる入れ物が「クックブック」
  • クックブック群を含む、Chef の実行に必要なファイルをまとめる入れ物が「リポジトリ」または「キッチン」
  • knife はリポジトリを操作するツール
  • knife-solo は Chef を chef-solo 環境で実行するためのユーティリティツール
  • Chef で管理するサーバーのことを「ノード」
  • ノードの状態を JSON で記述したものが「Node オブジェクト」

第3章

  • 「リソース」は service, package, template といった部品
  • 「Attribute」はテンプレートやレシピで参照できる key-value の値を管理する仕組み
  • 「Ohai」は Chef がシステム情報を取得するのに使っている Ruby ライブラリ
  • Attribute はノードの属性
  • 各ノードで共有したいデータには「Data Bug」を使う

第4章

  • Berkshelf を使ってコミュニティクックブックをインポートできる
  • 複数ノードへ chef-solo を実行する場合
    • xargs を使う
    • capistrano や fabric といった外部ツールを使う
    • Chef Server を使う

第5章

第6章

  • 特に無し

第7章

  • Test Kitchen
    • Chef のクックブックをテストするためのツール
    • Vagrant と組み合わせて、複数の OS や OS のバージョンでクックブックをテストできる
  • Test Kitchen では Minitest、Serverspec でテストを記述できる
  • さらに Jenkins を使ってクックブックでも CI

第8章

  • 従来のサーバー構築手順やスクリプトをクックブック化するところから始める
  • コミュニティクックブックを参考にする
    • Opscode
    • Basecamp
  • Foodcritic を使えばクックブックを検査できる
  • Chef でアプリケーションをデプロイしたい場合
  • Chef の拡張

第9章

  • Chef Server のメリット
    • Search 機能でロールなどを絞り込める
    • クックブックの同期作業がいらない
    • Chef Client をデーモンとしても扱える

第10章

  • 各ノードで chef-client コマンドを一括実行
    • tomahawk を使う
    • または knife ssh を使う
  • 大量物理サーバーをセットアップ

Chef実践入門 ~コードによるインフラ構成の自動化 (WEB+DB PRESS plus)

Chef実践入門 ~コードによるインフラ構成の自動化 (WEB+DB PRESS plus)