# return the set of active interfaces as an array Facter.add("interfaces") do setcode do `ip -o link show`.split(/\n/).collect do |line| value = nil matches = line.match(/^\d*: ([^:]*): <(.*,)?UP(,.*)?>/) if !matches.nil? value = matches[1] end value end.compact.sort.join(" ") end end ## root@junglist /var/lib/puppet/lib/facter# facter|grep ipaddress ## ipaddress => 123.100.70.1 ## ipaddress_eth0 => 123.100.70.1 ## ipaddress_eth0_0 => 123.100.70.2 ## ipaddress_eth0_1 => 123.100.70.3 ## ipaddress_eth0_2 => 123.100.70.4 ## ipaddress_eth0_3 => 123.100.70.5