GNU/Linux >> Linux の 問題 >  >> Linux

複数の SSH サーバーを管理するための Clusterssh の代替手段

解決策 1:

<オール>
  • ファブリック

    最初にタスクを定義します:

    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.
    
  • Gnome 接続マネージャー
  • PAC マネージャー
  • 解決策 2:

    Rundeck を見てみましょう - http://rundeck.org/

    解決策 3:

    Puppet や Chef などの構成管理システムを完全に独り占めしてインストールできます。実際に管理しようとしているノードの数について言及していないので、これはやり過ぎかもしれませんが、確かに、この方法で多くのマシンを集中管理できます。今は小さくても成長している場合は、大きくなる前に Chef などをセットアップすることもできます。

    特定のノード セットに対してアドホック コマンドを実行する必要がある場合は、knife ssh 'roles:webserver' 'hostname' のように実行できます。 (ナイフはシェフのコマンドラインツールです) hostname を実行します webserver ロールを持つすべてのノードのコマンド。

    解決策 4:

    多くのホストで同じコマンドを並行して実行するには、shmux を好みます。

    解決策 5:

    私はスクリプトを使用してログインを自動化し (特に、ジャンブ ボックスを通過して chroot に入る必要があり、多くのパスワードを入力する必要があるため)、cssh の構成にいくつかの「微調整」を行いました。メイン スクリプト」を「サーバー名/エイリアス」を指定して bin フォルダーに配置すると、目的のサーバーと目的の場所に移動できます。

    ~/.clusterssh/config で、スクリプトを指すように「ssh」パラメーターを設定しました。また、「ssh_args」を無害な/偽の引数に設定する必要があります。これは、実際に空のままにした場合、cssh にデフォルトの引数リストがあるためです。デフォルトのリストは最終的にスクリプトになります。

    したがって、スクリプト (各ウィンドウ/ターミナル内) は、この引数と cssh に指定された引数の 1 つを受け取ります。スクリプトは、指定されたサーバーのファイルから資格情報セットを復元し、場所に到達するために実行する必要がある手順を受け取ります。私が望むなら、それはそのすべてのデータで「expect コード」を呼び出します。

    ~/.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 [email protected]$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 [email protected]$1
        ;;
    *)
        echo "GOOH"
    esac
    

    だから私は通常、このようなものでそれを呼び出します

    # cssh q4 q5 q6 q7
    

    クラスターを持つ「クラスターエイリアス」でも動作しています「qAll q4 q5 q6 q7」 cssh qAllで呼び出すことができます

    他の誰かの役に立てば幸いです。


    Linux
    1. Ssh – Sshサーバーにログインするためのシェルスクリプト?

    2. クライアントのSsh秘密公開鍵マップ?

    3. Sshサーバーの接続タイムアウト?

    1. Chrony –Unixライクなシステム向けの代替NTPクライアントおよびサーバー

    2. 複数のウィンドウのパスワードを入力する方法は?

    3. SSHのトラブルシューティング

    1. python-novaclientを使用してクラウドサーバーのSSHキーペアを管理する

    2. ssh 用の teamviewer のようなツール?

    3. アウトバウンド接続用に複数のデフォルト ゲートウェイを設定することはできますか?