Sha256: e82d47d2554e7a82acc1c7d854a3da7d64c505dc99963b80d764d8a506f7f676
Contents?: true
Size: 1.58 KB
Versions: 1
Compression:
Stored size: 1.58 KB
Contents
# Fact: domain # # Purpose: # Return the host's primary DNS domain name. # # Resolution: # On UNIX (excluding Darwin), first try and use the hostname fact, # which uses the hostname system command, and then parse the output # of that. # Failing that it tries the dnsdomainname system command. # Failing that it uses /etc/resolv.conf and takes the domain from that, or as # a final resort, the search from that. # Otherwise returns nil. # # On Windows uses the win32ole gem and winmgmts to get the DNSDomain value # from the Win32 networking stack. # # Caveats: # Facter.add(:domain) do setcode do # Get the domain from various sources; the order of these # steps is important if name = Facter::Util::Resolution.exec('hostname') and name =~ /.*?\.(.+$)/ $1 elsif domain = Facter::Util::Resolution.exec('dnsdomainname') and domain =~ /.+\..+/ domain elsif FileTest.exists?("/etc/resolv.conf") domain = nil search = nil File.open("/etc/resolv.conf") { |file| file.each { |line| if line =~ /^\s*domain\s+(\S+)/ domain = $1 elsif line =~ /^\s*search\s+(\S+)/ search = $1 end } } next domain if domain next search if search end end end Facter.add(:domain) do confine :kernel => :windows setcode do require 'facter/util/wmi' domain = "" Facter::Util::WMI.execquery("select DNSDomain from Win32_NetworkAdapterConfiguration where IPEnabled = True").each { |nic| domain = nic.DNSDomain break } domain end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
facter-1.6.2 | lib/facter/domain.rb |