Si vous utilisez le fileserver de puppet et que vous gérez beaucoup de petits fichiers avec, il y a surement des optimisations à faire !
En effet pour chaque fichier, le client va demander un hash au serveur et en établissant à chaque fois une nouvelle connexion tcp... le temps perdu 2,5 secondes pour 10 fichiers..
Pour voir tout ça, rdv dans les logs du puppet master et regarder les lignes : GET /production/file_metadata pour vous donner une idée
La solution est de se passer du fileserver pour ces petits fichiers et de les inclure directement dans le catalogue, en utilisant :
content => file(path)
au lieu de source => puppet:///
Ici on est passé de 14seconde à 5,5seconde
-
https://docs.puppetlabs.com/guides/file_serving.htmlUne solution pour cacher la demande de catalogue..
Dans cet article il ne parle pas de cacher les demande de metadata, mais c'est aussi une bonne idée.
Pour que ce soit viable, la validité du cache ne doit pas être trop longue et il faut pouvoir le vider à la main.
à tester
-
http://www.masterzen.fr/2010/03/21/more-puppet-offloading/Deux patterns pour séparer les data du code dans puppet : "the params class pattern" et Hiera
-
http://garylarizza.com/blog/2013/12/08/when-to-hiera/Et oui, une classe ne peut être déclarée qu'une fois, c'est un singleton (une installation d'apache par exemple)
Alors qu'un defined type peut être déclaré x fois, il faut voir ça comme des objets qui peuvent avoir plusieurs instances (comme les vhost)
-
http://www.craigdunn.org/2011/09/puppet-parameterized-classes-vs-definitions/ptin ça marche pas avec nagios_* :/
http://www.mnxsolutions.com/linux/automatically-purge-old-configuration-from-nagios-deployed-by-puppet.html
et ça ça passe seulement avec le path par defaut des nagios_ (/etc/nagios3/.cfg)
-
http://christian.hofstaedtler.name/blog/2008/11/puppet-managing-directories-recursively.htmlun design pattern role/profile
-
http://fr.slideshare.net/PuppetLabs/roles-talkror adapter to query puppetdb
-
https://github.com/dalen/dm-puppetdb-adapterDes modules qui ont l'air bien
-
https://forge.puppetlabs.com/garethrHowever, unlike include, resource-like declarations let you specify class parameters.
-
http://docs.puppetlabs.com/learning/modules1.html#more-about-declaring-classesUn frontend pour puppetdn (en python)
-
https://github.com/nedap/puppetboardUtiliser plusieurs puppet master : performance et haute dispo
-
http://docs.puppetlabs.com/guides/scaling_multiple_masters.htmlComment construire la gem puppetdb-terminus à partir des sources github :
git clone https://github.com/puppetlabs/puppetdb
git checkout 1.6.2
cd puppetdb
cp contrib/gem/puppetdb-terminus.gemspec puppet/
cd puppet
modifier le spec pour mettre version=1.6.2
gem build puppetdb-terminus.gemspec
Installer la gem : gem install puppetdb-terminus-1.6.2.gem
-
https://projects.puppetlabs.com/issues/16529