diff options
author | Hugo Hörnquist <hugo@lysator.liu.se> | 2023-05-05 00:31:37 +0200 |
---|---|---|
committer | Hugo Hörnquist <hugo@lysator.liu.se> | 2023-05-05 00:31:37 +0200 |
commit | eb38e6252b3c52a44d0d33679b3bc3178674c7f8 (patch) | |
tree | b7958e38f9893c347af4c04a53f65a103cef3292 /lib/facter | |
parent | Initial commit (diff) | |
download | dns-eb38e6252b3c52a44d0d33679b3bc3178674c7f8.tar.gz dns-eb38e6252b3c52a44d0d33679b3bc3178674c7f8.tar.xz |
Everything
Diffstat (limited to 'lib/facter')
-rw-r--r-- | lib/facter/dns_zone_serial.rb | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/lib/facter/dns_zone_serial.rb b/lib/facter/dns_zone_serial.rb new file mode 100644 index 0000000..6aca94e --- /dev/null +++ b/lib/facter/dns_zone_serial.rb @@ -0,0 +1,20 @@ +require 'resolv' + +Facter.add(:dns_zone_serial) do + confine do + Facter.Util.Resolution.which('named-checkconf') + end + + setcode do + dns = Resolv::DNS.new(nameserver: ['localhost']) + zones = `named-checkconf -l` + .split("\n") + .map { |line| line.split(' ') } + .filter { |zone| zone.last == 'master' } + zone_map = {} + zones.map do |zone| + zone_map["#{zone[0]}."] = dns.getresource(zone[0], Resolv::DNS::Resource::IN::SOA).serial + end + zone_map + end +end |