48

私はパペットについて学んでいて、自宅の VM で実験しようとしています。私はまだ人形サーバーを使用しておらず、ローカルで実行しているだけです。問題なく動作しますが、実行するたびpuppet apply ...に数秒の遅延が発生し、その後メッセージが表示されます

warning: Could not retrieve fact fqdn

私はメッセージが遅延にリンクされていると仮定し、それを取り除きたいと思っています (遅延 - 私はメッセージと一緒に暮らすことができます)。解決策をグーグルで検索すると、それが DNS ルックアップに何らかの形で関連しているように見えますが、他に何も見つけられず、驚くべきことです。私が望むのは、自分の vm にマニフェストをすばやく適用して実験できるようにすることだけです。どうすればスピードアップできますか?

更新:デバッグ出力に追加情報は表示されませんが、次のようになります。

$ 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
...

更新: puppet のフォロワーが非常に少ないため、「ruby」タグを追加しました。これが ruby​​ に属さない場合、またはより適切なタグを知っている場合は、お知らせください。

再更新: puppet についてさらに学習した結果、このメッセージは、Puppet が実行されているシステムに関する「事実」を盗み出す「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

これが私のルーターで、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これは5秒間ブロックされ、それぞれに対して2回呼び出されました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

VM を NAT ネットワークからブリッジに変更したため、ネットワーク上に IP があり、arpすぐに戻ります。(私はネットワーキングの第一人者ではないので、なぜこれが機能したのかわかりませんが、試してみるのが合理的なように思えました。) しかしfacter、実行にはまだ合計で約 4 ~ 5 秒かかり、「ファクト fqdn を取得できませんでした」と報告されます。facter -d最後まで、「ドメインの値はまだnilです」のいくつかの発生を示しています。私はまだ何かが完全に正しくないと考えています。

4

6 に答える 6

33

puppet は fqdn ファクトを使用して実行中のノードを判別するため、判別できない場合は実行できない場合があります。あなたが説明していることを考えると、デバッグする最も簡単なことfacter fqdnは、人形のコマンドラインの代わりです。

「数秒」が正確に 5 秒に非常に近い場合は、DNS 構成が壊れており、1 つの不良 DNS サーバーがリストされている可能性があります。/etc/resolv.conf には何がありますか? dig -x $HOSTIP $DNSSERVERIPresolv.conf にリストされている最初のネームサーバーで実行するとどうなりますか?

調べてみるfacter/fqdn.rbと、fqdn を解決するために factorer が何をしようとしているのかを正確に確認できます。私が最も便利に使用しているバージョンでは、facter/hostname.rbからfacter/domainname.rbコードを呼び出しますfacter/util/resolution.rb

正確に何が起こるかは、使用しているファクターのバージョン、OS、および場合によっては正確に何をインストールしたかによって異なります。/bin/hostnameuname(など) を呼び出し、DNS ルックアップを実行する可能性は非常に高いです。何が時間を取っているかをいつでもstrace -t facter fqdn確認できます (タイムスタンプのギャップを探します)。

あなたが説明したすべてのことから、問題は操り人形/因子が本当にドメイン名を持ちたいと思っていることのように聞こえますが、あなたはドメイン名を持っておらず、裸のホスト名を持っているだけです.

domain example.com/etc/resolv.conf に追加するとうまくいくはずです。実行hostname foo.example.comすることもできます (ただし、再適用する必要があります)。恒久的な解決策は、正確な OS セットアップに依存します。

于 2011-10-16T19:06:31.403 に答える
26

自宅のマシン (Xubuntu) でパペットを実行すると、同じエラーが発生しました。私にとってうまくいったのは、ファイルの2行目を変更することでした/etc/hosts。変更前の最初の 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.example.combox

于 2012-04-08T16:45:01.703 に答える
23

追加する

  config.vm.hostname = "vagrant.example.com"

私のVagrantfileためにそれを修正しました。

于 2013-11-16T22:37:00.440 に答える
5

FQDNは、「完全修飾ドメイン名」の略です。たとえば、Windowsドメイン(または他の同様のLDAPベースのドメイン)では、「organization.internal」などのネットワークドメインの名前になります。これは、コンピューターとサーバーが参加しているドメインであり、ネットワークグループとユーザーアカウントが含まれます。

したがって、残りの構成手順を実行するために必要な認証のfqdnを取得するのに問題があったと思います。

http://en.wikipedia.org/wiki/Fully_qualified_domain_name

システム/構成管理もそれらの領域にまたがるので、ServerFaultでより良い答えが得られる可能性があります。

于 2011-10-15T21:18:11.307 に答える