パッケージ探訪: pssh
2023年4月6日
著者: 竹洞 陽一郎
はじめに
大規模なインフラストラクチャを管理する際には、複数のリモートサーバーに対して同時にコマンドを実行したい場合がよくあります。
通常のSSHクライアントでは、一度に1つのサーバーにしか接続できませんが、pssh (Parallel SSH) を使用することで、この問題を解決できます。
この記事では、psshとは何か、インストール方法、基本的な使い方を紹介します。
これにより、あなたのインフラストラクチャ管理が効率化されることでしょう。
psshとは
psshは、複数のリモートサーバーに対して並列でSSHコマンドを実行するためのツールです。
Pythonで実装されており、pssh、pnuke、prsyncなどのコマンドラインツールが含まれています。
これらのツールを使って、SSHを介してリモートサーバーにコマンドを実行したり、ファイルをコピーしたり、プロセスを終了したりすることができます。
psshの基本的な使い方
psshを使用するには、最初に接続先のリモートサーバー情報を含むファイルを作成します。
例えば、以下のような内容のhosts.txtファイルを作成します。
user@server1.example.com
user@server2.example.com
user@server3.example.com
次に、psshコマンドを実行し、-hオプションで作成したファイルを指定します。
例えば、すべてのリモートサーバーでuname -aコマンドを実行するには、以下のようにします。
pssh -h hosts.txt -l user -A -i "uname -a"
上記のコマンドでは、-lオプションでユーザー名を指定し、-Aオプションでパスワード認証を有効にし、`-i`オプションで各サーバーからの出力をインラインで表示するように設定しています。
このコマンドを実行すると、指定したすべてのリモートサーバーで`uname -a`が実行され、その結果が表示されます。
その他のpsshツール
psshには、他にも便利なツールがいくつか含まれています。
以下に、主要なものをいくつか紹介します。
- prsync
- 複数のリモートサーバーにファイルやディレクトリを同時にコピーするためのツールです。
`rsync`コマンドと同様の構文で使用できます。 - pscp
- 複数のリモートサーバーから、または複数のリモートサーバーへファイルをコピーするためのツールです。
`scp`コマンドと同様の構文で使用できます。 - pnuke
- 複数のリモートサーバーで特定のプロセスを同時に終了するためのツールです。
`kill`コマンドと同様の構文で使用できます。
まとめ
psshは、複数のリモートサーバーを同時に管理するための強力なツールです。
インストール方法や基本的な使い方を理解し、あなたのインフラストラクチャ管理に適用することで、効率的な運用が可能になります。
今回紹介したコマンド以外にも、psshには様々なオプションや機能がありますので、公式サイトや、GitHubリポジトリを参照して、さらに詳しく学んでみてください。