require 'facter'
alias_lines = `ip addr | grep secondary`.split("\n")
# facts will be will be an array of arrays in the form of ["10.10.41.113", "0", "3"]
# where f[0] = ip, f[1] = interface, f[2] = alias
ipdata = /^.*inet (.*)\/.*eth([0-9]+):([0-9]+)$/
facts = alias_lines.map {|a| ipdata.match(a).captures}
facts.each do |f|
Facter.add("ipaddress_eth#{f[1]}_#{f[2]}") do
setcode {f[0]}
end
#puts "ipaddress_eth#{f[1]}_#{f[2]} = " + Facter["ipaddress_eth#{f[1]}_#{f[2]}"].value
end