Report abuse

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
Facter.add(:application_ip, :timeout => 2) do
    setcode do
        require 'resolv'

        begin
            if fqdn = Facter.value(:fqdn)
                ip = Resolv.getaddress(fqdn)
                unless ip == "127.0.0.1"
                    ip
                end
            else
                nil
            end

        rescue Resolv::ResolvError

                if Facter.value(:ipaddress_bond2)
                        Facter.value(:ipaddress_bond2)
                elsif Facter.value(:ipaddress_eth2)
                        Facter.value(:ipaddress_eth2)
                elsif Facter.value(:ipaddress_eth1)
                        Facter.value(:ipaddress_eth1)
                elsif Facter.value(:ipaddress_eth0)
                        Facter.value(:ipaddress_eth0)
                end

        rescue NoMethodError # i think this is a bug in resolv.rb?
                nil
        end
    end
end