Uma vez que as VMs são para fins de desenvolvimento, você pode querer olhar para o Vagrant . O Vagrant tem apoio para Puppet out-of-the-box.
Estou na situação em que estou constantemente criando novos vms para desenvolvimento. Eu tenho uma imagem de base que eu posso clonar, mas rapidamente fica desatualizada e você não tem nenhum método de adicionar uma mudança em muitas vms.
Eu quero configurar um script de marionetes que seja executado na primeira inicialização de uma máquina virtual e há muitos guias para criar um site.pp que é executado diretamente pelo fantoche, mas que envolve um único arquivo que você precisa definir em um nó. O que eu gostaria de fazer é ter uma configuração de desenvolvimento em um puppetmaster para que todos os meus vms possam entrar no mesmo ponto e se manter atualizados e permitir que eu crie um conjunto abrangente de pacotes usando o servidor de arquivos etc.
Os problemas que vejo com isso é que não posso / não quero depender de nomes de host para identificar vms, não me importo em manter um histórico de pki, pois nomes de vm podem ser reutilizados.
O fantoche pode ser usado com o puppetmaster e essencialmente ignorar todos os pki? Posso criar um ambiente de tal forma que eu possa registrar uma VM através de um fato ou de algum outro meio? Eu gostaria de fazer um agente fantoche tipo = test1 ou similar.
Geralmente, como posso usar o fantoche por meio de uma fonte centralizada na qual não me importo particularmente com a segurança dos nós e espero que os nós apareçam e saiam com frequência?
Uma vez que as VMs são para fins de desenvolvimento, você pode querer olhar para o Vagrant . O Vagrant tem apoio para Puppet out-of-the-box.
Configure suas VMs para serem provisionadas via DHCP e adicionar à sua configuração (você pode fornecer nomes aleatórios ou sequenciais às suas VMs, se quiser, mas manter a parte do domínio facilitando a implantação):
option domain-name "my.domain.com";
Defina seu puppetmaster
para fornecer os módulos que você deseja:
node /.*my.domain.com/ inherits default {
}
Ative o autosign para esse domínio:
$ cat autosign.conf
# Domains you want SSL certificates autosigned for
#*.my.domain.com
E em relação a "adicionar uma mudança em muitas vms", bem, é para isso que o puppet
serve. Se você quiser / precisar de outro tipo de operação sob demanda, dê uma olhada em Colecionador de Marionetes .
O fantoche pode funcionar de forma cliente / servidor, mas não é obrigatório. Você pode chamar o fantoche localmente para a máquina atual, é muito mais simples (mas menos escalável, é claro)
No meu caso, ao ativar uma nova VM, apenas copio a configuração completa do fantoche com sftp (ssh) e chamo fantoche localmente. Instruções aqui (fr) link
cd ~/puppet
sudo puppet apply --debug --detailed-exitcodes --verbose manifests/site.pp --modulepath=modules --ignorecache --no-usecacheonfailure
Se eu precisar de atualizações, minha configuração de marionetes está em um repositório do git ( link ) e posso obter as últimas um com git pull e aplique novamente.
Até você para julgar se esse método é melhor no seu caso.
Tags puppet puppetmaster