Три машины в производственной среде имели некоторые проблемы с оборудованием и были выведены из эксплуатации. Команда инфраструктуры переустановила их и дала им те же имена хостов и IP-адреса. Цель состоит в том, чтобы запустить Puppet на этих системах, чтобы они могли быть снова введены в эксплуатацию.
попытка
1) Старые сертификаты Puppet были удалены из Puppetmaster с помощью следующих команд:
puppet cert revoke grb16.company.com
puppet cert clean grb16.company.com
2) Как только старый сертификат был удален, был создан новый запрос сертификата, введя следующую команду с одного из переустановленных узлов:
[root@grb16 ~]# puppet agent -t
Info: csr_attributes file loading from /etc/puppet/csr_attributes.yaml
Info: Creating a new SSL certificate request for grb16.company.com
Info: Certificate Request fingerprint (SHA256): 6F:2D:1D:71:67:18:99:86:2C:22:A1:14:80:55:34:35:FD:20:88:1F:36:ED:A7:7B:2A:12:09:4D:F8:EC:BF:6D
Exiting; no certificate found and waitforcert is disabled
[root@grb16 ~]#
3) Как только запрос на сертификат был виден на Puppetmaster, была введена следующая команда для подписания запроса на сертификат:
[root@foreman ~]# puppet cert sign grb16.company.com
Notice: Signed certificate request for grb16.company.com
Notice: Removing file Puppet::SSL::CertificateRequest grb16.company.com at '/var/lib/puppet/ssl/ca/requests/grb16.company.com.pem'
[root@foreman ~]#
проблема
После того, как запрос сертификата был подписан и запуск Puppet запущен, выдается следующая ошибка:
[root@grb16 ~]# puppet agent -t
Info: Caching certificate for grb16.company.com
Error: Could not request certificate: SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed: [CRL is not yet valid for /CN=Puppet CA: foreman.company.com]
Exiting; failed to retrieve certificate and waitforcert is disabled
[root@grb16 ~]#
Запуск Puppet во второй раз приводит к:
[root@grb16 ~]# puppet agent -t
Warning: Unable to fetch my node definition, but the agent run will continue:
Warning: SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed: [CRL is not yet valid for /CN=Puppet CA: foreman.company.com]
Info: Retrieving pluginfacts
Error: /File[/var/lib/puppet/facts.d]: Failed to generate additional resources using 'eval_generate': SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed: [CRL is not yet valid for /CN=Puppet CA: foreman.company.com]
Error: /File[/var/lib/puppet/facts.d]: Could not evaluate: Could not retrieve file metadata for puppet://foreman.company.com/pluginfacts: SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed: [CRL is not yet valid for /CN=Puppet CA: foreman.company.com]
Wrapped exception:
SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed: [CRL is not yet valid for /CN=Puppet CA: foreman.company.com]
Info: Retrieving plugin
Error: /File[/var/lib/puppet/lib]: Failed to generate additional resources using 'eval_generate': SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed: [CRL is not yet valid for /CN=Puppet CA: foreman.company.com]
Error: /File[/var/lib/puppet/lib]: Could not evaluate: Could not retrieve file metadata for puppet://foreman.company.com/plugins: SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed: [CRL is not yet valid for /CN=Puppet CA: foreman.company.com]
Wrapped exception:
SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed: [CRL is not yet valid for /CN=Puppet CA: foreman.company.com]
Error: Could not retrieve catalog from remote server: SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed: [CRL is not yet valid for /CN=Puppet CA: foreman.company.com]
Warning: Not using cache on failed catalog
Error: Could not retrieve catalog; skipping run
Error: Could not send report: SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed: [CRL is not yet valid for /CN=Puppet CA: foreman.company.com]
[root@grb16 ~]#
Анализ
Чтобы решить проблему, сообщение об ошибке было исследовано, и похоже, что проблема связана с SSL или Puppet. Возможно, один из этих пакетов установлен неправильно или на переустановленном узле установлена неправильная версия.
Марионетка
[root@grb16 ~]# yum list installed |grep puppet
facter.x86_64 1:2.3.0-1.el6 @puppetlabs_6_products
hiera.noarch 1.3.4-1.el6 @puppetlabs_6_products
puppet.noarch 3.7.3-1.el6 @puppetlabs_6_products
puppetlabs-release.noarch
6-11 @puppetlabs_6_products
ruby-augeas.x86_64 0.4.1-3.el6 @puppetlabs_6_deps
ruby-shadow.x86_64 1:2.2.0-2.el6 @puppetlabs_6_deps
rubygem-json.x86_64 1.5.5-3.el6 @puppetlabs_6_deps
SSL
[root@grb16 ~]# yum list installed |grep ssl
nss_compat_ossl.x86_64 0.9.6-1.el6 @anaconda-CentOS-201410241409.x86_64/6.6
openssl.x86_64 1.0.1e-30.el6_6.4
openssl-devel.x86_64 1.0.1e-30.el6_6.4
[root@grb16 ~]#
Не было обнаружено расхождений между пакетами SSL и Puppet, которые установлены на различных серверах. Системы, которые не были списаны или переустановлены, все еще могут запускать Puppet. Проблема ограничена переустановленным сервером. Обратите внимание, что Puppet не запускался на двух других переустановленных серверах. Что вызывает эту проблему и как ее решить?
источник
puppet agent -t
который я запускаю на клиенте, он создает сертификат и отправляет его мастеру puppetmaster для утверждения, поэтому, если это правильный способ выдачи новых сертификатов, я это сделал.Ответы:
Краткий ответ
Проблема
CRL is not yet valid for
указывает на то, что время между Puppet-агентом и Puppetmaster не синхронизировано . Синхронизировать время (NTP). Удалите сертификат из Puppet-agent и Puppetmaster, а также запустите Puppet для агента.Комплексный ответ
CRL is not yet valid for
находится в следующем фрагменте.Следующий код теста фрагмент кода описывает то , что вызывает вопрос:
ssl_context
предмет
Код включает фрагменты из класса OpenSSL :: X509 :: CRL .
Эмитент = (р1)
last_update = (р1)
Время last_updated будет текущим временем плюс дополнительный день и будет передано функции субъекта, которая вызывает функцию вызова, которая находится в классе default_validator .
Если preverify_ok имеет значение false, применяется условие else. В
if crl.last_update && crl.last_update < Time.now + FIVE_MINUTES_AS_SECONDS
результате ложь, потому что время было заглушено с дополнительным днем, будет применяться заявление else. Оценка@verify_errors << "#{error_string} for #{crl.issuer}"
результатов вCRL is not yet valid for /CN=Puppet CA: puppetmaster.example.com
.Для решения проблемы:
sudo puppet cert clean <fqdn-puppet-agent>
В заключение, время на Puppet-агентов и Puppetmaster должно быть синхронизировано все время. Превышение максимально допустимого отклонения в 5 минут приведет к возникновению проблемы.
источник
systemctl restart ntpd
Столкнулся с той же проблемой.
Наша установка кукол управляется версией с помощью GitHub, поэтому каждый раз, когда мы предоставляем нового puppetmaster, мы сталкиваемся с некоторыми проблемами. Обычно
puppet ca --clean --all
работает, но мы нашли следующие более надежные:источник