1つのインターフェイスを介して複数のSSHベースのサーバーを管理するためのClusterssh、psshなどの代替手段はありますか?
Clustersshの弱点の1つは、私のサーバーがログインにpasshpraseを使用した鍵ベースの認証を使用し、秘密鍵を使用してサーバーにログインする方法がないことです。
秘密鍵による認証をサポートする代替手段はありますか?
pssh
の-P
オプションを見てください。
1つのインターフェイスを介して複数のSSHベースのサーバーを管理するためのClusterssh、psshなどの代替手段はありますか?
Clustersshの弱点の1つは、私のサーバーがログインにpasshpraseを使用した鍵ベースの認証を使用し、秘密鍵を使用してサーバーにログインする方法がないことです。
秘密鍵による認証をサポートする代替手段はありますか?
pssh
の-P
オプションを見てください。
回答:
Rundeckをご覧ください-http ://rundeck.org/
最初にタスクを定義します。
from fabric.api import *
@parallel
@hosts('192.168.3.118', '192.168.6.142')
def hostname():
run('hostname')
次に、fab
コマンドラインツールを使用して実行します。
$ fab -f /path/to/.py/file hostname
[192.168.3.118] Executing task 'hostname'
[192.168.6.142] Executing task 'hostname'
[192.168.6.142] run: hostname
[192.168.3.118] run: hostname
[192.168.6.142] out: SVR040-6142
[192.168.3.118] out: SVR040-3118.localdomain
Done.
独り占めして、PuppetやChefなどの構成管理システムをインストールできます。実際に管理しようとしているノードの数については言及していないため、これはやり過ぎかもしれませんが、多くのマシンをこの方法で集中管理できます。あなたが今は小さいが成長している場合は、それより大きくなる前に、たとえばChefを設定することもできます。
特定のノードセットでアドホックコマンドを実行する必要がある場合knife ssh 'roles:webserver' 'hostname'
は、ナイフ(chefのコマンドラインツール)のhostname
ような方法で、webserverの役割を持つすべてのノードに対してコマンドを実行できます。
期待スクリプトを使用してログインを自動化し(特に、ジャンボボックスを通過してchrootに入力する必要があり、多くのパスワードを入力する必要があるため)、csshの構成にいくつかの「微調整」を行いました。そのため、「サーバー名/エイリアス」が指定されたbinフォルダーにこの「メインスクリプト」があり、必要なサーバーと必要な場所にサーバーが移動します。
〜/ .clusterssh / configで、スクリプトを指すように「ssh」パラメーターを設定しました。また、「ssh_args」も無害な/偽の引数に設定する必要があります。これは、csshにデフォルトの引数リストがあるためです(実際に空のままにした場合)デフォルトのリストは最終的にスクリプトになります。
そのため、スクリプト(各ウィンドウ/ターミナルで)は、この引数とcsshに渡された引数の1つを受け取り、指定されたサーバーのファイルから資格情報セットと、そこに到達するために実行する必要がある手順をファイルから回復します。必要なのは、そのすべてのデータを使用して「期待コード」を呼び出すことです。
〜/ .clusterssh / config
ssh=/home/user/bin/qs.sh
ssh_args=-a
qs.sh
#!/bin/bash
export PATH=~/bin:$PATH
shift
case $1 in
q4|q5|q6|q7|q8|q9)
essh user1@axt$1
### essh it's some little bash script that does the things I said before and in the end it launches the expect
;;
q1|q2|q3)
essh axtr@axt$1
;;
*)
echo "GOOH"
esac
だから私は通常、このようなものでそれを呼び出します
# cssh q4 q5 q6 q7
「qAll q4 q5 q6 q7」というクラスターを持つ「クラスターエイリアス」でも機能します。csshqAllで呼び出すことができます。
それが他の誰かを助けることを願っています。
MCollectiveも確認する必要があります。これは、複数のサーバーとリアルタイムで対話するためのおそらく最良かつ最も柔軟な方法です。正しく設定するのはちょっとした仕事で、ニーズによっては少し上になるかもしれませんが、pssh、Clusterssh、および他のすべてのSSHベースのソリューションに勝ります。そして、いったんそれを配置したら、Rubyについて少し知っていれば、それを使ってできないことはおそらくありません。
clustersshがMac OS XのX11またはXQuartzに依存していることに不快であることに気づき、さらに、clustersshによって開かれたターミナルウィンドウがTerminal.appのものよりも醜く見えたので、私も同じ質問をしました。
それは私が彼のブログでJoerg Jaspertからのtmuxベースのスクリプトに出会った方法です:http ://blog.ganneff.de/blog/2013/03/tmux---like-screen-just-nicer.html
基本的に入力する
tm ms HOST1 user@HOST2
と、2つのペインで構成される1つのtmuxウィンドウでセッションが開きます
pssh
何ですか?複数のSSHサーバーを管理するために、並列または単なるプログラムが必要ですか?