SSH Befehle auf mehrere Server verteilen

Bash, Shell, PHP, Python, Perl, CGI
schoeppchen
Posts: 27
Joined: 2006-06-11 09:51

SSH Befehle auf mehrere Server verteilen

Post by schoeppchen » 2006-06-11 09:52

Hallo,

ich suche eine Möglichkeit SSH Befehle auf Kommandozeile (Debian Sarge) bequem an mehere Hosts verteilen zu können.

Praktisch gesprochen habe ich nächtlich cron-apt auf ca. 30 Linuxservern laufen, gibt es neue Pakete (und das ist oft Wink), dann bekomme ich von jedem System eine E-Mail, dass neue Pakete da sind und aufs einspielen warten. Nun muss ich derzeit also im schlimmsten Falle auf alle 30 Server per SSH drauf gehen und apt-get upgrade durchführen - was eine furchtbare Arbeit ist. Trotzdem möchte ich nicht, dass cron-apt die Pakete automatisch einspielt, da dies nur Probleme bringt.

Schön wäre nun also ein Tool, welchem ich meine Server einstelle und dann auf allen System das Kommando parallel (oder auch hintereinander, aber halt in einer Shell) ausführen kann. Ich erhalte den Output der einzelnen Systeme dann nacheinander und kann interaktiv steuern - alles aus einer Shell heraus und ohne erst in 30 Terminalfenstern auf die Server connecten zu müssen. Das Ganze setzt natürlich PublicKey-Auth mit SSH Agent lokal voraus - dies ist aber kein Problem.

Kennt jemand eine solches Tool?

thorsten
RSAC
Posts: 732
Joined: 2003-02-01 13:14
Location: Fuldatal

Re: SSH Befehle auf mehrere Server verteilen

Post by thorsten » 2006-06-11 11:27

Entweder mit der konsole unter KDE oder natürlich mit der 'dancers shell' bzw. 'distributed shell' - eben der dsh.

mattiass
Userprojekt
Userprojekt
Posts: 608
Joined: 2005-12-16 17:57

Re: SSH Befehle auf mehrere Server verteilen

Post by mattiass » 2006-06-11 11:41

schoeppchen wrote: Schön wäre nun also ein Tool, welchem ich meine Server einstelle und dann auf allen System das Kommando parallel (oder auch hintereinander, aber halt in einer Shell) ausführen kann. Ich erhalte den Output der einzelnen Systeme dann nacheinander und kann interaktiv steuern - alles aus einer Shell heraus und ohne erst in 30 Terminalfenstern auf die Server connecten zu müssen. Das Ganze setzt natürlich PublicKey-Auth mit SSH Agent lokal voraus - dies ist aber kein Problem.

Kennt jemand eine solches Tool?
Die Shell???

Code: Select all

for i in server1 server2 server30
do
    ssh root@${i} /usr/bin/blubberblah
done
Falls Du 30 xterms gleichzeitig bedienen willst, geht auch das:

Code: Select all

for i in server1 server2 server30
do
    xterm -title "Blubberblah auf ${i}" 
      -e ssh root@${i} /usr/bin/blubberblah &
done
Beide gehen natürlich davon aus, dass Du auf allen Servern das Update kontrollieren möchtest, d.h. u.U. sind nicht alle Server exakt gleich konfiguriert...

Roger Wilco
Administrator
Administrator
Posts: 6001
Joined: 2004-05-23 12:53

Re: SSH Befehle auf mehrere Server verteilen

Post by Roger Wilco » 2006-06-11 12:52

Weitere Möglichkeiten:
http://clusterssh.sourceforge.net/
http://www.theether.org/pssh/ (Achtung, Augenkrebs ;))

schoeppchen
Posts: 27
Joined: 2006-06-11 09:51

Re: SSH Befehle auf mehrere Server verteilen

Post by schoeppchen » 2006-06-11 13:37

Hi,

danke für die Antworten: Ich denke clusterssh ist genau das, was ich möchte. Danke an alle!