Ok, de titel is een beetje cryptisch, maar we gebruiken puppet voor het genereren en configureren van vm's op diverse xensever clusters.
Dat gaat goed en een tijd geleden zijn we het ook gaan inzetten voor het genereren van clusters.
En daar wringt het een beetje. Zo hebben we een x aantal webservers die afhankelijk zijn van een x aantal memcache/haproxy servers, db cluster ( waarbij weer de eerste nét iets anders moet starten dan de rest), etc, etc...
Het feit dat de interne ip's van al die vm's dan weer dynamisch toegekend wordt (waarna het static wordt) maakt het ook niet gemakkelijker.
Puppet regelt dat wel allemaal, maar met die standaard 2 runs per uur kan het 1,5 uur duren voor een cluster van ca. 14 vm's bruikbaar is. Dat an sich valt natuurlijk redelijk mee, maar op het moment dat je dan 1 webserver bij schakelt duurt het ook zo lang voordat ie in het zooitje meewerkt. (1 run voor de basic install, 2de run om pas zijn 'fact' aan de puppetserver aan te leveren dat ie een webserver is en de derde run op de varnish bakken om het ip van de nieuwe webserver toe te voegen...)
Wat doen de puppetmasters onder ons om dat wat soepeler (en vooral sneller) te laten verlopen? Ik kan de interval natuurlijk op 1 minuut zetten aangezien een puppet agent run toch wel checked of ie al draait, maar dat is ook een botte oplossing. Botte oplossingen heb ik al genoeg