Software auf viele Rechner verteilen

Schönen guten Tag,

ich habe das Problem, immer wieder Dateien auf viele gleichartige Rechner zu verteilen zu müssen.

Ein Beispiel: ich habe hier 170 Linux-Server, auf die ich beispielsweise Public Keys kopieren muss. Oder ich will ein Startscript in /etc/init.d, dass auf allen Maschinen gleich ist, aktualisieren.

Ok, dazu gebe ich einfach 170 mal scp foo.sh [email protected] 2 3 4 5 6 7 8 … 168 169 170:/bar ein. Oh, welche Freude, ich stelle schon bei Nummer 119 fest, dass ich einen Fehler gemacht habe und fang wieder von vorn an.

Wie ätzend. Natürlich kann ich das Problem dadurch lösen, keine Fehler zu machen, oder ich kann mir ein tolles System erdenken, dass die Verteilung einfacher macht oder möglicherweise automatisiert *hechel*.

Meine Frage: muss ich mir so etwas selber ausdenken oder gibt es entsprechende Ansätze und Software, die mir dabei helfen kann? Google liefert mir nichts Griffiges, wahrscheinlich sind meine Suchbegriffe nicht schlau genug. Ich bitte um bessere.

Stefan

Tach,

ich habe das Problem, immer wieder Dateien auf viele
gleichartige Rechner zu verteilen zu müssen.

Meine Frage: muss ich mir so etwas selber ausdenken oder gibt
es entsprechende Ansätze und Software, die mir dabei helfen
kann?

Was wäre an bspw.

for ((i=1; i
ungeeignet?

Eine andere Möglichkeit wäre es, bestimmte Verzeichnisse zentral vorzuhalten und auf allen Rechnern zu mounten (NFS, SMB). Ob das sinnvoll ist, hängt u.a. davon ab, was genau das für Dateien jeweils sind.

Gruß,

Malte

Schönen guten Tag,

Hi,

ich habe das Problem, immer wieder Dateien auf viele
gleichartige Rechner zu verteilen zu müssen.

Gleichartige oder gleiche? Oder, wie Sebastian sagen wuerde: was genau ist eigentlich Dein Problem? Ist aber eigentlich egal.

Ein Beispiel: ich habe hier 170 Linux-Server, auf die ich
beispielsweise Public Keys kopieren muss. Oder ich will ein
Startscript in /etc/init.d, dass auf allen Maschinen gleich
ist, aktualisieren.

Ok, dazu gebe ich einfach 170 mal scp foo.sh
[email protected] 2 3 4 5 6 7 8 … 168 169 170:/bar
ein.

Das packt man in ein Schell-Skript. Malte hat gezeigt, wie’s geht.

Meine Frage: muss ich mir so etwas selber ausdenken

Wir haben das Problem auch oefter und wir haben uns mit der Zeit ein System dafuer erdacht. Es ist einfach, flexibel und wird beinahe taeglich erweitert. Nein, es ist nicht fuer jeden benutzbar. Daher empfehle ich Dir was anderes.

oder gibt es entsprechende Ansätze und Software, die mir dabei
helfen kann? Google liefert mir nichts Griffiges, wahrscheinlich
sind meine Suchbegriffe nicht schlau genug. Ich bitte um bessere.

cfengine

Gruss vom Frank.

Hallo,

eine zweite Möglichkeit ist es, ein Verzeichnis vom Hauptrechner einzubinden und die Skripts darauf automatisch auszuführen.
Also: Hauptrechner stellt Skript ins Verzeichnis (z.B. ‚apt-get install xyz‘), die Clients haben einen Cron-Job, der jede Stunde (oder so) nach einem Skript zum Ausführen schaut und das ggf. ausführt.
Der Vorteil ist, daß es (wenn die Programmstruktur dafür steht) sehr einfach funktioniert. Weiter mußt Du nicht wissen, wie die ganzen Rechner heißen und die Rechner müssen auch nicht simultan im Netz stehen (in meinem Fall wurde das Skript immer beim Hochfahren ausgeführt).
Der Nachteil ist, daß das Skript mit root-Rechten ausgeführt wird, d.h. wenn jemand in das Verzeichnis schreiben kann bekommt er root-Zugriff auf alle Clients. Außerdem wird das Skript nicht sofort ausgeführt (vielleicht kann man dafür aber ein Signal an alle Rechner schicken).

Damit das ganze ordentlich läuft sollte in einer log-Datei stehen, welcher Client das Skript ausgeführt hat (mit Fehlercode), die kann u.a. dazu genutzt werden, daß ein Client das Skript nicht zweimal ausführt.

Gruß
Diether

Hallo,

Ein Beispiel: ich habe hier 170 Linux-Server, auf die ich
beispielsweise Public Keys kopieren muss. Oder ich will ein
Startscript in /etc/init.d, dass auf allen Maschinen gleich
ist, aktualisieren.

http://www.netfort.gr.jp/~dancer/software/dsh.html

HTH,

Sebastian

Wir haben das Problem auch oefter und wir haben uns mit der
Zeit ein System dafuer erdacht. Es ist einfach, flexibel und
wird beinahe taeglich erweitert. Nein, es ist nicht fuer
jeden benutzbar. Daher empfehle ich Dir was anderes.

Schade, schade.

cfengine

Das sieht ja fast so aus wie das das, was ich mir selber ausdenken wollte :wink: Danke für den Hinweis.

Stefan

Wir haben das Problem auch oefter und wir haben uns mit der
Zeit ein System dafuer erdacht. Es ist einfach, flexibel und
wird beinahe taeglich erweitert. Nein, es ist nicht fuer
jeden benutzbar. Daher empfehle ich Dir was anderes.

Schade, schade.

Bevor Du zu viele Erwartungen hast: es handelt sich dabei lediglich um ein paar 100 Zeilen Shellscript, das ssh auf sehr viele Rechner macht. Inzwischen haengt darum aber noch eine ganze Menge anderes $ZEUG, das nicht so einfach in ein Paket zu schnueren waere. Ein Grossteil davon befindet sich in den Koepfen schlauer Leute. $ZEUG muessen wir sowieso jedesmal den individuellen Gegebenheiten anpassen.

Gruss vom Frank.