AWSでは容易にスケールアウトが出来るためインスタンスを多く立ち上げがちになりますが、インスタンスが多ければ設定の検証作業などが大変です。
そこで、複数サーバを効率よく設定出来るようParallel ssh(pssh)を試してみました。

インストールは簡単です。
RPMforgeリポジトリからyumコマンドでインストールできます。
※RPMforgeに関してはCentOS 6.0にepelとremiとrpmforgeのリポジトリを追加の記事を参照下さい

 # 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と組み合わせることで、タグがついたインスタンスに対して一斉にコマンドを実行することができるかと思います。

こちらの記事はなかの人(suz-lab)監修のもと掲載しています。
元記事は、こちら