Facter.add("bonding") do confine :kernel => :linux setcode do "present" if File.directory?('/proc/net/bonding') end end Facter.add("bondedinterfaces") do confine :bonding => :present setcode do bonded_interfaces = Dir.entries('/proc/net/bonding').collect do | file | file unless file == "." or file == ".." end bonded_interfaces.compact.join(" ") end end