我搜索了整个互联网并尝试了不同的修复方法,但都没有奏效。
问题:当设置新的代理以连接到 Puppet Master 时,我运行:
sudo /opt/puppetlabs/bin/puppet agent --test
该命令的输出是(删除或修改了某些文本):
Info: csr_attributes file loading from /etc/puppetlabs/puppet/csr_attributes.yaml
Info: Creating a new SSL certificate request for puppetmaster.example.com
Info: Certificate Request fingerprint (SHA256): <<intentionally removed>>
Error: Could not request certificate: Error 500 on SERVER: Internal Server Error: java.io.FileNotFoundException: /etc/puppetlabs/puppet/ssl/ca/requests/puppetagent.example.com.pem (Permission denied)
Exiting; failed to retrieve certificate and waitforcert is disabled
我尝试过/验证过一些没有起作用的方法:
--我可以通过端口 8140 上的 DNS 名称成功远程登录到主服务器
--只是为了确保它不是代理服务器,我尝试了另一台服务器,但遇到了同样的问题。
-- 当我使用 waitforcert 时,总是一遍又一遍地出现同样的错误。
- 当我做:
sudo /opt/puppetlabs/bin/puppet cert list
我没有得到列表中的任何东西。
我读了关于主服务器上权限的文章。这是 SSL 目录的 ls -lh
root@puppetmaster:/home/ubuntu# ls -lh /etc/puppetlabs/puppet/ssl/
total 28K
drwxr-xr-x 5 root 999 4.0K Jan 2 10:14 ca
drwxr-xr-x 2 root 999 4.0K Jan 2 10:10 certificate_requests
drwxr-xr-x 2 root 999 4.0K Jan 4 08:58 certs
-rw-r--r-- 1 root 999 1.1K Jan 4 08:58 crl.pem
drwxr-x--- 2 root 999 4.0K Jan 2 10:10 private
drwxr-x--- 2 root 999 4.0K Jan 2 10:10 private_keys
drwxr-xr-x 2 root 999 4.0K Jan 2 10:10 public_keys
问题很明显……代理无法将证书发送给主服务器,因此我无法在主服务器上签署证书。问题是我完全不知道下一步该怎么做。任何建议都将不胜感激。
谢谢 !
答案1
您的目录的所有权(用户和组)/etc/puppetlabs/puppet/ssl
错误。目录及其子目录需要由用户和组ssl
拥有:puppet
chown -R puppet:puppet /etc/puppetlabs/puppet/ssl
修复所有权后,您可能需要重新启动 puppetserver:
service puppetserver restart
现在您的 puppetserver 应该能够向 Puppet 代理颁发证书。