configuration de filebucket dans Puppet

11

Comment configurez-vous et travaillez-vous avec votre classeur Puppet?

J'aimerais:

  1. Stocker les données du compartiment de fichiers sur un seul serveur
  2. Pouvoir auditer / analyser / élaguer le compartiment de fichiers si nécessaire
  3. Assurez-vous que les données de filebucket sont transférées en toute sécurité entre le client-> maître
robbyt
la source

Réponses:

16

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.

freiheit
la source
Merci, en fait, cela est très utile. Je ne savais pas que configurer un serveur de fichiers centralisé chez le marionnettiste était aussi simple que cela! Il existe des demandes de fonctionnalités pour les meilleurs outils de gestion de filebucket @puppetlabs. On dirait que c'est juste un peu immature en ce moment. Mon filebucket central se remplit maintenant de fichiers, mais je ne semble pas avoir un moyen de déterminer de quel hôte les fichiers proviennent. Votre doublure est cependant utile.
robbyt
Je pense que si plusieurs hôtes ont des fichiers identiques dans le filebucket, ils ne seront stockés qu'une seule fois, donc la relation entre les fichiers dans le filebucket et les hôtes n'est pas simple.
freiheit
0

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.

st3v3o
la source
2
filebucket! = serveur de fichiers. J'ai fait la même erreur en lisant la question la première fois.
Sirex
oui, je parle de la marionnette filebucket. Le système de Puppet qui déplace les fichiers remplacés dans une zone de transfert au lieu de simplement les supprimer. linux.die.net/man/8/filebucket
robbyt
En fait, je ne le comprends pas non plus. Si vous avez toutes les versions des fichiers de configuration dans git repo, pourquoi jouer avec filebucket? Supprimer accidentellement autre chose? La suppression de quelque chose d'autre est assez explicite dans la marionnette. IMHO filebucket a été conçu pour les gens sans aucun contrôle de version.
Art Shayderov
Non, les filebuckets ne sont utiles que pour la récupération manuelle de fichiers supprimés / écrasés accidentellement (par exemple, vous recherchez dans le journal la somme md5 et récupérez le fichier avec cette somme dans le filebucket), mais lorsque les transactions sont entièrement prises en charge, les annuler des transactions.
Martijn Heemels