No.257


【Chef】Chefざっくりまとめ

chef、knife、cookbook、recipe…意味判らん

 capistranoと並んで意識高い系ツールの双璧を成すchef。(個人調べ)
 厨二病全開でつけたとしか思えない用語の理解だけで数年かかってしまうこと請け合いだ。(個人調べ)

 いちいち説明するたびにテキスト書くのもアレなので、コピペ用の大雑把説明をメモしておこう。

 …大雑把だからね? ちゃんとと自分で勉強してね?


Chef

 rubyベースのサーバー設定ツール。

Cookbook

 Chefの環境構築設定ファイル。
 ミドルウェア、ソフトウェアのテンプレート設定などが記載される。

 RecipeはCookbookに含まれる。

Recipe

 Chefの環境構築設定ファイル。  Cookbookを各環境用にカスタマイズしたもの。各マシンで実行されるのはこれ。

Chef Client

 Chefで環境構築されるマシン。

Chef Server

 Chef管理サーバ経由で複数マシンを一気に設定するときに使うマシン。

 Chef Server経由で配下のChef Clientをまとめて管理する。大規模な環境でしか使わないし、自分は使ったことがない。

Chef Solo

 環境設定を行うマシン(Chef Client)にRecipeを置き、それを基に環境設定を行う。スタンドアロン版と言えばわかりやすいかも。

 単純な構成のマシンや、Vagrantなどの仮想環境構築時に使うのはこれ。

 Chef Zeroに統合予定。

Chef Zero

 動作としてはChef Soloと似てる。

 Recipeは実行命令を出すマシンにのみ置かれていて、環境設定を行う各マシン(Chef Client)はそこから必要な情報を取得して環境設定を行う。

Knife

 Chefの実行コマンド。

 Cookbookのベースを作成したりするときにも使う。

Template

 各環境の設定ファイルなどのテンプレート。

Resource

 各環境ごとに専用に用意された設定ファイル。Templateだけでは足りないものを用意。

Attribute

 各環境の設定値。DBのユーザー名&パスワードなど。