Pages

2011/03/11

Chef-Server/Client で楽をしたい

自動デプロイツールのChefってどうやねんという人向けにこうなるというのを手順無視でお届け。
 

ちなみに導入するなら初めはServerをマニュアルで入れるのが使っている部品が分かってよい。


 

迷うCookbookとKnifeのポイント


いきなりTIPSだが、Server使用時はこれを思い出すとよい。多分理解が早い。

server.rbの指定のディレクトリにCookbookを置いたら knife upload をしてServerに登録する。
CreateしたCookbookも同様だ、編集したらuploadしよう。


では気を取り直して。
 

ChefServerのWEB-UIまで頑張って立てよう



 

このようなUIにログインできます。今回使うscreenのcookbookはknifeで追加済み。
 
 

ノードはこのように追加する


さて、さっきの画面にはノードが居ない。
どうすりゃいいかは、クライアントにしたいサーバでchef-clientを実行すれば分かる。

gemでクライアントを入れたら、設定は1行あればいい、サーバの指定だ。
/etc/chef/client.rb
chef_server_url    "http://192.168.30.223:4000"

 

クライアントサーバで "chef-client " コマンドを実行する。
追記:サーバから証明書をコピーすることも必要。 /etc/chef/validation.pem

# chef-client 
WARN: HTTP Request Returned 404 Not Found: Cannot load node stub01
INFO: Starting Chef Run (Version 0.9.14)
WARN: Node stub01 has an empty run list.
INFO: Chef Run complete in 0.70594994 seconds
INFO: cleaning the checksum cache
INFO: Running report handlers
INFO: Report handlers complete

 


Cannot load node stub01 とか言われているね。
このあとサーバのほうを確認してみよう。

画像;Chef02

ノードが登録されている。
しかもガッツリインベントリされています。
 

ちょっと余談ですが、ノードのBIOSバージョン、仮想化されたホストか、からパッケージリストやprocの下まで全部収集されてしまうので構成管理(最新の)もいっぺんに可能のようです。
集めた情報で配布対象もそれで絞り込めたりしていい感じ。

例:「チップセットがIntelのサーバだけレシピを適用したい」なども可と。
 
 


Recipeによる自動構築の準備


クライアントにレシピを適用したかったら。
ノード情報を編集して、run-listに加えるとよい。

さっき登録されたstub01というサーバに、Chefでは定番のscreenを入れてみます。

画像:Chef03

Screen用のレシピをrun-listに加えていますね。
 

画像:Chef04

GUIからも確認できますし、コマンドラインならknifeでノードの内容を知ることができます。

ちなみにレシピをまとめたかったらロールを使って、それをノードに割り当てしょう。
 
 

さて自動構築


といっても簡単で、もう一度クライアントサーバで "chef-client " コマンドを実行するだけです。

今度は?
# chef-client 
INFO: Starting Chef Run (Version 0.9.14)
INFO: Storing updated cookbooks/screen/recipes/default.rb in the cache.
INFO: Storing updated cookbooks/screen/metadata.json in the cache.
INFO: Storing updated cookbooks/screen/metadata.rb in the cache.
INFO: Installing package[screen] version 4.0.3-14ubuntu4
INFO: Chef Run complete in 4.672135174 seconds
INFO: cleaning the checksum cache
INFO: Running report handlers
INFO: Report handlers complete


なんかレシピ内のファイルを読んでますね。

# screen -v
Screen version 4.00.03jw4 (FAU) 2-May-06


ほら入った。
 

管理画面からは最新の同期状況が確認できます。

画像:Chef05
 
 

Chef、素晴らしいツールだと思いました。
 

1 件のコメント:

Knife sshで任意のサーバにコマンド実行(Chef) | SawanoBlog 2G さんのコメント...

[...] 前回のChefServer紹介で、クライアントがインベントリされるのが分かりました。 [...]

コメントを投稿