up:节点名称似乎取决于反向DNS?


20

我似乎在理解如何使它起作用方面遇到了一些问题。我在工作中要在办公室NAT后面建立一台新服务器,其反向dns映射到office.mydomain.com,但是我希望该机器是ns2.mydomain.com出于伪造。

nodes.pp片段:

node 'ns2.mydomain.com' inherits basenode {
  info('ns2.mydomain.com')
}

node 'office.mydomain.com' inherits basenode {
  info('office.mydomain.com')
}

还有我在客户端的“ puppet.conf”:

[main]
#was node_name=ns2.mydomain.com
#was fqdn=ns2.mydomain.com
certname=ns2.mydomain.com
node_name=cert

我在服务器上的系统日志报告:

Sep 16 22:59:12 support puppetmasterd[2800]: Host is missing hostname and/or domain: office.mydomain.com
Sep 16 22:59:12 support puppetmasterd[2800]: (Scope(Node[office.mydomain.com])) office.mydomain.com
Sep 16 22:59:12 support puppetmasterd[2800]: Compiled catalog for office.mydomain.com in 0.03 seconds
Sep 16 22:59:12 support puppetmasterd[2800]: Caching catalog for ns2.mydomain.com

我如何不进行以下操作就可以获取配置ns2.mydomain.com

node 'ns2.mydomain.com' inherits basenode {
  info('ns2.mydomain.com')
}

node 'office.mydomain.com' inherits 'ns2.mydomain.com' {
  info('office.mydomain.com')
}

更新:此问题似乎也引起了其他问题。例如,如果我info("$fqdn")坐在机器后面office.mydomain.com的fqdn事实为空,则为空$operatingsystem。几乎就像事实没有被正确发现一样。可能有NAT问题吗?是否有任何建议可以找出导致此问题的原因?

Answers:


26

Aaah,Puppet主机名检测。什么样的恶梦...

默认情况下,将node基于fqdn事实的内容使用什么名称来查找要使用的定义。什么真正映射到依赖于一些不同的东西,是的,反向DNS就是其中之一-这是优于机器的自己的主机名!

但是,此名称(通常)仅在证书生成时适用。您实际上是在滥用node_name变量-应该将其设置为“ cert”或“ facter”之一。该fqdn参数也已弃用。

实际要做的是将certname客户端上的参数设置为要使用的节点名称,然后设置node_namecert(或将其保留,因为这cert是默认设置)。这将从客户端提供的证书的CN中获取节点名称,并且该certname参数确保将其设置为合理的值,而不是由事实依据决定自己设置的值。不幸的是,由于您已经创建了“错误的”证书rm -rf /var/lib/puppet/ssl,因此在设置配置后,您需要重新生成这些证书(在客户端上并重新运行Puppet),以便创建并使用正确的证书。

如果这听起来有点复杂,那您是对的-是的。欢迎来到木偶。


嘿-看puppetmaster和puppet-都已经node_name=cert更新,更新cert_name=ns1.mydomain.com并在客户端上facter fqdn返回ns1.mydomain.com了,但是我仍然收到关于的相同错误消息office.mydomain.com
gnarf

1
回复:certname,你是对的,我记错了,没有像我应该的那样检查文档。关于缺乏固定性,您需要重新生成客户端证书。我已经更新了我的答案以涵盖这一点。
womble

1
实际上-我的证书文件是ns1.mydomain.com.pem,其CN也是ns1 ...“正确”吧?office.mydomain.com是它用作节点名称的方式,显然是在解析时尝试抓住事实时使用的名称,而不是使用证书名称作为节点名称。也许我想念其他东西?我的事实似乎都没有传递给解析器,或者info($fqdn)只是在我放入的范围内显示了空行
。– gnarf

我不知道您做了什么,但是您设法重新获得了一些好处。我想你一个人。
womble

另一个更新:我设法从办公室局域网后面获取了所有“预设置”内容,并将新的名称服务器投入使用-一旦它开始使用正确的反向DNS,所有事实就可以正确显示...
gnarf

5

我似乎在编辑中运气不错(尽管我仍然想看到一些测试用例),/etc/hosts以便将127.0.0.1下的所需fqdn列为第一个选项。似乎正在正确检测它/然后传递事实。尽管似乎我仍然需要创建一个名为的节点office.mydomain.com,该节点继承了我想要的节点。


这对我有用。(必须如上所述删除ssl目录)
bwizzy 2011年

这对我也很有效,并且受到Puppet文档的支持:puppetlabs.com/blog/resolving-dns-issues
DuffJ 2015年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.