我有两个虚拟机设置来学习Puppet - 一个运行puppetserver作为我的主人,另一个运行作为DNS的Puppet代理。
虚拟机在Hyper-V(Windows 10)中运行,并且位于同一个虚拟交换机上。
使用此Puppet模块设置内部DNS服务器 - https://github.com/ajjahn/puppet-dns我的第二个,DNS VM无法再连接到puppetserver。我在puppet agent -t
次运行中收到此错误:
Error: Could not request certificate: No route to host - connect(2) for "puppet.myname.homelab" port 8140
在puppetserver上,我重新发布了自己的代理证书,该证书将证书从puppet <sha-omitted>
更改为"puppet.myname.homelab" <sha omitted> (alt names: "DNS:puppet", "DNS:puppet.myname.homelab")
在puppetserver上运行puppet agent -t
进行更新,可以很好地进行证书续订。
我可以使用DNS服务器在任何主机上成功执行nslookup
,并且他们确实使用新的myname.homelab
域解析。
我的家用路由器上仍然启用了DHCP,但我将它设置为两个虚拟机上/etc/resolv.conf中的第二个名称服务器:
search myname.homelab
nameserver 192.168.1.107
nameserver 192.168.1.1
我在两台虚拟机上运行Ubuntu 16.04和Puppet 4。我已经允许两台虚拟机上的UFW端口8140,甚至尝试禁用UFW而没有运气。
我还在学习Puppet并且是网络新手,因此任何有关尝试和指向正确方向的建议都会受到赞赏。
谢谢!
答案 0 :(得分:0)
我睡觉了,今天早上意识到我的路由器已经将我的Puppetserver重新分配给了一个新的IP,因此它的DNS A记录是错误的,即使它是在路由器的DHCP中手动分配的。
纠正这个伎俩,现在一切正常。
答案 1 :(得分:0)
相同的问题,但另一个原因:人偶服务器上的防火墙阻止了端口8140。可以在客户端上进行如下检查:
$ curl -k -I https://puppet:8140
curl: (7) couldn't connect to host
在服务器上禁用防火墙后(例如systemctl stop firewalld):
$ curl -k -I https://puppet:8140
HTTP/1.1 404 Not Found
Date: Thu, 24 Oct 2019 11:27:26 GMT
Cache-Control: must-revalidate,no-cache,no-store
Content-Type: text/html; charset=ISO-8859-1
Content-Length: 278
Server: Jetty(9.2.z-SNAPSHOT)
这是预期的输出,并且人偶代理程序也按预期运行。