From 1abcf1e54f04ea53a719f89c3e4d4cf85ec3c9d0 Mon Sep 17 00:00:00 2001 From: Elliot Segler Date: Tue, 8 Oct 2013 17:01:54 +0800 Subject: [PATCH] Better fix for issue #2333, does localhost as well so we dont break local name resolution for things like puppet --- plugins/guests/ubuntu/cap/change_host_name.rb | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/plugins/guests/ubuntu/cap/change_host_name.rb b/plugins/guests/ubuntu/cap/change_host_name.rb index 26526fb08..5c4190a11 100644 --- a/plugins/guests/ubuntu/cap/change_host_name.rb +++ b/plugins/guests/ubuntu/cap/change_host_name.rb @@ -20,9 +20,10 @@ module VagrantPlugins comm.sudo("sed -i 's/.*$/#{name.split('.')[0]}/' /etc/hostname") # hosts should resemble: + # 127.0.0.1 localhost host.fqdn.com host # 127.0.1.1 host.fqdn.com host - # Set FQDN, hostname in one line - comm.sudo("sed -i 's@#{old}@#{name} #{name.split('.')[0]}@' /etc/hosts") + comm.sudo("sed -ri 's@^((\\b[0-9]{1,3}\.){3}[0-9]{1,3})\\b.*(localhost).*$@\\1\\t\\3 #{name} #{name.split('.')[0]}@g' /etc/hosts") + comm.sudo("sed -ri 's@^((\\b[0-9]{1,3}\.){3}[0-9]{1,3})\\b.*(precise64).*$@\\1\\t#{name} #{name.split('.')[0]}@g' /etc/hosts") if comm.test("[ `lsb_release -c -s` = hardy ]") # hostname.sh returns 1, so I grep for the right name in /etc/hostname just to have a 0 exitcode