उत्पादन वातावरण में तीन मशीनों में कुछ हार्डवेयर समस्याएँ थीं और इनका विघटन किया गया था। बुनियादी ढांचे की टीम ने उन्हें फिर से स्थापित किया है और उन्हें समान होस्टनाम और आईपी पते दिए हैं। इसका उद्देश्य इन प्रणालियों पर कठपुतली को चलाना है ताकि इन्हें फिर से चालू किया जा सके।
प्रयास
1) पुराने कठपुतली प्रमाणपत्र को निम्न आदेश जारी करके कठपुतली से हटा दिया गया था:
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) एक बार पुप्पेटमास्टर पर प्रमाणपत्र अनुरोध दिखाई देने के बाद, प्रमाणपत्र अनुरोध पर हस्ताक्षर करने के लिए निम्नलिखित आदेश जारी किया गया था:
[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 ~]#
संकट
एक बार प्रमाणपत्र अनुरोध पर हस्ताक्षर कर दिए जाने के बाद और कठपुतली चलाने की प्रक्रिया शुरू कर दी गई है, निम्नलिखित त्रुटि है:
[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 ~]#
दूसरी बार चलने वाले कठपुतली परिणाम:
[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 या कठपुतली से संबंधित है। शायद इन पैकेजों में से एक को गलत तरीके से स्थापित किया गया है या फिर एक गलत संस्करण को पुनर्स्थापित नोड पर स्थापित किया गया है।
कठपुतली
[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
एसएसएल
[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 agent -t
जो मैं क्लाइंट पर चलाता हूं, वह सर्टिफिकेट बनाता है और उसे अनुमोदन के लिए कठपुतली को भेजता है, इसलिए यदि यह नए सिरे से जारी करने का सही तरीका है तो मैंने किया।