Estou tentando escalar puppetserver , para ter redundância, usando DNS round robin. O secundário puppetserver
(versão 7.4.0
) está configurado para usar a autoridade de CA do primário puppetserver
:
/etc/puppetlabs/puppet/puppet.conf
:
[main]
ca_name = Puppet CA: puppet-ca-master.company.com
ca_server = puppet-ca-master.company.com
[agent]
server = puppet-ca-master.company.com
runinterval=1800
No servidor secundário, desativei o serviço CA, pois poderia haver apenas uma única autoridade de certificação em /etc/puppetlabs/puppetserver/services.d/ca.cfg
:
# To enable the CA service, leave the following line uncommented
# puppetlabs.services.ca.certificate-authority-service/certificate-authority-service
# To disable the CA service, comment out the above line and uncomment the line below
puppetlabs.services.ca.certificate-authority-disabled-service/certificate-authority-disabled-service
puppetlabs.trapperkeeper.services.watcher.filesystem-watch-service/filesystem-watch-service
Eu removi certificados do secundário, para buscar o certificado assinado do certificado do mestre da CA:
rm -rf /etc/puppetlabs/puppet/ssl && mkdir -p /etc/puppetlabs/puppet/ssl/certs
chmod 0700 /etc/puppetlabs/puppet/ssl
chown -R puppet /etc/puppetlabs/puppet/ssl
No entanto, o puppetserver
serviço se recusa a iniciar devido à falta de certificado:
2021-09-30T09:06:18.220+02:00 ERROR [async-dispatch-2] [p.t.internal] Error during service start!!!
java.lang.IllegalArgumentException: Unable to open 'ssl-cert' file: /etc/puppetlabs/puppet/ssl/certs/secondary-puppetserver.company.com.pem
Quando tento executar puppet agent -t
no puppetserver secundário, ele falha ao assinar o certificado:
Couldn't fetch certificate from CA server; you might still need to sign this agent's certificate (secondary-puppetserver.company.com)
Além disso, a chave privada é gerada, mas não a pública:
ll /etc/puppetlabs/puppet/ssl/public_keys/
total 0
Com round robin DNS CA master config
/etc/puppetlabs/puppetserver/conf.d/ca.conf
precisa incluir:Reinicie
puppetserver
e gere certificados para o servidor secundário no mestre CA:certificados de transferência:
e CA
No secundário, certifique-se de que o serviço CA esteja desabilitado no
/etc/puppetlabs/puppetserver/services.d/ca.cfg
.E certifique-se de que o servidor web esteja configurado para usar os certificados corretos
/etc/puppetlabspuppetserver/conf.d/webserver.conf
:No mestre da CA, os nomes alternativos do DNS podem ser verificados. Todos os servidores de marionetes precisam incluir o mesmo nome de domínio e outro nome exclusivo.
procure
alt names: ["DNS: ...
. Quando o certificado é gerado usandopuppet agent
, os nomes alternativos não são incluídos.