feat: add region fact
- add fact that maps primary ip subnet to a region code - defaults to 'lost' if there is no subnet to region mapping
This commit is contained in:
parent
685d7db264
commit
7431ebf51c
28
site/profiles/lib/facter/region.rb
Normal file
28
site/profiles/lib/facter/region.rb
Normal file
@ -0,0 +1,28 @@
|
||||
# frozen_string_literal: true
|
||||
|
||||
# set region based on the subnet
|
||||
|
||||
Facter.add('region') do
|
||||
setcode do
|
||||
# use facts['networking']['ip']to find the promary IP address
|
||||
ip = Facter.value(:networking)['ip']
|
||||
|
||||
# subnet to region mapping
|
||||
subnet_to_region = {
|
||||
'198.18.17.0/24' => 'au-drw-1'
|
||||
}
|
||||
|
||||
require 'ipaddr'
|
||||
|
||||
# Find the region for the IP
|
||||
region = 'lost' # default to 'lost' if no region matches
|
||||
subnet_to_region.each do |subnet, region_name|
|
||||
if IPAddr.new(subnet).include?(IPAddr.new(ip))
|
||||
region = region_name
|
||||
break
|
||||
end
|
||||
end
|
||||
|
||||
region
|
||||
end
|
||||
end
|
||||
Loading…
Reference in New Issue
Block a user