プログラマでありたい

おっさんになっても、プログラマでありつづけたい

Chefの辞典こと、「Chef活用ガイド コードではじめる構成管理」

 f:id:dkfj:20140421194425j:plain

 献本頂いて随分と時間が経っているのですが、@sawanobolyさんに「Chef活用ガイド コードではじめる構成管理」を頂きました。執筆段階から原稿見せて頂いていたのですが、製本したものを見ると圧巻としか言えない分量の大作です。頂いたものの、分厚すぎて持ち歩けないので即効で電子版で買ったほどです。ある人は、鈍器のようなChef本と呼んでいます。


 そんな分厚いChef本ですが、内容は分厚さに違わずChefの網羅率および詳しさはピカイチです。Chefの概念から始まり、Chef-ServerやSoloなど色々あるChefの利用形態、縁の下の力持ちであるOhaiについてそれぞれ章を費やしています。また、Chefの基本的な使い方が始まり、実際のChef利用の肝となるData Bag、Environment、Roleも詳しく書かれています。その上、開発だけでなくテストや運用フェーズまで含まれています。実際にChefを使う場合に重要になってくるのは、運用フェーズに入ってからです。そういった意味で貴重ですね。
 充実度については目次を見れば直ぐに解ります。およそChefを使う上で必要となる情報は殆ど網羅しています。あれ無いのと思ったのは、(Chefと直接的な関係はないものの)ServerSpecくらいです。きっとそのうち、ServerSpecを専門に取り扱ったものが出てくるでしょう。

目次
第1部 Chefってなに?

第1章 Chefの概要
1.1 Chefとは
1.2 Chefの背景とInfrastructure as Codeの概念

第2章 Chefの利用形態
2.1 Chef-Server/Client構成
2.2 Chef-Solo
2.3 どちらの構成を採用するか
2.4 Chefの機能要素
2.5 Chef-Repo

第3章 Ohai
3.1 Ohai概要
3.2 Ohaiが収集するNode Attribute
3.3 Ohaiの活用
3.4 Ohaiリファレンス

第4章 Chef-Server
4.1 Chef-Serverの種類
4.2 Chef-Serverのコンポーネント
4.3 Chef-Serverの導入
4.4 Chef-Serverの設定

第5章 Chef-Client
5.1 Chef-Clientとは
5.2 Chef-Client主要オブジェクト解説
5.3 Chef-Clientの動作の流れ
5.4 Chef-Clientの導入
5.5 Chef-Clientの設定
5.6 Chef-Clientの実行
5.7 Chef-Clientの機能を拡張する
5.8 イベントディスパッチャ(Chef::EventDispatcher)

第6章 Workstation
6.1 WorkstationとKnife
6.2 Knifeの役割
6.3 Knifeのセットアップ
6.4 Knifeの設定
6.5 knifeコマンドラインの共通オプション
6.6 knifeサブコマンド
6.7 Knifeの基本操作
6.8 Knifeを使ったワークフロー
6.9 WorkstationからNodeを管理する
6.10 Knifeの拡張
6.11 独自のKnifeプラグインを作成する


第2部 もっと詳しく

第7章 Search API
7.1 問い合わせ書式
7.2 検索対象オブジェクト
7.3 問い合わせキー
7.4 問い合わせパターン
7.5 論理演算子
7.6 特殊文字の取り扱い
7.7 Partial Search

第8章 Data Bag
8.1 Data Bagの構成
8.2 Data Bagの作成
8.3 暗号化Data Bag
8.4 Data Bagの利用

第9章 Environment
9.1 Environmentの構成と基本要素
9.2 要素の詳細と記述例
9.3 Environment _defaultについて
9.4 EnvironmentをNodeに適用する

第10章 Role
10.1 Roleの構成と基本要素
10.2 要素の詳細と記述例
10.3 RoleをNodeに適用する

第11章 Cookbookの基本
11.1 Cookbookとは
11.2 Cookbookの基本要素一覧
11.3 Cookbook要素の読み込み順序
11.4 Recipe
11.5 Resource共通項目
11.6 Attribute
11.7 Recipe DSL
11.8 ResourceとProviderの関係
11.9 ディープマージ

第12章 他のCookbookコンポーネント
12.1 Cookbook Metadata
12.2 Cookbook Version
12.3 Cookbook File
12.4 Cookbook Template
12.5 Cookbook Library
12.6 Cookbook Definition

第13章 Lightweight Resources and Providers(LWRP)
13.2 LWRPの組み込み
13.3 簡単なLWRPを作成する
13.4 Lightweight Resource
13.5 Lightweight Provider
13.6 LWRPの活用と作成例

第14章 テスト
14.1 knife cookbook testサブコマンド
14.2 foodcritic
14.3 ChefSpec
14.4 test-kitchen
14.5 Cookbookを継続的インテグレーションする

第15章 Cookbookの管理ツール
15.1 Cookbook管理のアンチパターン
15.2 Berkshelf
15.3 Librarian-Chef

第16章 Chefの運用
16.1 Chefとシステム構築
16.2 Enterprise Chef Server有償アドオン
16.3 事例紹介

付録A Chef-ClientのEventDispatcherイベント一覧
付録B Chef公式LWRP
付録C ResourcesとProvidersの一覧
付録D IaaS系Knifeプラグイン


 あとお勧めのポイントとして、各コマンドについて実行方法や結果などがちゃんと載っているので、実際にどう使えば良いのか解りやすいです。また、巻末の付録としてChef-Clientのイベント一覧や公式のクックブックなど、200ページ以上の付録がついています。全体の1/3くらいを占めるので、付録と呼んでよいのか疑問が呈されるレベルです。そんなこともありまして、Chefが初めての人も、使ってきている人も、是非手元に置いておいて欲しい1冊です。まさしくChefの辞典と呼んでよいです。ただし、持ち運びに向かないので、その場合は電子版を買いましょう。Kindle版と達人出版会の両方があります。個別の内容については、順次紹介していこうと思います。


 ちなみに、@sawanobolyさんは、プライベートでChefに関して色々教えを受けています。その上、最近では仕事上でもChefに限らず運用全般の改善のコンサルタントをして頂くなど、公私ともにお世話になっています。Chef単体の話でなく、運用の最適化という大きな文脈のなかで如何に活用するか、実践的な経験の中で産まれた本です。
 5月に、Chefの第一人者達によるChef実践入門も出ることもあり、目が離せないですね。


Chef活用ガイド コードではじめる構成管理

Chef活用ガイド コードではじめる構成管理

  • 作者: 澤登亨彦,樋口大輔,クリエーションライン株式会社
  • 出版社/メーカー: KADOKAWA/アスキー・メディアワークス
  • 発売日: 2014/04/25
  • メディア: 大型本
  • この商品を含むブログを見る
Chef活用ガイド コードではじめる構成管理 (アスキー書籍)

Chef活用ガイド コードではじめる構成管理 (アスキー書籍)

Chef活用ガイド コードではじめる構成管理【委託】 - 達人出版会



See Also:
サーバ構築・デプロイの自動化の話。或いはChefとCapistranoの素敵な関係
Knife SoloとAmazon EC2で始めるChef Solo
運用視点でChef ServerかChef Solo + Knife Soloのどちらが良いか考えてみた
手動でサーバの設定をすることを禁ずる。入門Chef Solo