Jenkins / Hudson - Skript auf allen Slaves ausführen

9

Ich muss ein Skript auf allen verfügbaren Slave-Maschinen ausführen. Dies ist in erster Linie so, dass sie relevante Windows-Hotfixes und neue 3rd-Party-Tools vor dem Erstellen erhalten.

Das Skript, das ich habe, kann mehrere Male ohne unerwünschte Nebenwirkungen ausgeführt werden & amp; ist ziemlich leicht, also bin ich froh, dass dies, wenn nötig, rohe Gewalt ist.

Kann jemand Vorschläge machen, wie sichergestellt werden kann, dass ein Slave "auf dem neuesten Stand" ist, bevor er einen Job bearbeitet?

Ich bin glücklich mit Lösungen, die von einem Job auf dem Master gesteuert werden, oder solche, die die Aufgabe (automatisch) vor der normalen Slave-Job-Verarbeitung injizieren können.

    
Ash 19.08.2011, 14:51
quelle

2 Antworten

3

Mein Shop macht dies als Teil des Slave-Startprozesses. Wir haben die Slaves konfiguriert, um über die Ausführung eines Befehls auf dem Master zu starten; Dieser Befehl führt ein Shell-Skript aus, das rsync die neuesten Werkzeugdateien an den Slave sendet und dann den Slave-Prozess startet. Wenn es ein Werkzeugupdate gibt, müssen wir nur die Slaves oder den Master neu starten.

Allerdings - wir verwenden Linux, obwohl es so aussieht, als ob Sie auf Windows sind. Daher bin ich mir nicht sicher, was die äquivalente Lösung für Sie wäre.

    
gareth_bowles 19.08.2011 15:29
quelle
2

Zu Ihrem Titel: Verwenden Sie entweder Parameter-Plugin oder verwenden Sie eine Matrix Konfiguration und listet Ihre Knoten darin auf.

Auf Ihre Frage nach der Gewährleistung, dass ein Slave zuverlässig ist, markieren wir ihn mit einem "Testbox" -Label und probieren eine Vielzahl von Jobs aus. Sie könnten auch einen Job haben, der für alle von ihnen bereitgestellt wird und die Aufgabe haben, die Maschine offline zu nehmen, schlägt fehl, stelle ich mir vor.

Die Verwendung von Windows für Slaves ist auch für uns sehr unangenehm: (

    
bnovc 25.01.2012 22:20
quelle