2012年9月19日水曜日

"pssh"(Parallel ssh)を使ってみた

スズキです。

AWSでは容易にスケールアウトできるので、調子に乗って多くのインスタンスを
立ち上げがちですが、それだけ多いと、設定の検証作業などが大変です...

ということで、同一の複数サーバを効率よく相手にするために
"pssh"(Parallel SSH)を試してみました。

インストールは簡単で"rpmforge"から"yum"でインストールできます。
# yum -y install pssh

そして、接続先ホスト一覧ファイルを用意して、
# cat hosts.txt 
10.0.0.166
10.0.0.167

下記のように利用することができます。
pssh -h ホスト一覧ファイル -l ユーザー名 -A -i コマンド
※"-A"オプションはパスワードの入力を要求します。
実際にファイルを作成してみると下記となり、

# pssh -h hosts.txt -l suzuki -A -i touch test.txt
Warning: do not enter your password if anyone else has superuser
privileges or access to your account.
Password: 
[1] 12:52:17 [SUCCESS] 10.0.0.166
Stderr: Warning: Permanently added '10.0.0.166' (RSA) to the list of known hosts.
[2] 12:52:17 [SUCCESS] 10.0.0.167
Stderr: Warning: Permanently added '10.0.0.167' (RSA) to the list of known hosts.

ディレクトリを確認すると、次のようにファイルが作成されていることがわかります。

# pssh -h hosts.txt -l suzuki -A -i ls -la
Warning: do not enter your password if anyone else has superuser
privileges or access to your account.
Password: 
[1] 12:52:24 [SUCCESS] 10.0.0.167
合計 28
drwx------  3 suzuki suzuki 4096  9月 19 12:52 2012 .
drwxr-xr-x. 3 root   root   4096  9月 19 12:42 2012 ..
-rw-------  1 suzuki suzuki  260  9月 19 12:49 2012 .bash_history
-rw-r--r--  1 suzuki suzuki   18  5月 11 03:45 2012 .bash_logout
-rw-r--r--  1 suzuki suzuki  176  5月 11 03:45 2012 .bash_profile
-rw-r--r--  1 suzuki suzuki  124  5月 11 03:45 2012 .bashrc
drwx------  2 suzuki suzuki 4096  9月 19 12:47 2012 .ssh
-rw-rw-r--  1 suzuki suzuki    0  9月 19 12:52 2012 test.txt
Stderr: Warning: Permanently added '10.0.0.167' (RSA) to the list of known hosts.
[2] 12:52:24 [SUCCESS] 10.0.0.166
合計 20
drwx------  2 suzuki suzuki 4096  9月 19 12:52 2012 .
drwxr-xr-x. 3 root   root   4096  9月 19 12:45 2012 ..
-rw-r--r--  1 suzuki suzuki   18  5月 11 03:45 2012 .bash_logout
-rw-r--r--  1 suzuki suzuki  176  5月 11 03:45 2012 .bash_profile
-rw-r--r--  1 suzuki suzuki  124  5月 11 03:45 2012 .bashrc
-rw-rw-r--  1 suzuki suzuki    0  9月 19 12:52 2012 test.txt
Stderr: Warning: Permanently added '10.0.0.166' (RSA) to the list of known hosts.

"AWS API"と組み合わせれば、タグがついたインスタンスに対して
一斉にコマンドを実行することができそう...
--------
http://www.suz-lab.com

0 コメント: