summaryrefslogtreecommitdiff
path: root/cloud-init.py
diff options
context:
space:
mode:
Diffstat (limited to 'cloud-init.py')
-rwxr-xr-xcloud-init.py19
1 files changed, 15 insertions, 4 deletions
diff --git a/cloud-init.py b/cloud-init.py
index b48d4672..501ed4b4 100755
--- a/cloud-init.py
+++ b/cloud-init.py
@@ -35,10 +35,6 @@ def main():
sys.stderr.write("Failed to get instance data")
sys.exit(1)
- hostname = cloud.get_hostname()
- subprocess.Popen(['hostname', hostname]).communicate()
- #print "user data is:" + cloud.get_user_data()
-
# store the metadata
cloud.update_cache()
@@ -50,6 +46,15 @@ def main():
warn("consuming user data failed!\n")
raise
+ try:
+ hostname = cloud.get_hostname()
+ cloud.sem_and_run("set_hostname", "once-per-instance",
+ set_hostname, [ hostname ], False)
+ except:
+ warn("failed to set hostname\n")
+
+ #print "user data is:" + cloud.get_user_data()
+
# set the defaults (like what ec2-set-defaults.py did)
try:
cloud.sem_and_run("set_defaults", "once-per-instance",
@@ -72,5 +77,11 @@ def apply_locale(locale):
util.render_to_file('default-locale', '/etc/default/locale', \
{ 'locale' : locale })
+def set_hostname(hostname):
+ subprocess.Popen(['hostname', hostname]).communicate()
+ f=open("/etc/hostname","wb")
+ f.write("%s\n" % hostname)
+ f.close()
+
if __name__ == '__main__':
main()