刚刚安装的 Puppet 环境无法正常工作,CSR 与公钥不匹配

刚刚安装的 Puppet 环境无法正常工作,CSR 与公钥不匹配

我想玩玩 Puppet,所以我设置了一个小型测试环境,由 4 个虚拟机组成

  • pfSense:路由器
  • Windows Server 2012 R2:DNS、DHCP
  • Ubuntu 服务器 16.04:Puppetmaster
  • Ubuntu 服务器 16.04:Puppet 代理

DNS 设置正确,它正确回答所有正向和反向查找。

这是我在两个 ubuntu vm 上执行的一组命令(基本配置)

sudo dpkg-reconfigure keyboard-configuration
sudo apt-get install -y vim openssh-server ntp
sudo dpkg-reconfigure tzdata

vi /etc/hostname (set to puppet / puppetclient)
sudo reboot now

wget https://apt.puppetlabs.com/puppetlabs-release-pc1-xenial.deb
sudo dpkg -i puppetlabs-release-pc1-xenial.deb
sudo apt-get update

然后在 master 上:

sudo apt-get -y install puppetserver
sudo /opt/puppetlabs/bin/puppet resource service puppetserver ensure=running enable=true
sudo service puppetserver restart

puppetserver-service 运行良好(在为 VM 分配 6GB RAM 之后;))

在客户端上:

sudo apt-get install puppet-agent
sudo /opt/puppetlabs/bin/puppet resource service puppet ensure=running enable=true

然后,我在客户端执行以下操作:

puppet agent --server puppet.puppet.intra --waitforcert 60 --test

这是由

Error: Could not request certificate: The CSR retrieved from the master does not match the agent's public key.
CSR fingerprint: 82:F5:08:CC:98:8A:D1:8F:EC:3D:B0:F7:5B:EB:43:FC:FC:0D:95:30:E8:6F:7F:81:9E:1B:02:CB:A4:01:0E:50
CSR public key: Public-Key: (4096 bit)
Modulus:
    ...
Exponent: 65537 (0x10001)

Agent public key: Public-Key: (4096 bit)
Modulus:
    ...
Exponent: 65537 (0x10001)

To fix this, remove the CSR from both the master and the agent and then start a puppet run, which will automatically regenerate a CSR.
On the master:
  puppet cert clean puppetclient.puppet.intra
On the agent:
  1a. On most platforms: find /home/administrator/.puppetlabs/etc/puppet/ssl -name puppetclient.puppet.intra.pem -delete
  1b. On Windows: del "\home\administrator\.puppetlabs\etc\puppet\ssl\certs\puppetclient.puppet.intra.pem" /f
  2. puppet agent -t

当然,我执行了建议的故障排除步骤,但没有结果。我进一步检查:

  • 我可以在服务器上打开端口 8140
  • 时间设置相匹配
  • 两台机器都设置了正确的主机名,并被 DNS 正确解析

我究竟做错了什么?

问候,克里斯蒂安

编辑

我刚刚意识到一些事情:似乎只有当我尝试以与安装时不同的用户身份运行 Puppet 时才会出现问题。 我想在 OS X 客户端上使用 sudo 以 root 身份运行 puppet agent -t,但出现了前面描述的错误消息。当我以安装时使用的用户身份运行 puppet 时,不会出现该错误。 我怎样才能解决这个问题?

答案1

TLDR:始终使用 sudo 或直接以 root 身份登录(但不推荐)

好的,看来这是我的错:我不是百分之百确定,但我可能以 root 身份安装了 puppet(通过 sudo),以普通用户身份执行了 CSR,然后尝试再次以 root 身份运行它。

似乎我应该一直使用 sudo / root,因为在我像这样从客户端和服务器上删除证书后:

    To fix this, remove the CSR from both the master and the agent and then start a puppet run, which will automatically regenerate a CSR.
    On the master:
    puppet cert clean puppetclient.puppet.intra
    On the agent:
    1a. On most platforms: find /home/administrator/.puppetlabs/etc/puppet/ssl -name puppetclient.puppet.intra.pem -delete
    1b. On Windows: del "\home\administrator\.puppetlabs\etc\puppet\ssl\certs\puppetclient.puppet.intra.pem" /f
    2. puppet agent -t

然后以 root 身份重新执行 CSR,现在一切似乎都运行正常。

相关内容