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

Ssh – Linux-Äquivalent zu Powershells „One-to-Many“-Remoting?

Von der Windows-Administration kommend, möchte ich tiefer in Linux (Debian) eintauchen.
Eine meiner brennenden Fragen, die ich beim Suchen im Web nicht beantworten konnte (nicht gefunden habe), ist:Wie kann ich das sogenannte „one -to-many“-Remoting wie in PowerShell für Windows?

Um es auf das Wesentliche herunterzubrechen, würde ich sagen:

Meine Meinung zu Linux:

  • Ich kann per ssh auf einen Server zugreifen und meinen Befehl eingeben
  • Ich bekomme das Ergebnis. Für eine Umgebung mit 10 Servern müsste ich ein (Perl/Python?)-Skript schreiben, das den Befehl für jeden von ihnen sendet?

Meine Erfahrung mit Windows:

  1. Ich tippe meinen Befehl ein und mit „invoke-command“ kann ich ihn an eine Reihe von Servern „senden“ (vielleicht aus einer Textdatei), um ihn gleichzeitig auszuführen und das Ergebnis zurückzubekommen (als Objekt für die weitere Arbeit).

  2. Ich kann sogar mehrere Sitzungen aufbauen, die Verbindung wird im Hintergrund gehalten und selektiv Befehle an diese Sitzungen senden und nach Bedarf ein- und ausschalten.

(Ich habe von Koch, Puppe usw. gehört. Ist das so etwas?)

Update 2019:
Nachdem ich viel ausprobiert habe, schlage ich Rex vor (siehe diesen Kommentar unten) – einfache Einrichtung (effektiv braucht es nur ssh, sonst nichts) und Verwendung (wenn Sie nur ein bisschen perl kennen es ist sogar noch besser, aber es ist optional)
Mit Rex(ify) Sie können adhoc tun Befehl und erweitern es zu einem echten Konfigurationsmanagement (…bedeutet:es ist in erster Linie ein CM, aber auch nett für Ad-hoc-Aufgaben)
Die Website scheint veraltet zu sein, aber derzeit (Stand 01/2019) befindet sie sich in aktiver Entwicklung und der IRC-Channel ist ebenfalls aktiv .

Mit dem neuen Openssh von Windows gibt es noch mehr Möglichkeiten

Sie können Folgendes versuchen:
rex -u user -p password -H 192.168.1.3 -e 'say run "hostname"'

Akzeptierte Antwort:

Zusammenfassung

  • Ansible ist ein DevOps-Tool, das ein leistungsstarker Ersatz für PowerShell ist
  • RunDeck als grafische Oberfläche ist praktisch
  • Einige Leute betreiben RunDeck+Ansible zusammen

clusterssh

Um Remote-Befehle an mehrere Server zu senden, würde ich für Anfänger clusterssh

empfehlen

Um clusterssh zu installieren bei Debian:

apt-get install clusterssh

Ein weiteres Clusterssh-Tutorial:

ClusterSSH ist ein Tk/Perl-Wrapper um Standard-Linux-Tools wie XTerm
und SSH. Als solches läuft es auf fast jedem POSIX-kompatiblen Betriebssystem, auf dem
die Bibliotheken vorhanden sind – ich habe es unter Linux, Solaris und Mac OS X ausgeführt. Es
benötigt die Perl-Bibliotheken Tk ( perl-tk auf Debian oder Ubuntu) und
X11::Protocol (libx11-protocol-perl auf Debian oder Ubuntu), zusätzlich
zu xterm und OpenSSH.

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 aufwendiger als die Befehlszeilenoptionen.

Um Ansible zu verwenden, benötigen Sie jedoch eine einfache Installation und die Einrichtung der Clientlisten-Textdatei.

Um danach einen Befehl auf allen Servern auszuführen, ist es so einfach wie:

ansible all -m command -a "uptime"

Die Ausgabe ist auch sehr schön formatiert und pro Regel/Server getrennt, und während sie im Hintergrund läuft, kann sie in eine Datei umgeleitet und später konsultiert werden.

Verwandte:Wie kann man Unterverzeichnisse komprimieren?

Sie können mit einfachen Regeln beginnen, und die Verwendung von Ansible wird interessanter, wenn Sie in Linux wachsen und Ihre Infrastruktur größer wird. Als solches kann es so viel mehr als PowerShell.

Als Beispiel ein sehr einfaches Playbook zum Upgrade von Linux-Servern, das ich geschrieben habe:

---
- hosts: all
  become: yes
  gather_facts: False
  tasks:
   - name: updates a server
     apt: update_cache=yes
   - name: upgrade a server
     apt: upgrade=full

Außerdem sind viele Module definiert, mit denen Sie auf einfache Weise umfassende Richtlinien schreiben können.

Modulindex – Ansible-Dokumentation

Es hat auch ein interessantes offizielles Hub/“soziales“ Netzwerk von Repositories, um nach bereits erstellten ansiblen Richtlinien der Community zu suchen. Ansible Galaxy

Ansible ist ebenfalls weit verbreitet, und Sie werden viele Projekte in Github finden, wie dieses von mir für die Einrichtung von FreeRadius.

Während Ansible ein kostenloses Open-Source-Framework ist, hat es auch eine kostenpflichtige Webpanel-Oberfläche, Ansible Tower, obwohl die Lizenzierung ziemlich teuer ist.

Heutzutage, nachdem RedHat es gekauft hat, hat Tower auch die Open-Source-Version namens 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 Firewall) zu verwalten, was es zu einer sehr interessanten Lösung als schlüsselfertige Automatisierungslösung macht.

So installieren Sie Ansible

Runddeck

Noch einmal, für ein Remote-Framework, das einfacher zu verwenden, aber nicht so leistungsfähig wie Ansible ist, empfehle ich Rundeck.

Es ist eine sehr leistungsstarke grafische Benutzeroberfläche für mehrere Benutzer/Anmeldung, mit der Sie viele Ihrer alltäglichen Aufgaben automatisieren und sogar verwässerte Ansichten für Sysops oder Helpdesk-Mitarbeiter bereitstellen können.

Wenn Sie die Befehle ausführen, erhalten Sie auch Fenster mit einer nach Server/Task aufgeschlüsselten Ausgabe.

Es kann mehrere Jobs nahtlos im Hintergrund ausführen und ermöglicht es Ihnen, den Bericht und die Ausgabe später anzuzeigen.

So installieren Sie RunDeck

Bitte beachten Sie, dass es Leute gibt, die Ansible+RunDeck als Webinterface betreiben; 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 es im Laufe der Zeit ermöglicht, die Aktionen/Rezepte/Playbooks zu replizieren und zu verbessern.

Wenn wir schließlich über einen zentralen Befehlsserver sprechen, würde ich einen erstellen, der genau für diese Aufgabe geeignet ist. Eigentlich ist der Fachbegriff Sprungkasten. „Sprungboxen“ verbessern die Sicherheit, wenn Sie sie richtig einrichten.


Linux
  1. So ändern Sie den SSH-Port unter Linux

  2. Entmystifizierung von Ansible für Linux-Systemadministratoren

  3. 8 Schritte zur Entwicklung einer Ansible-Rolle in Linux

  4. So installieren Sie Ansible unter Oracle Linux 8

  5. Linux-Äquivalent zu Robocopy?

Verwenden Sie das Task-Manager-Äquivalent in Linux

10 umsetzbare SSH-Härtungstipps zur Sicherung Ihres Linux-Servers

So führen Sie SSH zum Server über Linux

So installieren Sie Ansible unter Linux Mint 20

Gibt es ein WinSCP-Äquivalent für Linux?

Linux-Äquivalent zum One-to-Many-Remoting von PowerShell