Ba máy trong môi trường sản xuất có một số vấn đề về phần cứng và đã ngừng hoạt động. Nhóm cơ sở hạ tầng đã cài đặt lại chúng và cung cấp cho chúng cùng tên máy chủ và địa chỉ IP. Mục đích là để chạy Puppet trên các hệ thống này để chúng có thể được đưa vào hoạt động trở lại.
Cố gắng
1) Chứng chỉ rối cũ đã bị xóa khỏi Puppetmaster bằng cách ban hành các lệnh sau:
puppet cert revoke grb16.company.com
puppet cert clean grb16.company.com
2) Khi chứng chỉ cũ bị xóa, yêu cầu chứng chỉ mới được tạo bằng cách phát lệnh sau từ một trong các nút được cài đặt lại:
[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) Khi yêu cầu chứng chỉ được hiển thị trên Puppetmaster, lệnh sau được ban hành để ký yêu cầu chứng chỉ:
[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 ~]#
Vấn đề
Khi yêu cầu chứng chỉ đã được ký và chạy rối đã bắt đầu, lỗi sau đây được đưa ra:
[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 ~]#
Chạy rối lần thứ hai cho kết quả:
[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 ~]#
Phân tích
Để giải quyết vấn đề, thông báo lỗi đã được điều tra và có vẻ như vấn đề là liên quan đến SSL hoặc rối. Có lẽ một trong những gói này đã được cài đặt không chính xác hoặc một phiên bản sai đã được cài đặt trên nút được cài đặt lại.
Con rối
[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 ~]#
Không có sự khác biệt nào được tìm thấy giữa các gói SSL và Puppet được cài đặt trên các máy chủ khác nhau. Các hệ thống chưa được ngừng hoạt động hoặc cài đặt lại vẫn có thể chạy Puppet. Vấn đề được giới hạn ở máy chủ được cài đặt lại. Lưu ý rằng Puppet chưa được chạy trên hai máy chủ được cài đặt lại. Điều gì gây ra vấn đề này và làm thế nào để giải quyết nó?
puppet agent -t
tôi chạy trên máy khách, nó sẽ tạo chứng chỉ và gửi cho người điều khiển rối để phê duyệt, vì vậy nếu đó là cách đúng để phát hành certs mới thì tôi đã làm.