Gibt es eine Alternative zu Clusterssh, pssh usw., um mehrere ssh-basierte Server über eine Schnittstelle zu verwalten?
Eine Schwachstelle in Clusterssh besteht darin, dass meine Server eine schlüsselbasierte Authentifizierung mit Passhprase zum Anmelden verwenden und es keine Möglichkeit gibt, sich mit dem privaten Schlüssel bei Servern anzumelden.
Gibt es eine Alternative, die die Authentifizierung mit privaten Schlüsseln unterstützt?
linux
ssh
cluster
remote-access
Farhan
quelle
quelle
pssh
? Benötigen Sie parallel oder nur ein Programm, um mehrere SSH-Server zu verwalten?pssh
die-P
Option an.Antworten:
Werfen Sie einen Blick auf Rundeck - http://rundeck.org/
quelle
Stoff
Definieren Sie zuerst Ihre Aufgaben:
Anschließend über das
fab
Befehlszeilentool ausführen :quelle
Sie können ein Konfigurationsmanagementsystem wie Puppet oder Chef installieren . Sie haben nicht erwähnt, wie viele Knoten Sie tatsächlich verwalten möchten. Dies ist möglicherweise ein Overkill, aber Sie können auf diese Weise natürlich viele Maschinen zentral steuern. Wenn Sie gerade 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 Knotensatz ausführen müssen, können Sie
knife ssh 'roles:webserver' 'hostname'
denhostname
Befehl für alle Knoten ausführen , die die Webserverrolle haben (Messer ist das Befehlszeilenprogramm für den Chef) .quelle
Ich verwende Expect- Skripte, um die Anmeldungen zu automatisieren (insbesondere, weil ich durch ein Jumb-Box gehen und eine Chroot eingeben muss und viele Passwörter eingegeben werden müssen) und habe einige "Optimierungen" an der Konfiguration von CSSH vorgenommen. Ich habe also dieses "Hauptskript" in meinem bin-Ordner, das mit einem "Servernamen / Alias" zu dem Server führt, den ich möchte und wo ich möchte.
In der Datei ~ / .clusterssh / config habe ich den Parameter "ssh" so eingestellt, dass er auf mein Skript verweist. Außerdem muss "ssh_args" auf ein harmloses / falsches Argument gesetzt werden. Dies liegt daran, dass cssh seine Standardargumentliste hat, wenn sie tatsächlich leer bleibt Die Standardliste befindet sich im Skript.
Das Skript (in jedem Fenster / Terminal) erhält also diese Argumente und eines der Argumente, die dem 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 wo anzukommen Ich möchte, dann ruft es den "Expect Code" mit all diesen Daten auf.
~ / .clusterssh / config
qs.sh.
deshalb nenne ich es normalerweise so
Es funktioniert auch mit "Cluster-Aliasen" mit dem Cluster "qAll q4 q5 q6 q7". Ich kann mit cssh qAll aufrufen
Hoffe es hilft jemand anderem.
quelle
Ich bevorzuge shmux, um denselben Befehl auf vielen Hosts parallel auszuführen.
quelle
Sie sollten sich auch MCollective ansehen , das wahrscheinlich die beste und flexibelste Möglichkeit ist, mit mehreren Servern in Echtzeit zu interagieren. Es ist ein bisschen mühsam, sich richtig einzurichten, und es ist vielleicht etwas übertrieben für Ihre Bedürfnisse, aber es übertrifft sicherlich pssh, Clusterssh und alle anderen SSH-basierten Lösungen. Und wenn Sie es einmal installiert haben, können Sie wahrscheinlich nichts mehr damit anfangen, vorausgesetzt, Sie kennen ein bisschen Ruby.
quelle
Ich habe mir dieselbe Frage gestellt, da ich die Abhängigkeit von Clusterssh von X11 oder XQuartz unter Mac OS X als störend empfand und außerdem die von Clusterssh geöffneten Terminalfenster hässlicher aussahen als die in Terminal.app
So bin ich auf ein tmux-basiertes Skript von Jörg Jaspert in seinem Blog gestoßen: http://blog.ganneff.de/blog/2013/03/tmux---like-screen-just-nicer.html
quelle
Die Bash-Eingabeaufforderung funktioniert für einfache Dinge:
Erstellen Sie eine Liste der Server in servers.txt, eine Zeile pro Server.
dann mach:
quelle