Comecei a usar o Puppet antes de implantar uma nova infraestrutura e simplesmente comprei um livro ( bem conceituado ) sobre o tópico. Eu não acho que a maioria das pessoas realmente obtém treinamento profissional de Puppet. Eu trabalhei em exemplos até que eu pudesse moldar o processo para o meu ambiente. Isso foi em dezembro de 2011, então, em poucas semanas, consegui entender o básico e criar uma estrutura de produção. Eu não era novo no gerenciamento de configuração, tendo um background de CFEngine , mas muitas das preocupações de seus administradores de sistemas ressoam. Eu cometi erros e tive que refatorar várias vezes, mas consegui fazer as coisas funcionarem satisfatoriamente.
Algumas notas sobre seus pontos ...
-
A função de administração de sistemas tradicional está mudando. Adaptar ou ficar para trás. Eu fui um engenheiro de sistemas bem-sucedido, mas estou tendo que me adaptar também (aprender Python, por exemplo). O foco em servidores individuais é reduzido à medida que a abstração de hardware por meio da virtualização e dos serviços de nuvem pública e privada ganham força. Isso significa a automação de tarefas de sistemas e o uso de gerenciamento de configurações para obter o controle de um número maior de servidores. Adicione conceitos DevOps à mistura, e você verá que o expectativas do cliente / usuário final e os requisitos estão mudando.
-
Os módulos de fantoches disponíveis online diferem em estilo e estrutura e, sim, vi muita sobreposição, redundância e esforços duplicados. Um desenvolvedor com quem trabalhei disse: "você poderia ter desenvolvido suas próprias ferramentas no tempo que passou procurando por algo que funciona!" Isso me deu uma pausa quando percebi que o Puppet parece apelar mais para os desenvolvedores do que para os administradores que procuram uma abordagem best-practices ou certo .
-
Documente bastante para ter uma ideia de como as coisas estão conectadas. Dadas as definições instáveis e a falta de uma maneira padrão de fazer as coisas, sua estrutura de gerenciamento de configurações é realmente única em seu ambiente. Essa transparência terá que ser desenvolvida internamente.
-
Eu diria que é razoavelmente fácil duplicar um módulo para acomodar um novo daemon ou adicionar um serviço a um manifesto existente, dependendo de como você organizou seus servidores e funções.
-
Passei muito tempo testando em um único alvo antes de enviar alterações para grupos maiores de servidores. Executar puppetd manualmente em um servidor representativo permitiu-me depurar alterações e avaliar seu impacto. Talvez seja um pouco conservador, mas foi necessário.
-
Não sei quanto dependeria dos módulos da comunidade. Eu tive que começar a usar Augeas para algum trabalho , e lamentou o fato de que foi uma funcionalidade que eu dei como certo na CFEngine.
No geral, sinto que não há um padrão bem definido quando se trata de Puppet. Tive problemas para descobrir como organizar a estrutura de diretórios no meu Puppetmaster, entendendo como gerenciar a assinatura de certificados, obtendo DNS inverso adequado no lugar em todos os lugares, obtendo o Puppet adequadamente para o ambiente e entendendo quando aproveitar os módulos da comunidade versus construir o meu próprio. É uma mudança de pensamento e vejo como isso faria um pânico sysadmin. No entanto, isso também foi solução construída do zero, então eu tive o luxo de avaliar ferramentas. A decisão de seguir esse caminho foi baseada em mindshare e no momentum por trás de Puppet. Valeu a pena o esforço para aprender algo novo.
Lembre-se de que este site também é um bom recurso.