Skip to content
Snippets Groups Projects
Commit 170399c5 authored by Sebastian Rieger's avatar Sebastian Rieger
Browse files

fixed db creation

parent 5003f724
No related branches found
No related tags found
No related merge requests found
import time
import boto3
from botocore.exceptions import ClientError
......@@ -6,27 +8,7 @@ availabilityZone = 'eu-central-1b'
imageId = 'ami-0cc293023f983ed53'
instanceType = 't3.nano'
keyName = 'srieger-pub'
#userDataDB = ('#!/bin/bash\n'
# '#!/bin/bash\n'
# '# extra repo for RedHat rpms\n'
# 'yum install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm\n'
# '# essential tools\n'
# 'yum install -y joe htop git\n'
# '# mysql\n'
# 'yum install -y mariadb mariadb-server\n'
# '\n'
# 'service mariadb start\n'
# '\n'
# 'echo "create database cloud_tug_of_war" | mysql -u root\n'
# '\n'
# 'echo "create table clouds ( cloud_id INT AUTO_INCREMENT, name VARCHAR(255) NOT NULL, value INT, max_value INT, PRIMARY KEY (cloud_id))" | mysql -u root cloud_tug_of_war\n'
# '\n'
# 'echo "CREATE USER \'cloud_tug_of_war\'@\'%\' IDENTIFIED BY \'cloud\';" | mysql -u root\n'
# 'echo "GRANT ALL PRIVILEGES ON cloud_tug_of_war.* TO \'cloud_tug_of_war\'@\'%\';" | mysql -u root\n'
# 'echo "FLUSH PRIVILEGES" | mysql -u root\n'
# )
# convert with: cat install-mysql | sed "s/^/'/; s/$/\\\n'/"
client = boto3.setup_default_session(region_name=region)
ec2Client = boto3.client("ec2")
......@@ -46,7 +28,7 @@ subnet_id = ec2Client.describe_subnets(
print("Deleting old instance...")
print("------------------------------------")
response = ec2Client.describe_instances(Filters=[{'Name': 'tag-key', 'Values': ['tug-of-war']}])
response = ec2Client.describe_instances(Filters=[{'Name': 'tag-key', 'Values': ['tug-of-war-rds']}])
print(response)
reservations = response['Reservations']
for reservation in reservations:
......@@ -62,7 +44,7 @@ print("------------------------------------")
try:
response = rdsClient.delete_db_instance(
DBInstanceIdentifier='tug-of-war-db1',
DBInstanceIdentifier='tug-of-war-rds-db1',
SkipFinalSnapshot=True,
DeleteAutomatedBackups=True
)
......@@ -70,15 +52,15 @@ except ClientError as e:
print(e)
waiter = rdsClient.get_waiter('db_instance_deleted')
waiter.wait(DBInstanceIdentifier='tug-of-war-db1')
waiter.wait(DBInstanceIdentifier='tug-of-war-rds-db1')
#time.sleep(5)
print("Delete old security group...")
print("------------------------------------")
try:
response = ec2Client.delete_security_group(GroupName='tug-of-war')
response = ec2Client.delete_security_group(GroupName='tug-of-war-rds')
except ClientError as e:
print(e)
......@@ -86,8 +68,8 @@ print("Create security group...")
print("------------------------------------")
try:
response = ec2Client.create_security_group(GroupName='tug-of-war',
Description='tug-of-war',
response = ec2Client.create_security_group(GroupName='tug-of-war-rds',
Description='tug-of-war-rds',
VpcId=vpc_id)
security_group_id = response['GroupId']
print('Security Group Created %s in vpc %s.' % (security_group_id, vpc_id))
......@@ -119,9 +101,9 @@ except ClientError as e:
print("Running new DB instance...")
print("------------------------------------")
response = rdsClient.create_db_instance(DBInstanceIdentifier="tug-of-war-db1",
response = rdsClient.create_db_instance(DBInstanceIdentifier="tug-of-war-rds-db1",
AllocatedStorage=20,
DBName='tug_of_war',
DBName='cloud_tug_of_war',
# Engine='mariadb',
Engine='mysql',
# General purpose SSD
......@@ -131,24 +113,28 @@ response = rdsClient.create_db_instance(DBInstanceIdentifier="tug-of-war-db1",
# Set this to true later?
MultiAZ=False,
MasterUsername='cloud_tug_of_war',
MasterUserPassword='cloudcloud',
MasterUserPassword='cloudpass',
VpcSecurityGroupIds=[security_group_id],
#DBInstanceClass='db.m3.2xlarge',
DBInstanceClass='db.t3.micro',
Tags=[
{'Key': 'Name', 'Value': 'tug-of-war-db1'},
{'Key': 'tug-of-war', 'Value': 'db'}
{'Key': 'Name', 'Value': 'tug-of-war-rds-db1'},
{'Key': 'tug-of-war-rds', 'Value': 'db'}
],
)
waiter = rdsClient.get_waiter('db_instance_available')
waiter.wait(DBInstanceIdentifier='tug-of-war-db1')
waiter.wait(DBInstanceIdentifier='tug-of-war-rds-db1')
#dbArn = response['DBInstance'][0]['DBInstanceArn']
dbEndpointAddress = response['DBInstance'][0]['Endpoint']['Address']
dbEndpointPort = response['DBInstance'][0]['Endpoint']['Port']
response = ec2Client.describe_security_groups(Filters=[{'Name': 'group-name', 'Values': ['tug-of-war-rds']}])
security_group_id = response.get('SecurityGroups', [{}])[0].get('GroupId', '')
print(dbEndpointAddress + ":" + dbEndpointPort)
response = rdsClient.describe_db_instances(DBInstanceIdentifier='tug-of-war-rds-db1')
print(response)
dbEndpointAddress = response['DBInstances'][0]['Endpoint']['Address']
dbEndpointPort = response['DBInstances'][0]['Endpoint']['Port']
print(str(dbEndpointAddress) + ":" + str(dbEndpointPort))
userDataWebServer = ('#!/bin/bash\n'
'# extra repo for RedHat rpms\n'
......@@ -160,14 +146,19 @@ userDataWebServer = ('#!/bin/bash\n'
'\n'
'service httpd start\n'
'\n'
'wget http://mmnet.informatik.hs-fulda.de/cloudcomp/tug-of-war-in-the-clouds.tar.gz\n'
'cp tug-of-war-in-the-clouds.tar.gz /var/www/html/\n'
# 'wget http://mmnet.informatik.hs-fulda.de/cloudcomp/tug-of-war-in-the-clouds.tar.gz\n'
# 'cp tug-of-war-in-the-clouds.tar.gz /var/www/html/\n'
# 'tar zxvf tug-of-war-in-the-clouds.tar.gz\n'
'cd /var/www/html\n'
'tar zxvf tug-of-war-in-the-clouds.tar.gz\n'
'wget https://gogs.informatik.hs-fulda.de/srieger/cloud-computing-msc-ai-examples/raw/master/example-projects/tug-of-war-in-the-clouds/web-content/index.php\n'
'wget https://gogs.informatik.hs-fulda.de/srieger/cloud-computing-msc-ai-examples/raw/master/example-projects/tug-of-war-in-the-clouds/web-content/cloud.php\n'
'wget https://gogs.informatik.hs-fulda.de/srieger/cloud-computing-msc-ai-examples/raw/master/example-projects/tug-of-war-in-the-clouds/web-content/config.php\n'
'\n'
'# change hostname of db connection\n'
'sed -i s/localhost/' + dbEndpointAddress + '/g /var/www/html/config.php\n'
'sed -i s/\\\'cloud\\\'/cloudcloud/g /var/www/html/config.php\n'
'\n'
'# create default table\n'
'echo "create table clouds ( cloud_id INT AUTO_INCREMENT, name VARCHAR(255) NOT NULL, value INT, max_value INT, PRIMARY KEY (cloud_id))" | mysql -h ' + dbEndpointAddress + ' -u cloud_tug_of_war -pcloudpass cloud_tug_of_war\n'
)
for i in range(1, 2):
......@@ -190,8 +181,8 @@ for i in range(1, 2):
{
'ResourceType': 'instance',
'Tags': [
{'Key': 'Name', 'Value': 'tug-of-war-webserver' + i},
{'Key': 'tug-of-war', 'Value': 'webserver'}
{'Key': 'Name', 'Value': 'tug-of-war-rds-webserver' + str(i)},
{'Key': 'tug-of-war-rds', 'Value': 'webserver'}
],
}
],
......
import time
import boto3
from botocore.exceptions import ClientError
region = 'eu-central-1'
availabilityZone = 'eu-central-1b'
imageId = 'ami-0cc293023f983ed53'
instanceType = 't3.nano'
keyName = 'srieger-pub'
client = boto3.setup_default_session(region_name=region)
ec2Client = boto3.client("ec2")
ec2Resource = boto3.resource('ec2')
rdsClient = boto3.client("rds")
response = ec2Client.describe_vpcs()
vpc_id = response.get('Vpcs', [{}])[0].get('VpcId', '')
elbv2Client = boto3.client('elbv2')
print("Deleting load balancer and deps...")
print("------------------------------------")
try:
response = elbv2Client.describe_load_balancers(Names=['tug-of-war-loadbalancer'])
loadbalancer_arn = response.get('LoadBalancers', [{}])[0].get('LoadBalancerArn', '')
response = elbv2Client.delete_load_balancer(LoadBalancerArn=loadbalancer_arn)
except ClientError as e:
print(e)
time.sleep(5)
try:
response = elbv2Client.describe_target_groups(Names=['tug-of-war-targetgroup'])
targetgroup_arn = response.get('TargetGroups', [{}])[0].get('TargetGroupArn', '')
response = elbv2Client.delete_target_group(TargetGroupArn=targetgroup_arn)
except ClientError as e:
print(e)
subnet_id = ec2Client.describe_subnets(
Filters=[
{
'Name': 'availability-zone', 'Values': [availabilityZone]
}
])['Subnets'][0]['SubnetId']
print("Deleting old instance...")
print("------------------------------------")
response = ec2Client.describe_instances(Filters=[{'Name': 'tag-key', 'Values': ['tug-of-war']}])
response = ec2Client.describe_instances(Filters=[{'Name': 'tag-key', 'Values': ['tug-of-war-rds']}])
print(response)
reservations = response['Reservations']
for reservation in reservations:
......@@ -48,10 +39,27 @@ for reservation in reservations:
instanceToTerminate = ec2Resource.Instance(instance['InstanceId'])
instanceToTerminate.wait_until_terminated()
print("Deleting old DB instance...")
print("------------------------------------")
try:
response = rdsClient.delete_db_instance(
DBInstanceIdentifier='tug-of-war-rds-db1',
SkipFinalSnapshot=True,
DeleteAutomatedBackups=True
)
except ClientError as e:
print(e)
waiter = rdsClient.get_waiter('db_instance_deleted')
waiter.wait(DBInstanceIdentifier='tug-of-war-rds-db1')
#time.sleep(5)
print("Delete old security group...")
print("------------------------------------")
try:
response = ec2Client.delete_security_group(GroupName='tug-of-war')
response = ec2Client.delete_security_group(GroupName='tug-of-war-rds')
except ClientError as e:
print(e)
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment