サーバー管理者のほとんどは、サーバーを維持するためにSSHを実行します。 彼が多くのサーバーを管理するとき、彼は複数のSSHセッションを開く必要があるかもしれません。 保守アクティビティが各サーバーで同じコマンドを使用している場合、各サーバーにコマンドを1つずつ入力すると、より多くの時間が消費される可能性が あるサーバーでコマンドを実行し、それらを別のサーバーに複製することは可能ですか? Linuxでは、できます。 この状況を解決するには、ClusterSSHコマンドを使用します。
ClusterSSHとは
ClusterSSHは、複数のSSHセッションを同時に管理できるアプリケーションです。 ClusterSSHを使用すると、サーバーグループ(クラスター)で同じコマンドを同時に実行できます。 これにより、すべてのサーバーが確実に同期されます。
Debian/UbuntuベースのLinux上でパッケージマネージャを使用したインストール
:
$ sudo apt-get install clusterssh
RedHat/CentOSベースのLinux上で:
# yum -y install clusterssh
tarball
を使用して、最新バージョンがインストールされていることを確認するには、ClusterSSHソースファイルをダウンロードして手動でコンパイルします。 この記事が書かれた時点で、ClusterSSHの最新バージョンは3.28です。 ソースはSourceForgeサイトからダウンロードできます。
ダウンロードしたら、インストールする手順は次のとおりです。
1. ソースファイル
を抽出します。 ソースファイルが抽出されたフォルダに移動します
3. タイプ:
$ ./configure$ make# make install
4. 完了
ClusterSSHはPerlを使用し、実行するライブラリであることに注意してください。 私のZorin Linux(Ubuntuベース)では、clustersshをコンパイルするときにいくつかのエラーが見つかりました。
/include
経由でXインクルードファイルが見つかりませんXインクルードファイルがどこにも見つかりません
このエラーを解決するために、私は走った:
$ sudo apt-get install libx11-dev
libx11-devのインストールが終了したら、私はそれを再びコンパイルしようとしましたが、うまくいきました!
が見つかりませんTk.pm
Perlモジュールを必要とします。 このエラーの解決策は、次のようにインストールすることですTk.pm モジュール。 それをインストールする最も簡単な方法は、CPANを使用しています。
$ cpan -i Tk
インストール後Tk.pm コンソール経由でcsshと入力してみてください。
はX11/Protocolを見つけられません。pm
このエラーが発生した場合は、CPAN経由でX11/Protocol.pmモジュールをインストールできます。
$ cpan -i X11::Protocol
Tk.pm コンソール経由でcsshと入力してみてください。ClusterSSHを実行するには、
$ cssh -l username server_ip_address
と入力できますが、ClusterSSHの力は複数のSSHセッションを管理することです。 次のように入力することもできます:
$ cssh -l username server_ip_address_1 server_ip_address_2 server_ip_address_n
しかし、これはあなたが多くのサーバーを持っている良い方法ではないかもしれません。 複数のSSHセッションを実行する別の方法は、各サーバーのアドレスをCSSH設定ファイルに入れることです。 設定ファイルには2つのタイプがあります。 最初はグローバル設定ファイルです。 このファイルは/etc/clustersにあります。 第二は。ユーザーのホームディレクトリにあるcsshrc。この記事では
を使用しています。ClusterSSHを設定するcsshrcファイル。 たとえば、サーバーと呼ばれるクラスター名(グループ名)を追加します。 次に、そのグループのメンバーを追加します。 ここにあります。csshrcファイルは次のようになります:
clusters=serversservers=10.0.6.12 10.0.14.6 10.0.6.149
クラスターを実行するには、次のように入力します:
$ cssh -l pungki.arianto servers -T "Server Farm"
1. プンキariantoは、これらのサーバのログイン名
2です。 -T”Server Farm”は、各SSHウィンドウにタグサーバーファームを与えます。
次のステップでは、各サーバーのパスワードを入力する必要があります。 ヘッダーサーバーファーム(3)を持つ管理コンソールが表示されます。 すべてのサーバーに対してコマンドを実行する場合は、管理コンソールボックスにコマンドを入力する必要があります。 あなたがボックスに入力したものが表示されない場合がありますが、あなたはそれがすべてのサーバーに表示されます。
すべてのサーバーにコマンドをエコーしたくない場合は、除外するホストを無効にすることができます。 管理コンソールの[ホスト]メニューをクリックして、除外するサーバーを選択するだけです。
重要
すべてのコマンドをすべてのサーバーにエコーする利点は、すべてのサーバーが同期されていることを確認することです。 もちろん、すべてのサーバーに同じコマンドを繰り返す時間を節約できます。 しかし、間違ったコマンドを実行すると、すべてのサーバーに影響を与えます。 Enterボタンを押す前に、正しいコマンドを入力していることを確認してください。
結論
ClusterSSHは、管理者が注意して使用する限り、サーバー間で同じコマンドを同時に実行するのに役立ちます。 いつものように、man csshまたはcssh-hと入力してマニュアルページを表示し、より詳細を調べることができます。