私は人形について学び、VM家でそれを試してみます。私はまだ人形サーバーを使用していません。ただローカルで実行しています。それは大丈夫ですが、毎回実行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」タグを追加しました。これがRubyに属さない場合、またはより適切なタグを知っている場合は、お知らせください。
再度更新:パペットについてもう少し学んだので、このメッセージは「事実」を嗅ぎ分ける「要因」と呼ばれるコンポーネントから来ていることがわかりましたPuppetが実行されているシステム。いくつかの設定オプションを見つけて、 "certname" 、 "node_name" 、および "node_name_value" で遊んでみましたが、遅延を得ることができませんでした立ち去る。 fqdnを無視するようにFacterに指示する方法、またはUbuntu 11.10 vmでFacterが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
ごとに2回呼び出されました。
$ 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
VMからNATネットワーキングをブリッジに変更したので、ネットワーク上にIPがあり、arp
はすぐに戻ります。 (私はネットワーキングの第一人者ではないので、なぜこれが機能したのかわかりませんが、試してみるのは合理的なことのように思えました。)しかし、facter
の実行には合計で約4-5秒かかり、ファクトfqdnを取得」。facter -d
は、「ドメインの値がまだnil」の出現を最後まで表示します。私はまだ何かが正しくないと考えています。
Puppetはfqdnファクトを使用して、実行中のノードを判別するため、判別できない場合は実行できない可能性があります。あなたが説明していることを考えると、デバッグする最も簡単なことは、パペットのコマンドラインの代わりにfacter fqdn
です。
「数秒」が正確に5秒に非常に近い場合、単一の不良DNSサーバーがリストされていてDNS構成が壊れている可能性が非常に高くなります。 /etc/resolv.confには何が含まれていますか? resolv.confにリストされている最初のネームサーバーでDig -x $HOSTIP $DNSSERVERIP
を実行するとどうなりますか?
facter/fqdn.rb
を見ると、fqdnを解決するためにファクターがまさに何をしようとしているのかがわかります。最も便利なバージョンでは、facter/hostname.rb
からコードを呼び出すfacter/domainname.rb
とfacter/util/resolution.rb
を使用しています。
正確に何が起こるかは、あなたが持っているファクターのバージョン、OS、そしておそらくあなたがインストールしたものによって異なります。 /bin/hostname
、uname
(など)を呼び出してDNSルックアップを実行する可能性は非常に高いです。常にstrace -t facter fqdn
を使用して、時間がかかっているものを確認できます(タイムスタンプのギャップを探します)
あなたが説明したすべてのことから、問題はパペット/ファクターが本当にドメイン名を持ちたいと思っているのに聞こえます。
domain example.com
を/etc/resolv.confに追加するとうまくいきます。 hostname foo.example.com
を実行することもトリックを実行する必要があります(ただし、再適用する必要があります)。永続的なソリューションは、正確なOSセットアップに依存します。
自宅のマシン(Xubuntu)でパペットを実行すると、同じエラーが発生しました。私のために働いたのは、ファイル/etc/hosts
の2行目を変更することでした。変更前の最初の2行:
127.0.0.1 localhost
127.0.1.1 box
そして、変更後:
127.0.0.1 localhost
127.0.1.1 box.example.com box
現在、コマンドhostname -f
はbox
の代わりにbox.example.com
を返し、人形は幸せです。
追加中
config.vm.hostname = "vagrant.example.com"
Vagrantfile
に修正してくれました。
FQDNは「完全修飾ドメイン名」の略です。たとえば、Windowsドメイン(または同様のLDAPベースのドメイン)では、「organization.internal」などのネットワークドメインの名前-コンピューターとサーバーが参加しているドメイン、およびネットワークグループとユーザーアカウントが含まれています。
したがって、おそらく、残りの構成手順を実行するために必要な認証のためにfqdnを取得するのに問題があったと思います。
http://en.wikipedia.org/wiki/Fully_qualified_domain_name
システム/構成管理もその領域に移行するため、ServerFaultでより良い答えが得られる可能性があります。
この行を/etc/resolv.conf
に追加します
domain abc.com
facter fqdnを再度実行します
Fqdnにはドメイン名が必要です。ドメイン名は、インストールしたばかりのubu12にない可能性があります
回避する別の可能な方法は、事実を無効にすることです。
http://www.puppetcookbook.com/posts/override-a-facter-fact.html
FACTER_fqdn=box.example.com facter
Windowsでは、これは
SET FACTER_fqdn=box.example.com
facter fqdn