Eh bien, dans une classe qui est incluse par tous mes nœuds, j'ai:
filebucket { puppet: server => "puppet.example.edu" }
La valeur par défaut dans le type de fichier est de sauvegarder dans un fichier local nommé "marionnette". En remplaçant le fichier "marionnette" par un fichier fichier serveur, vous obtenez par défaut un fichier fichier basé sur le serveur.
Alternativement, si vous souhaitez conserver l'option de remplacer un fichier spécifique pour utiliser un filebucket local, vous pouvez faire:
filebucket { main: server => "puppet.example.edu"; }
File { backup => main }
Voir http://docs.puppetlabs.com/references/latest/type.html#filebucket pour plus de détails sur les options.
Cela accomplit l'élément n ° 1 car il dit aux nœuds d'utiliser tous le même serveur unique pour le filebucket. L'article # 3 est gratuit, car tout passe toujours par une connexion SSL avec vérification du certificat SSL.
Filebucket est surtout utile en cas de récupération, qui est susceptible d'être le même jour. Dans ce cas, consultez le rapport et utilisez la commande " filebucket
" ou " puppet filebucket
" pour récupérer le contenu d'origine en fonction de la somme md5 dans le rapport.
Le point n ° 2 est l'endroit où les choses deviennent difficiles ...
Je l'élague avec un script comme celui-ci:
find /var/lib/puppet/clientbucket/ -type f -mtime +45 -atime +45 -delete
Cela supprime tout ce qui date de plus de 45 jours et n'a pas été consulté du tout pendant cette période. Les 45 jours sont basés sur notre politique de sauvegarde et de rétention de sauvegarde, car ils sont suffisamment longs pour qu'une sauvegarde avec une longue rétention se produise et nous donne un temps de récupération théorique de 18 mois.
Quel type d'analyse recherchez-vous? La configuration du compartiment sur le serveur est une hiérarchie organisée par md5sum, et à l'intérieur d'un nom de répertoire correspondant au md5sum, il y a des "chemins" pour vous dire quel fichier et "contenu" est le fichier réel. Vous devez consulter les rapports pour voir de quel système il provient.
Je ne fais aucun audit. Quel type d'audit recherchez-vous? Cela pourrait signifier beaucoup de choses.
Une suggestion serait d'ajouter des fichiers à un serveur de contrôle de révision (svn, git). Je stocke tous les fichiers qui correspondent à un module spécifique dans le répertoire modules sous / files. Lorsqu'un fichier est modifié, il est archivé dans SVN et poussé vers le maître via des hooks.
Par exemple, j'ai un module qui gère postfix et envoie les fichiers / etc / postfix / virtual aux clients. Ces fichiers sont stockés sous / etc / puppet / modules / postfix / files.
Cela vous donne l'avantage de réutiliser le code créé dans vos modules ainsi que d'organiser les fichiers par modules.
la source