Arbeit sparen mit Cluster SSH

Nachdem sich bei einem Rechnerverbund mal wieder Updates angehäuft haben, stand bis jetzt normalerweise immer die folgende Prozedur an:

  • ssh server1
  • aptitude safe-upgrade
  • exit
  • ssh server2
  • aptitude safe-upgrade
  • exit
  • ...
  • ssh serverN
  • aptitude safe-upgrade
  • exit

Ich hatte noch einen Artikel aus dem Linux-Magazin im Kopf (Ausgabe 1/11, S. 85, Charly Künast: "Sponton simultan"),
indem der gute Charly einen möglichen Lösungsansatz für mich parat hält um N Schritte zu einem zusammen fassen zu können.

Die Lösung heißt Cluster SSH.

Installation von Cluster SSH unter Ubuntu

aptitude install clusterssh

In ~/.csshrc die Direktive extra_cluster_file mit unserer zukünftigen Konfigurationsdatei für die Cluster erweitern:

extra_cluster_file=~/.csshrc.clusters

Anlegen eines Clusters

Anlegen eines Rechnerverbundes: ~/.csshrc.clusters (in diesem Fall ist für alle Rechner ein entsprechender SSH-Public-Key hinterlegt):

# Cluster honky
honky honky1 honky2:3419 ez@honky3 honkyN

Für ein Login auf allen in "Cluster honky" eingetragen Rechner reicht jetzt ein:

cssh honky

Nach ein erfolgreichem Befehl stehen dann N Xterms zur Verfügung,
die über den "Controller", hier in der Mitte angesprochen werden können.

Clusterssh mit 4 xterms

Arbeiten mit mehreren Clustern

Bei der Nutzung von mehreren Clustern wird im Gegensatz zum obigen Beispiel eine andere Syntax in ~/.csshrc.clusters genutzt:

  1. clusters = honky bonk all
  2.  
  3. # Cluster honky
  4. honky = honky1 honky2:3419 ez@honky3 honkyN
  5.  
  6. # Cluster bonk
  7. bonk = bonk1 honkmaster@bonk2 bonk3:3419 bonkN
  8.  
  9. # Cluster all
  10. all = honky bonk

In Zeile 1 werden über die Direktive clusters die verfügbaren Cluster definiert.

In den Zeilen 4 und 7 werden analog zum Anlegen eines Clusters die Maschinen den in Zeile 1 definierten Clustern zugewiesen, wobei hier hinter dem Namen des Clusters ein Gleichheitszeichen (=) stehen muss, die jeweiligen Rechner folgen wie oben mit Leerzeichen getrennt.

In Zeile 10 werden unter all oben konfigurierten Cluster wieder zu einen Verbund zusammengefasst.

Fazit

Bei absehbarer Wiederverwendung spart das, trotz des einmaligen Mehraufwandes der Konfiguration in Zukunft eine Menge unötigen Aufwand.

Mehr unter cssh(1) - Linux man page (man cssh).