Acidentalmente revogou todos os certs de puppetmaster

1

Eu corri puppet cert clean --all , pensando que só iria limpar os certificados que ainda não tinham sido assinados. Há cerca de 300 nós que dependem do mestre de marionetes. Até onde posso dizer, o agente fantoche ainda funciona nelas, mas acho que é porque há uma cópia em cache do certificado em algum lugar.

Qualquer maneira de corrigir a situação sem ter que fazer login manualmente em 300 servidores diferentes?

Obrigado

EDIT: Devo mencionar que o / var / lib / puppet não estava sendo copiado por algum motivo.

    
por librett0 24.07.2014 / 22:32

2 respostas

9

Se eles ainda estiverem fazendo check-in, provavelmente é porque o mestre de marionetes não está verificando a CRL; eles podem não existir mais no inventário de certificados no mestre, mas ainda são assinados pela CA. A revogação prevalece, mas a revogação não parece estar impedindo que o agente seja executado (verifique se eles não estão apenas usando catálogos em cache com puppet agent --test ).

Por causa disso, você deve ser capaz de fazer algum gerenciamento de configurações criativas para fazê-los se inscreverem em novos certificados - por exemplo, algo assim.

exec { 'ssl hackery':
  command  => '/bin/mv /var/lib/puppet/ssl /var/lib/puppet/ssl_old',
  creates  => '/var/lib/puppet/ssl_old',
}

(Teste isso completamente em um único host antes de atingir todos os nós com ele, ou você realmente tocará em cada um deles!)

    
por 24.07.2014 / 23:00
6

Faça login em 300 servidores diferentes em um loop?

for host in 'cat allmypuppetboxes'; do
  ssh -o ConnectTimeout=5 root@$host '/etc/init.d/puppet stop ; rm -rf /var/lib/puppet/ssl /var/lib/puppet/ssl.expired ; puppet agent --server puppet.example.com --test --waitforcert 5'
done
    
por 24.07.2014 / 22:42

Tags