Üretim ortamındaki üç makinede bazı donanım sorunları vardı ve kullanımdan kaldırıldı. Altyapı ekibi bunları yeniden kurdu ve aynı ana bilgisayar adlarını ve IP adreslerini verdi. Amaç Kuklaları bu sistemlerde çalıştırmak ve böylece yeniden devreye alınabilmektir.
Girişim
1) Eski Kukla sertifikaları, aşağıdaki komutlar verilerek Kukla Yöneticisinden kaldırılmıştır:
puppet cert revoke grb16.company.com
puppet cert clean grb16.company.com
2) Eski sertifika kaldırıldıktan sonra, yeniden yüklenen düğümlerden birinden aşağıdaki komutu vererek yeni bir sertifika isteği oluşturuldu:
[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) Sertifika isteği Puppetmaster'da göründüğünde, sertifika isteğini imzalamak için aşağıdaki komut verildi:
[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 ~]#
Sorun
Sertifika isteği imzalandıktan ve bir Kukla çalışması başlatıldıktan sonra aşağıdaki hata atılır:
[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 ~]#
Kuklayı ikinci kez çalıştırmak şöyle sonuçlanır:
[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 ~]#
analiz
Sorunu çözmek için hata mesajı araştırıldı ve sorunun SSL veya Kukla ile ilgili olduğu anlaşılıyor. Bu paketlerden biri yanlış yüklenmiş veya yeniden yüklenmiş düğüme yanlış bir sürüm yüklenmiş.
Kukla
[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 ~]#
Çeşitli sunuculara yüklenen SSL ve Kukla paketleri arasında herhangi bir tutarsızlık bulunamadı. Hizmetten çıkarılmayan veya yeniden kurulmayan sistemler hala Kukla çalıştırabilir. Sorun, yeniden yüklenen sunucuyla sınırlıdır. Yeniden yüklenen diğer iki sunucuda Kukla çalıştırılmadığını unutmayın. Bu soruna neden olan nedir ve nasıl çözülür?
puppet agent -t
müşteri üzerinde çalıştırdığım ilk önce sertifikayı oluşturur ve onay için kukla yöneticisine gönderir, bu yüzden yeni cerler çıkarmanın doğru yolu buysa.