Марионеточное устройство не может получить сертификат местного эмитента

Я установил puppet 4.3 и centos7, чтобы использовать Puppet Device для управления маршрутизаторами Cisco. Имя хоста сервера - "puppetmaster" (запустив hostnamectl puppetmaster ) На сервере centos запущены мастер марионеток и агент.

После установки и настройки device.conf при запуске sudo puppet device --debug я вижу следующие ошибки:

Error: /File[/opt/puppetlabs/puppet/cache/devices/r1/facts.d]: Failed to generate additional resources using 'eval_generate': SSL_connect returned=1 errno=0 state=error: certificate verify failed: [unable to get local issuer certificate for /CN=puppetmaster]
Error: /File[/opt/puppetlabs/puppet/cache/devices/r1/facts.d]: Could not evaluate: Could not retrieve file metadata for puppet:///pluginfacts: SSL_connect returned=1 errno=0 state=error: certificate verify failed: [unable to get local issuer certificate for /CN=puppetmaster]

Я могу запустить puppet agent --test на сервере успешно:

sudo puppet agent --test
Info: Using configured environment 'production'
Info: Retrieving pluginfacts
Info: Retrieving plugin
Info: Caching catalog for puppetmaster
Info: Applying configuration version '1449189804'

Вот мой /etc/puppetlabs/puppet/device.conf

[r1]
type cisco
url telnet://puppet:123456@r1/

Вот мой /etc/puppetlabs/puppet/puppet.conf

[master]
vardir = /opt/puppetlabs/server/data/puppetserver
logdir = /var/log/puppetlabs/puppetserver
rundir = /var/run/puppetlabs/puppetserver
pidfile = /var/run/puppetlabs/puppetserver/puppetserver.pid
codedir = /etc/puppetlabs/code
dns_alt_names = puppetmaster

[agent]
certname = puppetmaster
server = puppetmaster

Это должен быть какой-то проблема с сертификатом, например несоответствие имени, но я не знаю, что может ее вызвать. Агент работает на том же сервере, что и мастер, и я правильно установил все конфигурации (по крайней мере, я так думаю).

Вот сертификат, возвращенный puppet:

 sudo puppet cert --print --all | grep CN
        Issuer: CN=Puppet CA: puppetmaster
        Subject: CN=puppetmaster

Вот необработанные ca.pem и puppetmaster .pem certs:

openssl x509 -in /etc/puppetlabs/puppet/ssl/certs/ca.pem -noout -text | grep CN
        Issuer: CN=Puppet CA: puppetmaster
        Subject: CN=Puppet CA: puppetmaster
                DirName:/CN=Puppet CA: puppetmaster
openssl x509 -in /etc/puppetlabs/puppet/ssl/certs/puppetmaster.pem -noout -text | grep CN
        Issuer: CN=Puppet CA: puppetmaster
        Subject: CN=puppetmaster

Когда я запускаю openssl для проверки сертификата, я вижу ту же ошибку:

sudo openssl verify -CApath /etc/puppetlabs/puppet/ssl/certs/ca.pem /etc/puppetlabs/puppet/ssl/certs/puppetmaster.pem

/etc/puppetlabs/puppet/ssl/certs/puppetmaster.pem: CN = puppetmaster
error 20 at 0 depth lookup:unable to get local issuer certificate

Я подтвердил настройками конфигурации и выполнил процесс очистки сертификатов (несколько раз), но без кубиков.

2
задан 4 December 2015 в 20:51
1 ответ

ОК, разобрался.

Как я сказал, я очистил и регенерировал сертификаты Puppets, НО то, что я не сделал, было ясно:

/opt/puppetlabs/puppet/cache/devices/

Puppet кэшировал старый сертификат для устройства, поэтому он пытался использовать его вместо создания нового.

После удаления содержимого этой папки я смог запустить марионеточное устройство

2
ответ дан 3 December 2019 в 11:34

Теги

Похожие вопросы