SSH 経由で複数のサーバーに同様のコマンドを自動化する方法は?

SSH 経由で複数のサーバーに同様のコマンドを自動化する方法は?

パスワードを使用して SSH 経由で接続できるサーバーが x 台あります。1 台のみで接続する必要がある場合は、ssh root@IPaddress を使用します。するとパスワードが求められ、認証されるとそこでコマンドを実行できます。

すべて同じ x 台のサーバーがあり、そのすべてで同じコマンドを実行したい場合はどうすればよいでしょうか。 1 つまたは 2 つのコマンドでこれを実行するにはどうすればよいですか。

答え1

次のようなプロビジョニングツールが必要なようです。アンシブル塩山シェフまたは傀儡

Ansible は、あなたが望むものと非常によく似た方法で動作します。ローカルで実行し、リモート サーバーに SSH 接続してコマンドを実行します (上記の他の製品のように、リモート サーバーにエージェントをインストールする必要はありません)。たとえば、サーバーのリストを指定すると、すべてのサーバーで指定されたコマンドを実行/etc/ansible/hostsできます。完全なガイドansible all -a "/bin/echo hello"ここ

しかし、これに加えて、将来ホスト上でコマンドを再実行し、インフラストラクチャの管理を自動化するための便利なコマンドのプレイブックを作成し始めることもできます。

あるいは、次のようなコマンドを使うこともできます。プシュバッチコマンドを並列実行したり、同期ペイン複数のホスト間で対話的にコマンドを実行する tmux の機能。

答え2

  1. 複数のホストで同じコマンドを実行する

すべて同じ x 台のサーバーがあり、そのすべてで同じコマンドを実行したい場合はどうすればよいでしょうか。 1 つまたは 2 つのコマンドでこれを実行するにはどうすればよいですか。

ホスト名をパラメータとして取得するスクリプトを実行し、パラメータ内のホスト名に対して同じコマンドを実行することができます。

  1. SSH経由で複数のサーバーに接続する

SSHキーペアを使用することを強くお勧めします。SSH通信はパスワードなしで行われます。

見るこの答え

答え3

使用できますモバエクストリームSSH クライアントとして、開いているすべてのターミナルに対して同じコマンドを実行できる MultiExec 機能があります。

関連情報