1

vagrantpuppetについて学んでいます。vagrant lucid32 (Ubuntu 10.04) を使用すると、パペットが非常に遅いように見えます。fqdn の問題(質問 7780322)を修正しましたが、それでも非常に遅いです。

問題 (の一部) を factorer までたどりました。ipaddress の問い合わせは非常に迅速ですが、ipaddress_eth0 には 20 秒かかります。

root@a:/# time facter ipaddress
10.0.2.15

real    0m0.031s
user    0m0.024s
sys     0m0.004s
root@a:/# time facter ipaddress_eth0
10.0.2.15

real    0m20.126s
user    0m0.080s
sys     0m0.020s
root@a:/# 

ipaddress_lo を探すのも遅いです。

これをデバッグする方法について、誰かが解決策や提案を手伝ってくれますか? Rubyは初めてですが、喜んで学びます。

ありがとう。

4

2 に答える 2

1

/ etc / hostsで不明なhosts(?)を定義しました。

10.0.2.3コンピューター1
10.0.2.2コンピューター2

この後、arp -aは非常に高速であったため、facter -pの応答が改善され、次にpuppetagent--testのパフォーマンスが改善されました。

于 2013-01-01T18:21:10.110 に答える
0

問題は、arp -a実行速度が非常に遅いことでした。

vagrant@lucid32:~$ time arp -a
? (10.0.2.3) at 52:54:00:12:35:03 [ether] on eth0
? (10.0.2.2) at 52:54:00:12:35:02 [ether] on eth0

real    0m20.022s
user    0m0.004s
sys     0m0.000s
vagrant@lucid32:~$

これは、virtualbox (4.1.12_77245)、ホストオンリー ネットワーク、ubuntu 10.04、および Windows 7 ホスト OS の組み合わせに問題があると思います。

回避策として、mac アドレスを知らなくても puppet について少し学べると仮定して、/opt/ruby/lib/ruby/gems/1.8/gems/facter-1.6.0/lib/facter/arp.rb次のように 7 行目を置き換えました。

require 'facter/util/ip'

Facter.add(:arp) do
  confine :kernel => :linux
  setcode do
    ### output = Facter::Util::Resolution.exec('arp -a') # disable for slow arp
    output = "" ### return a blank, rather than the real (but slow) arp
    if not output.nil?
      arp = ""
      output.each_line do |s|
        if s =~ /^\S+\s\S+\s\S+\s(\S+)\s\S+\s\S+\s\S+$/
          arp = $1.downcase
          break # stops on the first match
        end
      end
    end
    "fe:ff:ff:ff:ff:ff" == arp ? arp : nil
  end
end

Facter::Util::IP.get_interfaces.each do |interface|
  Facter.add("arp_" + Facter::Util::IP.alphafy(interface)) do
    confine :kernel => :linux
    setcode do
      arp = Facter::Util::IP.get_arp_value(interface)
      "fe:ff:ff:ff:ff:ff" == arp ? arp : nil
    end
  end
end
于 2012-04-13T12:09:28.403 に答える