class Chef::Resource::Hostname

Sets the hostname and updates /etc/hosts on *nix systems @since 14.0.0

Constants

WINDOWS_EC2_CONFIG

Public Instance Methods

append_replacing_matching_lines(path, regex, string) click to toggle source
# File lib/chef/resource/hostname.rb, line 101
def append_replacing_matching_lines(path, regex, string)
  text = TargetIO::IO.read(path).split("\n")
  text.reject! { |s| s =~ regex }
  text += [ string ]
  file path do
    content text.join("\n") + "\n"
    owner "root"
    group node["root_group"]
    mode "0644"
    not_if { TargetIO::IO.read(path).split("\n").include?(string) }
  end
end
is_domain_joined?() click to toggle source
# File lib/chef/resource/hostname.rb, line 132
def is_domain_joined?
  powershell_exec!("(Get-CIMInstance -Class Win32_ComputerSystem).PartofDomain").result
end
updated_ec2_config_xml() click to toggle source

read in the xml file used by Ec2ConfigService and update the Ec2SetComputerName setting to disable updating the computer name so we don’t revert our change on reboot @return [String]

# File lib/chef/resource/hostname.rb, line 117
def updated_ec2_config_xml
  begin
    require "rexml/document" unless defined?(REXML::Document)
    config = REXML::Document.new(::File.read(WINDOWS_EC2_CONFIG))
    # find an element named State with a sibling element whose value is Ec2SetComputerName
    REXML::XPath.each(config, "//Plugin/State[../Name/text() = 'Ec2SetComputerName']") do |element|
      element.text = "Disabled"
    end
  rescue
    return ""
  end
  config.to_s
end