Pages

2011/03/12

Knife sshで任意のサーバにコマンド実行(Chef)

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

recipe通りに仕上がったサーバに手を加えるときにこのインベントリが役に立ちます。
 


これを活用するにはknifeのサブコマンド、knife sshを使うのが分かりやすいでしょう。
単純な話なので例だけ。
 

 

hostnameがstub01のサーバにuptime。


# knife ssh "hostname:stub01" uptime  -x root -P passwd
stub01 14:13:06 up 3 days, 22:03, 7 users, load average: 0.51, 0.19, 0.07


"hostname:stub01"はクエリ部分です、支配下ノードのに対してノードのリストを返します。
 



os_version:2.6.35-22 とその枝葉を抽出してuptime


# knife ssh "os_version:2.6.35-22*" uptime -x root -P passwd
stub01 14:29:44 up 3 days, 22:20, 7 users, load average: 0.02, 0.06, 0.08
web01 14:30:22 up 8 days, 20:53, 8 users, load average: 0.41, 0.56, 0.46

 

複数のノードから結果が返ってきてますね。
 


lsb情報がUbuntuのものを抽出してUptime


# knife ssh "lsb_id:Ubuntu" uptime -x root -P passwd
stub01 14:41:01 up 3 days, 22:31, 7 users, load average: 0.25, 0.18, 0.11
web01 14:41:38 up 8 days, 21:05, 8 users, load average: 0.73, 0.54, 0.48

 


BIOSベンダがPhoenixのサーバにUptime


# knife ssh "dmi_bios_vendor:Phoenix*" uptime -x root -P passwd
stub01 14:49:33 up 3 days, 22:39, 7 users, load average: 0.27, 0.25, 0.17

 


uptimeがapt-get updateでもshutdownでもmakeでもOKです。
この使い方も便利じゃないの。

0 件のコメント:

コメントを投稿