share facebook facebook twitter menu hatena pocket slack

2012.11.14 WED

Parallel ssh(pssh)を使ってみました

鈴木 宏康

WRITTEN BY 鈴木 宏康

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)監修のもと掲載しています。
元記事は、こちら

鈴木 宏康

鈴木 宏康

愛知県生まれ。東京工業大学大学院修士課程修了。在学時より、ベンチャー企業でインターネットに関する業務に携わり、現在はクラウド(主にAmazon Web Services)上での開発・運用を軸とした事業の、業務の中心として活躍。