[lxc-devel] [PATCH] hooks/ubuntu-cloud-prep: add hostname to meta-data
Scott Moser
smoser at ubuntu.com
Thu Aug 22 19:38:48 UTC 2013
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 <smoser at ubuntu.com>
---
hooks/ubuntu-cloud-prep | 11 +++++++++--
1 file changed, 9 insertions(+), 2 deletions(-)
diff --git a/hooks/ubuntu-cloud-prep b/hooks/ubuntu-cloud-prep
index c4c3620..f0b30ea 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:" &&
--
1.8.3.2
More information about the lxc-devel
mailing list