From 322bf4c779a378f113e6bf60714c66298aba876d Mon Sep 17 00:00:00 2001 From: Chuck Short Date: Tue, 5 May 2009 09:59:54 +0200 Subject: * Add more smarts to ec2 instance bring up. (LP: #371936) --- ec2-fetch-credentials.py | 27 +++++++++++++++++++-------- 1 file changed, 19 insertions(+), 8 deletions(-) (limited to 'ec2-fetch-credentials.py') 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) -- cgit v1.2.3