我正在学习木偶并尝试在家里的虚拟机上进行实验。我还没有使用 puppet 服务器,只是在本地运行。它工作正常,但每次我运行时puppet apply ...
,我都会延迟几秒钟,之后它会显示消息
warning: Could not retrieve fact fqdn
我假设该消息与延迟有关,并且我想摆脱它(延迟-我可以接受该消息)。谷歌搜索解决方案似乎表明它与 DNS 查找有关,但我真的找不到任何关于它的东西,这似乎令人惊讶。我想要的只是能够在我的虚拟机中快速应用清单,以便我可以进行实验。我怎样才能加快速度?
更新:我在调试输出中看不到任何额外的信息,但它看起来像这样:
$ puppet apply -dv puppet-1.pp
warning: Could not retrieve fact fqdn
debug: Failed to load library 'rubygems' for feature 'rubygems'
debug: Failed to load library 'selinux' for feature 'selinux'
debug: Puppet::Type::File::ProviderMicrosoft_windows: feature microsoft_windows is missing
...
更新:我添加了“ruby”标签,因为 puppet 的追随者很少。如果这不属于 ruby,或者如果您知道更好的标签,请告诉我。
再次更新:在了解了更多关于 puppet 的知识后,我现在明白这条消息来自名为“Facter”的组件,该组件可以嗅出有关 Puppet 正在运行的系统的“事实”。我找到了一些配置选项并使用了"certname"、"node_name"和"node_name_value",但我无法让延迟消失。有谁知道具体如何告诉 Facter 忽略 fqdn 或如何让 Facter 能够在 Ubuntu 11.10 vm 上找到 fqdn?
进步:
$ cat /etc/resolv.conf
# Generated by NetworkManager
nameserver 192.168.1.1
那是我的路由器,它通过 Tomato 运行 Dnsmasq。
$ dig -x 192.168.1.129 192.168.1.1
; <<>> DiG 9.7.3 <<>> -x 192.168.1.129 192.168.1.1
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 21838
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0
;; QUESTION SECTION:
;129.1.168.192.in-addr.arpa. IN PTR
;; ANSWER SECTION:
129.1.168.192.in-addr.arpa. 0 IN PTR desk-vm-ubuntu-beta.
;; Query time: 14 msec
;; SERVER: 192.168.1.1#53(192.168.1.1)
;; WHEN: Sun Oct 16 17:47:47 2011
;; MSG SIZE rcvd: 77
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 27462
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0
;; QUESTION SECTION:
;192.168.1.1. IN A
;; ANSWER SECTION:
192.168.1.1. 0 IN A 192.168.1.1
;; Query time: 11 msec
;; SERVER: 192.168.1.1#53(192.168.1.1)
;; WHEN: Sun Oct 16 17:47:47 2011
;; MSG SIZE rcvd: 45
strace
引导我到 arp,它阻塞了 5 秒,每次调用两次facter
:
$ time arp -a
? (10.0.2.2) at 52:54:00:12:35:02 [ether] on eth0
real 0m5.127s
user 0m0.004s
sys 0m0.016s
我将虚拟机从 NAT 网络更改为桥接,因此它现在在网络上有一个 IP,并且arp
现在立即返回。(我不是网络专家,所以我不知道为什么会这样,但这似乎是一个合理的尝试。)但facter
仍然需要大约 4-5 秒才能运行并且仍然报告“无法检索事实 fqdn”。facter -d
显示多次出现“域的值仍然为零”,一直到最后。我在想有些事情还是不太对劲。