我正在學習puppet,並試圖在家裏的虛擬機上進行試驗。我還沒有使用puppet服務器,只是在本地運行東西。它的工作原理好了,但我每次運行puppet apply ...
的時候,我得到的幾秒鐘的延遲後,它會顯示消息Puppet/Facter「無法檢索事實fqdn」:如何解決或規避?
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
...
更新:我添加了「紅寶石」的標籤,因爲木偶有這麼幾個追隨者。如果這不屬於紅寶石,或者如果你知道一個更好的標籤,讓我知道。
再次更新:已經學到了一些更多的傀儡,我現在明白了,這個消息是從所謂的「Facter」那嗅探出「事實」關於木偶所運行的系統組件來了。我發現了一些配置選項,並使用"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
這是我的路由器,它通過番茄運行的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改變了VM的網絡連接,以橋接,所以它現在有一個IP在網絡上,並且arp
立即返回。 (我不是網絡專家,所以我不知道爲什麼這個工作,但它似乎是一個合理的嘗試。)但facter
仍需要大約4-5秒總計運行,仍然報告「無法檢索事實fqdn」。 facter -d
顯示了幾次出現的「域值仍然爲零」,一直到最後。我在想事情還不是很正確。
啊! 'strace'找到了一些東西:'/ usr/lib/ruby/1.8/facter/arp.rb'正在調用阻塞5秒的'arp -a'。我將resolv.conf,dig output和arp輸出添加到我的答案中。現在速度更快,但仍然不快。在一臺臺式機內核上,4-5秒是否適合虛擬機? –
它試圖很難找到一個域名,並嘗試一切方式失敗。給它一個域,它會更快成功。稍後我會添加一些答案。 – freiheit
由於vm是一個桌面發行版,我在我的路由器中設置了一個域並重新啓動了網絡管理器,並將域添加到resolv.conf本身。這照顧了域和fqdn。我從來沒有發現需要配置一個域名。現在最多隻有4秒 - 比它好得多,我不確定它會好得多。謝謝你的幫助! –