ADMIN-Tipp: Parallelarbeit

07.08.2012

Im Admin-Alltag kommt es nicht selten vor, das dasselbe Kommando auf mehreren Rechnern auszuführen ist. Eigentlich ist das die Domäne von Automatisierungstools wie Chef oder Puppet, aber es klappt auch eine Nummer kleiner.

Eine weniger anspruchsvolle Lösung für das parallele Abarbeiten gleicher Kommandos auf verschiednenen Rechnern findet sich im Paket pssh. Es enthält Werkzeuge wie parallel-slurp für den parallelen Download eines Files von verschiedenen Remote-Computern auf den lokalen Rechner. Dasselbe in der Gegenrichtung erledigt parallel-scp. Dagegen führt parallel-ssh beliebige Kommandos auf einer Reihe von Rechnern aus und parallel-nuke killt auf mehreren entfernten Computern einen bestimmten Prozess.

Allen diesen Tools gemeinsam ist, dass sie die Liste der parallel zu verwendenden Rechner hinter dem Schalter -h als einfaches Textfile im Format

user@rechner:[port]

erwarten. Damit ergibt sich ein Aufruf wie

jcb@hercules:~$ parallel-ssh -i -h ./phosts.txt uptime
[1] 16:47:18 [SUCCESS] jbrendel@reed 33
16:47:18 up 19 days,  5:21,  3 users,  load average: 0.19, 0.21, 0.22
[2] 16:47:18 [SUCCESS] root@esxi 33
16:47:18 up 42 days,  5:21,  5 users,  load average: 0.39, 0.24, 0.23

Die Option -i  (inline) sorgt hier dafür, dass STDOUT des entfernten Rechners in die Ausgabe übernommen wird, andernfalls würde man die Uptime-Werte nicht sehen können.

Im Beispiel waren die Public Keys auf den Remotesystemen in .ssh/authorized_keys hinterlegt, sodass ein SSH-Login ohne Passwort möglich war. Alternativ kann man mit dem Schalter -A auch eine sichere Passworteingabe ermöglichen.

Ähnliche Artikel

Artikel der Woche

Eigene Registry für Docker-Images

Wer selber Docker-Images herstellt, braucht auch eine eigene Registry. Diese gibt es ebenfalls als Docker-Image, aber nur mit eingeschränkter Funktionalität. Mit einem Auth-Server wird daraus ein brauchbares Repository für Images. (mehr)
Einmal pro Woche aktuelle News, kostenlose Artikel und nützliche ADMIN-Tipps.
Ich habe die Datenschutzerklärung gelesen und bin einverstanden.

Konfigurationsmanagement

Ich konfiguriere meine Server

  • von Hand
  • mit eigenen Skripts
  • mit Puppet
  • mit Ansible
  • mit Saltstack
  • mit Chef
  • mit CFengine
  • mit dem Nix-System
  • mit Containern
  • mit anderer Konfigurationsmanagement-Software

Ausgabe /2021