mirror of
https://github.com/kevingruesser/bootstrap-vz.git
synced 2025-08-22 09:50:37 +00:00
ec2_launch plugin porting to boto3 +
(print_public_ip not working yet)
This commit is contained in:
parent
07c66e9030
commit
ed33a5f067
1 changed files with 15 additions and 13 deletions
|
@ -23,19 +23,21 @@ class LaunchEC2Instance(Task):
|
|||
@classmethod
|
||||
def run(cls, info):
|
||||
conn = info._ec2['connection']
|
||||
r = conn.run_instances(info._ec2['image'],
|
||||
security_group_ids=info.manifest.plugins['ec2_launch'].get('security_group_ids'),
|
||||
key_name=info.manifest.plugins['ec2_launch'].get('ssh_key'),
|
||||
instance_type=info.manifest.plugins['ec2_launch'].get('instance_type',
|
||||
r = conn.run_instances(ImageId=info._ec2['image']['ImageId'],
|
||||
MinCount=1,
|
||||
MaxCount=1,
|
||||
SecurityGroupIds=info.manifest.plugins['ec2_launch'].get('security_group_ids'),
|
||||
KeyName=info.manifest.plugins['ec2_launch'].get('ssh_key'),
|
||||
InstanceType=info.manifest.plugins['ec2_launch'].get('instance_type',
|
||||
'm3.medium'))
|
||||
info._ec2['instance'] = r.instances[0]
|
||||
info._ec2['instance'] = r['Instances'][0]
|
||||
|
||||
if 'tags' in info.manifest.plugins['ec2_launch']:
|
||||
def apply_format(v):
|
||||
return v.format(**info.manifest_vars)
|
||||
tags = info.manifest.plugins['ec2_launch']['tags']
|
||||
r = {k: apply_format(v) for k, v in tags.items()}
|
||||
conn.create_tags([info._ec2['instance'].id], r)
|
||||
raw_tags = info.manifest.plugins['ec2_launch']['tags']
|
||||
formatted_tags = {k: v.format(**info.manifest_vars) for k, v in raw_tags.items()}
|
||||
tags = [{'Key': k, 'Value': v} for k, v in formatted_tags.items()]
|
||||
conn.create_tags(Resources=[info._ec2['instance']['InstanceId']],
|
||||
Tags=tags)
|
||||
|
||||
|
||||
class PrintPublicIPAddress(Task):
|
||||
|
@ -54,11 +56,11 @@ class PrintPublicIPAddress(Task):
|
|||
|
||||
def instance_has_ip():
|
||||
ec2['instance'].update()
|
||||
return ec2['instance'].ip_address
|
||||
return ec2['instance']['PublicIpAddress']
|
||||
|
||||
if waituntil(instance_has_ip, timeout=120, interval=5):
|
||||
logger.info('******* EC2 IP ADDRESS: %s *******' % ec2['instance'].ip_address)
|
||||
f.write(ec2['instance'].ip_address)
|
||||
logger.info('******* EC2 IP ADDRESS: %s *******' % ec2['instance']['PublicIpAddress'])
|
||||
f.write(ec2['instance']['PublicIpAddress'])
|
||||
else:
|
||||
logger.error('Could not get IP address for the instance')
|
||||
f.write('')
|
||||
|
|
Loading…
Add table
Reference in a new issue