From eb38e6252b3c52a44d0d33679b3bc3178674c7f8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Hugo=20H=C3=B6rnquist?= Date: Fri, 5 May 2023 00:31:37 +0200 Subject: Everything --- lib/facter/dns_zone_serial.rb | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 lib/facter/dns_zone_serial.rb (limited to 'lib/facter') 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 -- cgit v1.2.3