summaryrefslogtreecommitdiff
path: root/ec2-fetch-credentials.py
diff options
context:
space:
mode:
authorChuck Short <zulcss@ubuntu.com>2009-05-05 09:59:54 +0200
committerChuck Short <zulcss@ubuntu.com>2009-05-05 09:59:54 +0200
commit322bf4c779a378f113e6bf60714c66298aba876d (patch)
tree839d46c3211c2724ecafa32beaeac0cf0ab4519f /ec2-fetch-credentials.py
parentac53fe3d7599356b1f8c9851113212b68a5ab667 (diff)
downloadvyos-cloud-init-322bf4c779a378f113e6bf60714c66298aba876d.tar.gz
vyos-cloud-init-322bf4c779a378f113e6bf60714c66298aba876d.zip
* Add more smarts to ec2 instance bring up. (LP: #371936)
Diffstat (limited to 'ec2-fetch-credentials.py')
-rwxr-xr-xec2-fetch-credentials.py27
1 files changed, 19 insertions, 8 deletions
diff --git a/ec2-fetch-credentials.py b/ec2-fetch-credentials.py
index 68922878..05bc7a9c 100755
--- a/ec2-fetch-credentials.py
+++ b/ec2-fetch-credentials.py
@@ -38,7 +38,7 @@ def get_ssh_keys():
keyids = [line.split('=')[0] for line in data.split('\n')]
return [urllib.urlopen('%s/public-keys/%d/openssh-key' % (base_url, int(keyid))).read().rstrip() for keyid in keyids]
-def setup_user_keys(k,user):
+def setup_user_keys(k,user,filename):
if not os.path.exists('/home/%s/.ssh' %(user)):
os.mkdir('/home/%s/.ssh' %(user))
@@ -47,6 +47,7 @@ def setup_user_keys(k,user):
fp.write(''.join(['%s\n' % key for key in keys]))
fp.close()
os.system('chown -R %s:%s /home/%s/.ssh' %(user,user,user))
+ os.system('touch %s' %(filename))
def setup_root_user(k,root_config):
if root_config == "1":
@@ -72,11 +73,21 @@ def checkServer():
print "!!! Unable to connect to %s" % address
sys.exit(0)
-os.umask(077)
-if user == "":
- print "User must exist in %s" %(filename)
- sys.exit(0)
+def get_ami_id():
+ url = 'http://169.254.169.254/%s/meta-data' % api_ver
+ ami_id = urllib.urlopen('%s/ami-id/' %url).read()
+ return ami_id
-keys = get_ssh_keys()
-setup_user_keys(keys,user)
-setup_root_user(keys,config_root)
+amid = get_ami_id()
+filename = '/var/ec2/.ssh-keys-ran.%s' %amid
+if os.path.exists(filename):
+ print "ec2-fetch-credentials already ran....skipping."
+else:
+ os.umask(077)
+ if user == "":
+ print "User must exist in %s" %(filename)
+ sys.exit(0)
+
+ keys = get_ssh_keys()
+ setup_user_keys(keys,user,filename)
+ setup_root_user(keys,config_root)