diff --git a/plugins/guests/pld/cap/change_host_name.rb b/plugins/guests/pld/cap/change_host_name.rb new file mode 100644 index 000000000..e7925b03b --- /dev/null +++ b/plugins/guests/pld/cap/change_host_name.rb @@ -0,0 +1,20 @@ +module VagrantPlugins + module GuestPld + module Cap + class ChangeHostName + def self.change_host_name(machine, name) + machine.communicate.tap do |comm| + # Only do this if the hostname is not already set + if !comm.test("sudo hostname | grep --line-regexp '#{name}'") + comm.sudo("sed -i 's/\\(HOSTNAME=\\).*/\\1#{name}/' /etc/sysconfig/network") + comm.sudo("hostname #{name}") + comm.sudo("sed -i 's@^\\(127[.]0[.]0[.]1[[:space:]]\\+\\)@\\1#{name} #{name.split('.')[0]} @' /etc/hosts") + comm.sudo("sed -i 's/\\(DHCP_HOSTNAME=\\).*/\\1\"#{name}\"/' /etc/sysconfig/interfaces/ifcfg-*") + comm.sudo("service network restart") + end + end + end + end + end + end +end diff --git a/plugins/guests/pld/plugin.rb b/plugins/guests/pld/plugin.rb index d02d76a02..ef7939fad 100644 --- a/plugins/guests/pld/plugin.rb +++ b/plugins/guests/pld/plugin.rb @@ -11,6 +11,11 @@ module VagrantPlugins Guest end + guest_capability("pld", "change_host_name") do + require_relative "cap/change_host_name" + Cap::ChangeHostName + end + guest_capability("pld", "network_scripts_dir") do require_relative "cap/network_scripts_dir" Cap::NetworkScriptsDir