GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Clusterssh-Alternative zum Verwalten mehrerer SSH-Server

Lösung 1:

  1. Stoff

    Definieren Sie zuerst Ihre Aufgaben:

    from fabric.api import *
    
    @parallel
    @hosts('192.168.3.118', '192.168.6.142')
    
    def hostname():
        run('hostname')
    

    Dann über den fab ausführen Befehlszeilentool:

    $ 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.
    
  2. Gnome-Verbindungsmanager
  3. PAC-Manager

Lösung 2:

Werfen Sie einen Blick auf Rundeck - http://rundeck.org/

Lösung 3:

Sie können aufs Ganze gehen und ein Konfigurationsmanagementsystem wie Puppet oder Chef installieren. Sie haben nicht erwähnt, wie viele Knoten Sie tatsächlich zu verwalten versuchen, also könnte dies übertrieben sein, aber sicherlich können Sie auf diese Weise viele Maschinen zentral steuern. Wenn Sie noch klein sind, aber wachsen, möchten Sie vielleicht auch Chefkoch gründen, bevor Sie so viel größer werden.

Wenn Sie Ad-hoc-Befehle über einen bestimmten Satz von Knoten ausführen müssen, können Sie so etwas wie knife ssh 'roles:webserver' 'hostname' tun (Knife ist das Befehlszeilentool für den Koch), um hostname auszuführen Befehl für alle Knoten, die die Webserver-Rolle haben.

Lösung 4:

Ich bevorzuge shmux, um denselben Befehl auf vielen Hosts parallel auszuführen.

Lösung 5:

Ich verwende Expect-Skripte, um die Anmeldungen zu automatisieren (insbesondere, weil ich durch eine Jumbbox gehen und eine Chroot eingeben muss und viele Passwörter eingegeben werden müssen) und habe einige "Optimierungen" an der Konfiguration von cssh vorgenommen. Also, ich habe dies " main script" in meinem bin-Ordner, der mich mit einem "Servernamen/Alias" zu dem Server bringt, den ich will und wohin ich will.

In der ~/.clusterssh/config habe ich den Parameter „ssh“ so eingestellt, dass er auf mein Skript zeigt, auch „ssh_args“ muss auf ein harmloses/falsches Argument eingestellt werden, das liegt daran, dass cssh seine Standard-Argumentliste hat, wenn sie tatsächlich leer bleibt die Standardliste wird am Ende das Skript sein.

Das Skript (in jedem Fenster/Terminal) erhält also diese Argumente und 1 der Argumente, die an cssh gegeben wurden, das Skript, das es aus einer Datei für den angegebenen Server wiederherstellt, die festgelegten Anmeldeinformationen und die Schritte, die es ausführen muss, um anzukommen wo Ich möchte, dann ruft es den "Expect-Code" mit all diesen Daten auf.

~/.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

also nenne ich es normalerweise so:

# cssh q4 q5 q6 q7

es funktioniert auch mit "cluster aliases" mit dem cluster "qAll q4 q5 q6 q7" kann ich mit cssh qAll aufrufen

Hoffe, es hilft jemand anderem.


Linux
  1. Chrony – Ein alternativer NTP-Client und -Server für Unix-ähnliche Systeme

  2. Ssh – Shell-Skript zum Einloggen in einen SSH-Server?

  3. Verbindungszeitüberschreitung für SSH-Server?

  4. Linux-Befehl zum Warten auf das Hochfahren eines SSH-Servers

  5. Aktivieren Sie die Kennwortanmeldung für SSH auf Amazon Linux AMI

So erstellen Sie einen SFTP-Benutzer für einen Webserver Document Root

SSH-Server

Graylog-Überwachungsserver unter Ubuntu Linux für Überwachungsserver/-dienste

Verwalten von cPanel-Lizenzen

Verwalten Sie SSH-Schlüsselpaare für Cloud-Server mit python-novaclient

ClusterSSH(cssh) – Verwalten Sie mehrere SSH-Sitzungen unter Linux