Ausgehend von der Windows-Administration möchte ich Linux (Debian) näher kennenlernen. Eine meiner brennenden Fragen, die ich beim Durchsuchen des Webs nicht beantworten konnte (nicht gefunden), lautet: Wie kann ich das sogenannte "Eins-zu-Viele" -Remoting wie in PowerShell für Windows erreichen?
Um es auf das Wesentliche zu reduzieren, würde ich sagen:
Meine Sicht auf Linux:
- Ich kann in einen Server ssh und meinen Befehl eingeben
- Ich verstehe das Ergebnis. Für eine Umgebung von 10 Servern müsste ich ein (Perl / Python?) - Skript schreiben, das den Befehl für jeden von ihnen sendet.
Meine Erfahrung mit Windows:
Ich gebe meinen Befehl ein und mit "invoke-command" kann ich diesen an eine Reihe von Servern "senden" (möglicherweise aus einer Textdatei), um ihn gleichzeitig auszuführen und das Ergebnis zurückzugewinnen (als Objekt für die weitere Arbeit).
Ich kann sogar mehrere Sitzungen einrichten, die Verbindung wird im Hintergrund gehalten und Befehle können selektiv an diese Sitzungen gesendet werden.
(Ich habe von Koch, Marionette usw. gehört. Ist das so etwas wie das?)
Update 2019:
Nachdem Sie viel ausprobiert haben - ich empfehle Rex (siehe diesen Kommentar unten ) - einfaches Setup (effektiv benötigt es nur ssh, nichts anderes) und Verwendung (wenn Sie nur ein bisschen Perl kennen, ist es noch besser, aber es ist optional)
mit Rex (ify) ) Sie können das Ad-hoc- Kommando ausführen und es zu einem echten Konfigurationsmanagement weiterentwickeln (... was bedeutet: Es ist in erster Linie ein CM, aber auch für Ad-hoc-Aufgaben geeignet). Die Website ist veraltet, aber aktuell (Stand: 01/2019). es befindet sich in aktiver Entwicklung und der IRC-Channel ist ebenfalls aktiv.
Mit dem neuen openssh von Windows gibt es noch mehr Möglichkeiten
Du kannst es versuchen:
rex -u user -p password -H 192.168.1.3 -e 'say run "hostname"'
:setw synchronize-panes on
( unix.stackexchange.com/a/124800/161003 )Antworten:
Zusammenfassung
Clustersh
Zum Senden von Remote-Befehlen an mehrere Server würde ich für Anfänger Clustersh empfehlen
So installieren Sie
clusterssh
in Debian:Ein weiteres Cluster-Tutorial :
Ansible
Als Remote-Framework für die Verwaltung mehrerer Systeme ist Ansible eine sehr interessante Alternative zu Puppet. Es ist schlanker und benötigt keine dedizierten Remote-Agenten, da es über SSH funktioniert (es wurde auch von RedHat gekauft).
Die Playbooks sind umfangreicher als die Befehlszeilenoptionen.
Um Ansible zu verwenden, müssen Sie jedoch eine einfache Installation durchführen und die Textdatei für die Client-Liste einrichten.
Danach ist es so einfach, einen Befehl auf allen Servern auszuführen:
Die Ausgabe ist außerdem sehr gut formatiert und nach Regeln / Servern getrennt. Während der Ausführung im Hintergrund kann die Ausgabe in eine Datei umgeleitet und später abgerufen werden.
Sie können mit einfachen Regeln beginnen, und die Verwendung von Ansible wird interessanter, wenn Sie unter Linux wachsen und Ihre Infrastruktur größer wird. Als solches wird es so viel mehr tun als PowerShell.
Als Beispiel ein sehr einfaches Playbook zum Upgrade von Linux-Servern, das ich geschrieben habe:
Es sind auch viele Module definiert, mit denen Sie einfach umfassende Richtlinien erstellen können.
Modulverzeichnis - Ansible Dokumentation
Es hat auch ein interessantes offizielles Hub / "soziales" Netzwerk von Repositories, um nach bereits gesetzten Ansible Policies der Community zu suchen. Ansible Galaxy
Ansible ist auch weit verbreitet, und Sie werden viele Projekte in Github finden, wie dieses von mir für das FreeRadius-Setup .
Ansible ist ein kostenloses Open-Source-Framework, hat aber auch eine kostenpflichtige Web-Panel-Oberfläche, Ansible Tower, obwohl die Lizenzierung ziemlich teuer ist.
Heute, nachdem RedHat es gekauft hat, hat Tower auch die Open-Source-Version AWX .
Als Bonus ist Ansible auch in der Lage, Windows-Server zu verwalten, obwohl ich es nie dafür verwendet habe.
Es ist auch in der Lage, Netzwerkgeräte (Router, Switches und Firewalls) zu verwalten, was es zu einer sehr interessanten Lösung als schlüsselfertige Automatisierungslösung macht.
Wie installiere ich Ansible?
Rundeck
Wiederum empfehle ich Rundeck , um ein Remote-Framework zu verwenden, das einfacher ist, aber nicht so leistungsfähig wie Ansible .
Es ist eine sehr leistungsstarke grafische Benutzeroberfläche für mehrere Benutzer / Anmeldungen, mit der Sie einen Großteil Ihrer alltäglichen Aufgaben automatisieren und Sysops oder Helpdesk-Mitarbeitern verwässerte Ansichten geben können.
Wenn Sie die Befehle ausführen, erhalten Sie auch Fenster mit einer nach Server / Task aufgeschlüsselten Ausgabe.
Es kann mehrere Jobs im Hintergrund nahtlos ausführen und Sie können den Bericht und die Ausgabe später anzeigen.
So installieren Sie RunDeck
Bitte beachten Sie, dass es Leute gibt, die Ansible + RunDeck als Webinterface ausführen. Nicht alle Fälle sind dafür geeignet.
Es versteht sich auch von selbst, dass die Verwendung von Ansible und / oder RunDeck als Form oder Teil der Infrastrukturdokumentation ausgelegt werden kann und im Laufe der Zeit die Replikation und Verbesserung der Aktionen / Rezepte / Playbooks ermöglicht.
Als letztes würde ich, wenn ich von einem zentralen Befehlsserver spreche, einen erstellen, der nur für die Aufgabe geeignet ist. Eigentlich ist der Fachbegriff eine Sprungbox. "Sprungkästen" verbessern die Sicherheit, wenn Sie sie richtig einrichten .
quelle
Wenn Sie es interaktiv tun möchten, können Sie verwenden
terminator
, um einen Befehl an mehrere Terminals zu senden.Siehe: Wie führe ich denselben Linux-Befehl in mehr als einem Tab / einer Shell gleichzeitig aus?
quelle
tmux
und Strg + b:set sync on
Sie können auch
pssh
(oderparallel-ssh
) verwenden, einen SSH-Client, der eine Verbindung zu einer Liste von Hosts herstellt und den Befehl auf allen Hosts parallel ausführt:quelle
Vielleicht können Sie Ihr Ziel mit einer einfachen zsh (bash) -Funktion erreichen. Angenommen, Sie haben Server l61 l62 l63 und müssen häufig einen Befehl auf ihnen ausführen:
Also, in der Kommandozeile:
quelle
Wenn Sie KDE verwenden, finden Sie hier eine andere Methode.
- Öffnen Sie ein Konsole-Fenster.
Für jeden Server, mit dem Sie kommunizieren möchten:
- Öffnen Sie eine Registerkarte
- Herstellen einer SSH-Verbindung mit dem Server
Wählen Sie im Menü "Bearbeiten" die Option "Eingabe kopieren" zu "Alle Registerkarten".
Jeder Befehl, den Sie auf dieser Registerkarte eingeben, wird auf alle Server kopiert.
Sie können von Registerkarte zu Registerkarte wechseln, um die verschiedenen Ergebnisse anzuzeigen.
Hinweis: Meine Menübeschriftungen (in Anführungszeichen) sind möglicherweise falsch, da ich keine englische Version von KDE verwende
quelle
GNU parallel
Es erlaubt einfache Einzeiler mit gespeicherten Einstellungen, so dass Sie ein Profil "prod" erstellen können, das eine Serverliste und allgemeine Schalter enthält. Fügen Sie dann einfach den gewünschten Befehl hinzu und Sie sind bereit. Sie können auch Dateien kopieren den Server und löscht sie automatisch am Ende, und es ist ziemlich praktisch für noch größere Skripte. Auch es ist sehr schnell.
Das einzige Problem ist, dass es so viele Optionen gibt;) Die Dokumentation enthält jedoch auch viele Beispiele, sodass Sie sie am Anfang nur ansehen können.
quelle
Ich möchte "Rex" auch hier erwähnen: https://www.rexify.org/
Es ist ein großartiges Tool, das Perl + ssh (Benutzer- / Passwort- oder Schlüsselauthentifizierung) verwendet. Da Perl auf jedem (?!) Linux-System installiert ist, scheint es natürlicher zu sein (es hat einige Ähnlichkeiten mit Ansible & Co.).
Sie können Ad-hoc-Befehle auf mehreren Servern gleichzeitig ausführen (Server1, Server2, Server ... - nach dem Einrichten der Authentifizierung oder alternativ die Parameter -p / -u und -s / -S für die Sudo-Ausführung des Befehls verwenden):
oder erstellen Sie eine Datei, in der Sie verschiedene "Aufgaben" angeben und von dort aus aufrufen
Es kann über Repositorys oder sogar mit perls cpan (oder
cpanm Rex
) installiert werden und die Ersteinrichtung ist einfach, siehe:- https://www.rexify.org/ oder
- https://www.rexify.org/docs/guides/ start_using__r__ex.html und
- http://www.admin-magazine.com/Archive/2014/21/First-steps-in-IT-automation-by-Rex
quelle