Bem, em uma classe incluída por todos os meus nós, eu tenho:
filebucket { puppet: server => "puppet.example.edu" }
O padrão no tipo de arquivo é fazer backup em um arquivo de arquivos local chamado "fantoche". Alterando o grupo de arquivos "fantoche" para um grupo de arquivos do servidor, você obtém o grupo de arquivos baseado em servidor por padrão.
Como alternativa, se você deseja preservar a opção de substituir um arquivo específico para usar um arquivo de arquivos local, você pode:
filebucket { main: server => "puppet.example.edu"; }
File { backup => main }
Consulte http://docs.puppetlabs.com/references/latest/type.html#filebucket para obter mais detalhes sobre as opções.
Isso realiza o item 1, porque indica aos nós que todos usem o mesmo servidor único para o grupo de arquivos. O item 3 é fornecido gratuitamente, porque ainda está em uma conexão baseada em SSL com a verificação de certificado SSL.
Filebucket é principalmente útil em caso de recuperação, que provavelmente será no mesmo dia. Nesse caso, observe o relatório e use o comando " filebucket
" ou " puppet filebucket
" para recuperar o conteúdo original com base no md5sum no relatório.
O item 2 é onde as coisas ficam complicadas ...
Eu podo com um script como este:
find /var/lib/puppet/clientbucket/ -type f -mtime +45 -atime +45 -delete
Isso remove qualquer coisa com mais de 45 dias e não foi acessada nesse período. Os 45 dias são baseados em nossa política de retenção de backup e backup, pois é longo o suficiente para que um backup com uma retenção longa ocorra e nos oferece um tempo teórico de recuperação de 18 meses.
Que tipo de análise você está procurando? A configuração do bucket no servidor é uma hierarquia organizada pelo md5sum e, dentro de um nome de diretório correspondente ao md5sum, existem "caminhos" para informar qual arquivo e "conteúdo" é o arquivo real. Você precisa olhar os relatórios para ver de que sistema ele veio.
Eu não faço nenhuma auditoria. Que tipo de auditoria você está procurando? Isso pode significar muitas coisas.
Uma sugestão seria adicionar aos arquivos um servidor de controle de revisão (svn, git). Eu armazeno todos os arquivos que se correlacionam com um módulo específico no diretório modules em / files. Quando um arquivo é modificado, é verificado no SVN e enviado ao mestre via ganchos.
Por exemplo, eu tenho um módulo que gerencia o postfix e envia os arquivos / etc / postfix / virtual aos clientes. Esses arquivos são armazenados em / etc / puppet / modules / postfix / files.
Isso oferece a vantagem de reutilizar o código criado em seus módulos, além de organizar arquivos por módulos.
fonte