Estou aprendendo o meu caminho através do gerenciamento de configuração em geral e usando o puppet para implementá-lo em particular, e estou imaginando que aspectos de um sistema, se houver, não devem ser gerenciados com o puppet?
Como exemplo, geralmente tomamos por garantido que os nomes de host já estão configurados antes de emprestar o sistema ao gerenciamento de marionetes. A conectividade IP básica, pelo menos na rede usada para acessar o puppetmaster, deve estar funcionando. Usar o fantoche para criar automaticamente arquivos de zona DNS é tentador, mas os ponteiros reversos do DNS já devem estar no local antes de iniciar a coisa ou os certificados serão engraçados.
Então, devo deixar de fora a configuração IP do fantoche? Ou devo configurá-lo antes de iniciar o fantoche pela primeira vez, mas gerenciar os endereços IP com o fantoche? E os sistemas com vários IPs (por exemplo, para WAN, LAN e SAN)?
E o IPMI ? Você pode configurar a maior parte, se não todas, com o ipmitool , evitando que você obtenha acesso ao console (físico, serial-over-lan, KVM remoto, qualquer que seja) para que possa ser automatizado com o fantoche. Mas verificar novamente seu estado a cada execução de agente fantoche não me parece legal, e o acesso básico ao sistema é algo que eu gostaria de ter antes de fazer qualquer outra coisa.
Outra história completa é sobre a instalação de atualizações. Não vou neste ponto específico, já existem muitas perguntas sobre SF e muitas filosofias diferentes entre diferentes administradores de sistemas. Decidi não permitir que o marionete atualize as coisas (apenas. Por exemplo ensure => installed
) e faça as atualizações manualmente como já estamos acostumados, deixando a automação dessa tarefa para um dia posterior, quando estivermos mais confiantes com o marionete (por exemplo, adicionando MCollective ao A mistura).
Esses foram apenas alguns exemplos que tenho agora em mente. Existe algum aspecto do sistema que deve ser deixado de fora do alcance das marionetes? Ou, dito de outra forma, onde está a linha entre o que deve ser definido no momento do provisionamento e o "estaticamente" configurado no sistema e o que é tratado pelo gerenciamento centralizado de configurações?