Ich benutze func , um parallele Befehle auf unseren Servern auszuführen.
Neulich hatten wir ein Problem, als ein Neustart von puppet
via func
alle unsere Server gleichzeitig traf puppetmaster
.
Meine Frage: Wie kann ich denselben exakten Befehl auf einer Reihe von Servern ausführen, während ich eine Verzögerung hinzufüge, bevor er auf den einzelnen Servern ausgeführt wird?
Z.B: random_delay && service puppet restart
Ich interessiere mich für den random_delay
Teil des Befehls.
linux
command-line-interface
puppet
Belmin Fernandez
quelle
quelle
sleep $((RANDOM % MAXWAIT))
ist der richtige Weg. Ich werde die Antwort als solche bearbeiten.fqdn_rand
.dash
echo sleep $((RANDOM % 900))
Rückkehrsleep 0
. Dies bedeutet, dass die Verwendung in#!/bin/sh
Skripten oder an Orten wie crontab nicht sicher ist . (Die Probleme scheinendash
das nicht zu verstehen$RANDOM
)Ich mag die innovative, aber nicht ideale Lösung von S19N. Ich sage nur, es ist weniger als ideal, da es immer noch weitgehend nicht deterministisch ist, wann tatsächlich etwas passieren wird. Ich würde viel lieber garantieren können, wann etwas passieren wird und was dann passiert.
Puppet Orchestration ist eigentlich ein hartes Problem.
Eine der "Best-Practice" -Lösungen ist die Verwendung von MCollective, mit dem Sie nicht nur konfigurieren können, wann Puppet auf Ihrem Maschinencluster ausgeführt wird, sondern auch für andere ähnliche Orchestrierungsprobleme.
quelle