From: Scott Moser Date: Thu, 22 Aug 2013 19:38:48 +0000 (-0400) Subject: hooks/ubuntu-cloud-prep: add hostname to meta-data X-Git-Tag: lxc-1.0.0.alpha1~1^2~35 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=cb0c6c020314ee0fea0ce30d209711f7e9c29aaa;p=thirdparty%2Flxc.git hooks/ubuntu-cloud-prep: add hostname to meta-data prior to my enabling of the clone hook, the setting of the hostname was being done by writing to /etc/hostname. Instead of relying on that we're now writing 'local-hostname' into the metadata for the instance. cloud-init then reads this and sets the hostname properly. We are also writing /etc/hostname with the new hostname explicitly. This is useful/necessary because on network bringup of eth0, dhclient will submit its hosname. The updating done by cloud-init occurs to late, and thus the dhcp request goes out with the un-configured hostname and dns doens't work correctly. Signed-off-by: Scott Moser Signed-off-by: Serge Hallyn --- diff --git a/hooks/ubuntu-cloud-prep b/hooks/ubuntu-cloud-prep index c4c362003..f0b30ea60 100755 --- a/hooks/ubuntu-cloud-prep +++ b/hooks/ubuntu-cloud-prep @@ -49,8 +49,8 @@ prep() { fi local cur="" next="" - local userdata="" hostid="" authkey="" locales=1 cloud=0 name="" - local create_etc_init=0 + local userdata="" hostid="" authkey="" locales=1 cloud=0 + local create_etc_init=0 name="ubuntucloud-lxc" while [ $# -ne 0 ]; do cur="$1"; next="$2"; @@ -97,6 +97,10 @@ prep() { local seed_d="" seed_d="$root_d/var/lib/cloud/seed/nocloud-net" + + echo "$name" > "$root_d/etc/hostname" || + { error "failed to write /etc/hostname"; return 1; } + if [ $cloud -eq 1 ]; then debug 1 "--cloud provided, not modifying seed in '$seed_d'" else @@ -110,6 +114,9 @@ prep() { echo "instance-id: lxc-$hostid" > "$seed_d/meta-data" || { error "failed to write to $seed_d/meta-data"; return 1; } + echo "local-hostname: $name" >> "$seed_d/meta-data" || + { error "failed to write to $seed_d/meta-data"; return 1; } + if [ -n "$authkey" ]; then { echo "public-keys:" &&