configuração de filebucket no Puppet

11

Como você configura e trabalha com seu arquivo de fantoches?

Eu gostaria de:

  1. Armazenar dados do bucket de arquivos em um único servidor
  2. Ser capaz de auditar / analisar / remover o depósito de arquivos quando necessário
  3. Verifique se os dados da cesta de arquivos são transferidos com segurança entre o cliente-> mestre
Robbyt
fonte

Respostas:

16

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.

freiheit
fonte
Obrigado, na verdade isso é bastante útil. Eu não sabia que configurar um servidor central de arquivos no puppetmaster era tão simples! Existem alguns pedidos de recursos abertos para melhores ferramentas de gerenciamento de filebucket @puppetlabs. Parece que é um pouco imaturo no momento. Meu grupo de arquivos central agora está cheio de arquivos, mas parece que não tenho como determinar qual host os arquivos foram originados. Seu 1-liner é útil no entanto.
robbyt
Acho que se vários hosts tiverem arquivos idênticos no arquivo de arquivos, ele será armazenado apenas uma vez, portanto, a relação entre arquivos no arquivo de arquivos e hosts não é simples.
freiheit
0

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.

st3v3o
fonte
2
filebucket! = servidor de arquivos. Cometi o mesmo erro ao ler a pergunta pela primeira vez.
Sirex
sim, eu estou falando sobre o filebucket fantoche. O sistema no Puppet que realoca os arquivos substituídos para uma área de preparação, em vez de apenas excluí-los. linux.die.net/man/8/filebucket
robbyt
Na verdade, eu também não entendo. Se você possui todas as versões dos arquivos de configuração no git repo, por que mexer com o filebucket? Excluindo acidentalmente algo mais? Excluir outra coisa é bastante explícito no fantoche. O arquivo de arquivos IMHO foi projetado para pessoas sem controle de versão.
Art Shayderov
Não, filebuckets são úteis apenas para recuperação manual de arquivos removidos / sobrescritos acidentalmente (por exemplo, você procura no log a soma md5 e recupera o arquivo com essa soma do file file), mas quando as transações são totalmente compatíveis, as filebuckets são usadas para desfazer transações.
Martijn Heemels