Exemplo n.º 1
0
#!/usr/bin/env python2

# Detaches an EBS volume from an instance to which it's attached.
#
# Usage: detach-volume.py <instance-id> <volume-id>

import sys
import boto3
import awslib

ec2 = boto3.resource('ec2')
client = boto3.client('ec2')

instanceId = sys.argv[1]
instances = ec2.instances.filter(InstanceIds=[instanceId])
instance = list(instances)[0]

# Detach the index EBS volume from the instance.
volumeId = sys.argv[2]
instance.detach_volume(VolumeId=volumeId)

awslib.await_volume(client, volumeId, 'in-use', 'available')
Exemplo n.º 2
0
# Detaches an EBS volume from an instance to which it's attached.
#
# Usage: detach-volume.py <instance-id> <volume-id>

import sys
import boto3
import awslib

ec2 = boto3.resource('ec2')
client = boto3.client('ec2')

instanceId = sys.argv[1]
instances = ec2.instances.filter(InstanceIds=[instanceId])
instance = list(instances)[0]

# Detach the index EBS volume from the instance.
volumeId = sys.argv[2]
instance.detach_volume(VolumeId=volumeId)

awslib.await_volume(client, volumeId, 'in-use', 'available')
Exemplo n.º 3
0
sudo -i -u ubuntu mozsearch/infrastructure/aws/web-serve.sh config "{config_input}" "{volume_id}"
'''.format(branch=branch,
           channel=channel,
           mozsearch_repo=mozsearch_repo,
           config_repo=config_repo,
           config_input=config_input,
           volume_id=volumeId)

volumes = ec2.describe_volumes(VolumeIds=[volumeId])
availability_zone = volumes['Volumes'][0]['AvailabilityZone']

if volumes['Volumes'][0]['Attachments']:
    attachment = volumes['Volumes'][0]['Attachments']
    if attachment['State'] == 'attached':
        instance.detach_volume(VolumeId=volumeId)
        awslib.await_volume(ec2, volumeId, 'in-use', 'available')

# - Start the web server instance, tag it as a web server

print('Starting web server instance...')

images = ec2.describe_images(Filters=[{
    'Name': 'name',
    'Values': ['web-server-18.04']
}])
image_id = images['Images'][0]['ImageId']

r = ec2.run_instances(
    ImageId=image_id,
    MinCount=1,
    MaxCount=1,
Exemplo n.º 4
0
#!/usr/bin/env python2

# Deletes the specified EBS volume. If it is in use by an
# instance, we wait until it is detached and in the 'available'
# state before deleting it.
#
# Usage: delete-volume.py <volume-id>

import sys
import boto3
import awslib

ec2 = boto3.client('ec2')

volumeId = sys.argv[1]
volume = ec2.describe_volumes(VolumeIds=[volumeId])['Volumes'][0]
if volume['State'] != 'available':
    print("Volume is in state %s, waiting for it to go into state available..." % volume['State'])
    awslib.await_volume(ec2, volumeId, volume['State'], 'available')

ec2.delete_volume(VolumeId=volumeId)
print("Volume %s deleted" % volumeId)