são arquivos que possuem a representação dos estados desejados O Puppet possui uma DSL que permite que que o profissional de automação possa expressar as necessidades de automatização do ponto de vista do negócio. A partir dos manifests, o servidor master gera um catálogo de configurações. O agente recebe o catálogo e aplica as mudanças em seu node. Os manifests são arquivos texto com extensão .pp.
são conjuntos de configurações chamados resource types que juntos definem uma configuração Quando formos escrever código Puppet, este código deve sempre estar contido em uma classe, isto é importante pois classes podem ser reutilizadas pelos nodes gerenciados.
são conjuntos de configurações definidas e autocontidas em um diretório Um módulo pode conter manifests, arquivos estáticos, plugins, templates, testes e dados. Tudo está dentro de um mesmo diretório o que facilita o compartilhamento, desenvolvimento e utilização.
tarefa você deseja que seu módulo realize? Como você quer resolver isso com seu módulo? Quais sistemas operacionais ou versões de sistemas operacionais você deseja suportar?
/etc/puppetlabs/code/environment/production/modules/MODULE O diretório manifests é a referência para o puppet buscar as classes do módulo, o arquivo init.pp contém a classe principal do módulo init.pp
O diretório files contém arquivos estáticos, imutáveis. E s t e s a r q u i v o s e s t ã o disponíveis no servidor de arquivos do puppetserver para serem utilizados pelos agentes. Os agentes fazem download destes arquivos para aplicar em seus nodes de acordo com definições do módulo. Files
/etc/puppetlabs/code/environment/production/modules/MODULE O diretório templates contém arquivos dinâmicos que podem estar no formato EPP ou ERB, estes arquivos podem conter variáveis, fatos e tratamentos condicionais e quando aplicados a um node terão configurações específicas.
/etc/puppetlabs/code/environment/production/modules/MODULE O diretório lib pode conter custom lens do augeas, custom facts, custom functions, custom providers e custom types. Tudo que
/etc/puppetlabs/code/environment/production/modules/MODULE O diretório spec contém diversos tipos de testes que podem ser criados para seu módulo, estes testes podem ser unitários, de aceitação, de sintaxe e podem ser executados contra classes, definições, funções e hosts.
/etc/puppetlabs/code/environment/production/modules/MODULE O d i r e t ó r i o e x a m p l e s , antigamente chamado de “tests” contém exemplos de declaração das classes do diretório manifests. init.pp
/etc/puppetlabs/code/environment/production/modules/MODULE Este diretório é opcional e pode conter external facts, estes fatos são alternativas aos fatos em ruby, estes podem ser escritos em qualquer linguagem de programação que seja suportada pelo node. Funciona a partir do facter 2.0.
/etc/puppetlabs/code/environment/production/modules/MODULE LICENSE Quando criamos o módulo as informações referentes a seu funcionamento, uso, autores, requisitos e exemplos vão no README e a licença do módulo no arquivo LICENSE. Isso é uma boa prática que ajuda quem for u s a r s e u m ó d u l o c a s o compartilhe.
Gem file /etc/puppetlabs/code/environment/production/modules/MODULE O arquivo Rakefile conterá informações relativas aos testes de código e o arquivo G e m fi l e c o n t e r á a s dependências gem que são usadas pelos testes.
/etc/puppetlabs/code/environment/production/modules/MODULE O arquivo .fixtures é utilizado pelas ferramentas de teste de código, nele serão definidas as dependências para os testes
/etc/puppetlabs/code/environment/production/modules/MODULE Este arquivo contém todas as informações do módulo tais como nome, versão, autor, licença, dependências, os suportados, versão do puppet suportada, url do projeto e muito mais. Esse arquivo é fundamental pro puppet forge.
código Todo o código deve ser verminado através de uma ferramenta VCS para que tenhamos controle, rastreabilidade e segurança no processo de desenvolvimento
deve ser armazenado dentro de um diretório em que o puppet master consiga encontrá-lo ou deve-se passar o parâmetro modulepath para indicar o diretório
facts devem ser escritos em Ruby puro, mas podemos criar fatos externos em qualquer outra linguagem, estes fatos devem ser armazenados no diretório facts.d
Puppet-BR 44 IRC Site & Planeta Telegram Lista Acesse o canal #puppet-br na rede freenode de IRC com seu cliente preferido Acesse o site puppet-br.org e o planeta.puppet-br.org Entre no grupo telegra.me/puppetbr no telegram. Participe das listas no google groups puppet- users-br e mcollective- users-br.