我有一个工作正常的puppetserver,但是在操作系统修补过程中它以某种方式被弄坏了,并且没有出现。我尝试了全新安装的``puppetserver . It is 6.3.0`。完成安装后,我从包含证书的旧安装中还原了ssl目录,但由于以下错误而失败

  /etc/puppetlabs/puppet/ssl/certs/example.com.pem' but master private key '/etc/puppetlabs/puppet/ssl/private_keys/example.com.pem' is missing


但是,两个文件都存在。任何解决此问题的建议还是我必须生成新密钥?

最佳答案

如果程序声称缺少文件,而您知道该文件存在,那么真正的问题几乎可以肯定是访问控制之一,即对该问题的特定文件或其路径中的目录的访问控制。有几种可能导致此问题的细节模式,并且在您所描述的场景中可能会出现这种情况是合理的。

做这个:


确定用户正在运行PuppetServer。典型的将是一个名为“ puppet”的人,但不要假设。
确保/etc/puppetlabs/puppet/ssl/certs/example.com.pem的所有权和模式允许PuppetServer用户读取它。
确保路径/etc/puppetlabs/puppet/ssl/certs中每个目录的所有权和模式允许PuppetServer用户读取和遍历(执行)该目录。
如果在服务器上启用了SELinux,请确保不会通过以下方式引起问题


运行restorecon。如果问题仍然存在,那么您也可以尝试
将SELinux置于允许模式:setenforce 0。如果这是解决问题的方法,那么您将需要禁用SELinux强制模式,或者(更好)编写并安装一个SELinux策略模块来启用PuppetServer的访问。

10-08 06:33