cloudstore-aplcache
Changes
.gitignore 1(+1 -0)
deployment-scripts/platform/generator/src/main/java/eu/cloudscale/showcase/test/JDBCtest.java 34(+0 -34)
deployment-scripts/platform/generator/src/main/resources/database/database.aws.hibernate.properties 6(+3 -3)
deployment-scripts/platform/generator/src/main/resources/database/database.aws.mongodb.properties 6(+3 -3)
deployment-scripts/platform/generator/src/main/resources/generate/database.aws.hibernate.properties 6(+3 -3)
deployment-scripts/software/showcase/src/main/java/eu/cloudscale/showcase/test/JDBCtest.java 34(+0 -34)
deployment-scripts/software/showcase/src/main/resources/database/database.aws.hibernate.properties 6(+3 -3)
Details
.gitignore 1(+1 -0)
diff --git a/.gitignore b/.gitignore
index 6b1bb78..64f0fa5 100644
--- a/.gitignore
+++ b/.gitignore
@@ -11,3 +11,4 @@ deployment-scripts/platform/generator/src/main/resources/database/database.aws.m
distributed-jmeter/config.ini
distributed-jmeter/conf/config.ini
distributed-jmeter/conf/config.ini.production
+deployment-scripts/platform/rds-tpcw-dump-15.1.2014.sql
diff --git a/deployment-scripts/infrastructure/aws/aws-create-ami.py b/deployment-scripts/infrastructure/aws/aws-create-ami.py
index 2036931..e1ec3db 100644
--- a/deployment-scripts/infrastructure/aws/aws-create-ami.py
+++ b/deployment-scripts/infrastructure/aws/aws-create-ami.py
@@ -13,6 +13,7 @@ class EC2CreateAMI:
aws_secret_access_key=self.cfg.get('EC2', 'aws_secret_access_key'))
ami_id = self.create_ami(self.cfg.get('infrastructure', 'ip_address'))
+ print ami_id
self.cfg.save_option(config_file,'infrastructure', 'ami_id', ami_id)
print "Done"
diff --git a/deployment-scripts/infrastructure/aws/aws-create-autoscalability.py b/deployment-scripts/infrastructure/aws/aws-create-autoscalability.py
index beaaca0..350cf5f 100644
--- a/deployment-scripts/infrastructure/aws/aws-create-autoscalability.py
+++ b/deployment-scripts/infrastructure/aws/aws-create-autoscalability.py
@@ -15,7 +15,7 @@ class Autoscalability:
self.conn = boto.ec2.autoscale.connect_to_region(self.cfg.get('EC2', 'region'),
aws_access_key_id=self.cfg.get('EC2', 'aws_access_key_id'),
aws_secret_access_key=self.cfg.get('EC2', 'aws_secret_access_key'))
- lb_name = self.create_load_balancer()
+ lb_name = self.cfg.get('infrastructure', 'loadbalancer_name')
self.create_security_group('http', 'Security group for HTTP', '0.0.0.0/0', '80')
self.create_security_group('ssh', 'Security group for SSH', '0.0.0.0/0', '22')
@@ -123,22 +123,11 @@ class Autoscalability:
if str(e.error_code) != 'InvalidGroup.Duplicate':
raise
- def create_load_balancer(self):
- print "Creating load balancer ..."
- conn = boto.ec2.elb.connect_to_region(self.cfg.get('EC2', 'region'),
- aws_access_key_id=self.cfg.get('EC2', 'aws_access_key_id'),
- aws_secret_access_key=self.cfg.get('EC2', 'aws_secret_access_key'))
-
- zones = self.cfg.get('EC2', 'availability_zones').split(",")
- ports = [(80, 80, 'http')]
- lb = conn.create_load_balancer('cloudscale-lb', zones, ports)
-
- return lb.name
if __name__ == "__main__":
check_args(1, "<config_path>")
_, cfg, key_name, key_pair = parse_args()
-
+ print "Autoscalability"
Autoscalability(cfg, key_name, key_pair)
\ No newline at end of file
diff --git a/deployment-scripts/platform/aws/configure-rds.py b/deployment-scripts/platform/aws/configure-rds.py
index d5eff6f..458cc5e 100644
--- a/deployment-scripts/platform/aws/configure-rds.py
+++ b/deployment-scripts/platform/aws/configure-rds.py
@@ -31,10 +31,10 @@ class ConfigureRDS:
for i in xrange(int(num)):
print "Creating read replica " + str(i+1)
try:
- instance = self.conn.create_dbinstance_read_replica('cloudscale-replica' + str(i+1), 'cloudscale-master', 'db.t1.micro', availability_zone="eu-west-1a")
+ instance = self.conn.create_dbinstance_read_replica('cloudscale-replica' + str(i+1), 'cloudscale-master', self.cfg.get('RDS', 'instance_type'), availability_zone="eu-west-1a")
except boto.exception.BotoServerError as e:
if not e.error_code == 'DBInstanceAlreadyExists':
- raise
+ raise e
finally:
instance = self.conn.get_all_dbinstances(instance_id='cloudscale-replica' + str(i+1))[0]
@@ -63,7 +63,8 @@ class ConfigureRDS:
db = self.cfg.get('RDS', 'database_name')
user = self.cfg.get('RDS', 'database_user')
passwd = self.cfg.get('RDS', 'database_pass')
- cmd = [os.path.abspath("dump.sh"), str(instance.endpoint[0]), user, passwd, db, dump_file]
+ dump_path = os.path.abspath(os.path.join(os.path.dirname(__file__), 'dump.sh'))
+ cmd = [dump_path, str(instance.endpoint[0]), user, passwd, db, dump_file]
subprocess.call(cmd)
def write_showcase_database_config(self, instance):
@@ -108,7 +109,7 @@ class ConfigureRDS:
print "Creating RDS master instance ..."
try:
- instance = self.conn.create_dbinstance('cloudscale-master', 5, 'db.t1.micro', 'root', self.db_password, db_name='tpcw', vpc_security_groups=[sg_id], availability_zone='eu-west-1a', backup_retention_period=0)
+ instance = self.conn.create_dbinstance('cloudscale-master', 5, self.cfg.get('RDS', 'instance_type'), 'root', self.db_password, db_name='tpcw', vpc_security_groups=[sg_id], availability_zone='eu-west-1a', backup_retention_period=1)
except boto.exception.BotoServerError as e:
if not e.error_code == 'DBInstanceAlreadyExists':
raise
diff --git a/deployment-scripts/platform/generator/src/main/resources/database/database.aws.hibernate.properties b/deployment-scripts/platform/generator/src/main/resources/database/database.aws.hibernate.properties
index de37633..6930b13 100644
--- a/deployment-scripts/platform/generator/src/main/resources/database/database.aws.hibernate.properties
+++ b/deployment-scripts/platform/generator/src/main/resources/database/database.aws.hibernate.properties
@@ -1,6 +1,6 @@
jdbc.dbtype=mysql
jdbc.driverClassName=com.mysql.jdbc.Driver
-jdbc.url=jdbc:mysql://master/databasename
-jdbc.username=user
-jdbc.password=password
+jdbc.url=jdbc:mysql://master,slave1,slave2/tpcw
+jdbc.username=<user>
+jdbc.password=<passw>
jdbc.hibernate.dialect=org.hibernate.dialect.MySQLDialect
diff --git a/deployment-scripts/platform/generator/src/main/resources/database/database.aws.mongodb.properties b/deployment-scripts/platform/generator/src/main/resources/database/database.aws.mongodb.properties
index ace5797..78dab16 100644
--- a/deployment-scripts/platform/generator/src/main/resources/database/database.aws.mongodb.properties
+++ b/deployment-scripts/platform/generator/src/main/resources/database/database.aws.mongodb.properties
@@ -1,6 +1,6 @@
jdbc.dbtype=mongodb
mongodb.dbname=tpcw
-mongodb.host=ip
+mongodb.host=<ip>
mongodb.port=27017
-mongodb.username=user
-mongodb.password=password
+mongodb.username=<user>
+mongodb.password=<pass>
\ No newline at end of file
diff --git a/deployment-scripts/platform/generator/src/main/resources/generate/database.aws.hibernate.properties b/deployment-scripts/platform/generator/src/main/resources/generate/database.aws.hibernate.properties
index 58557db..ab0a963 100644
--- a/deployment-scripts/platform/generator/src/main/resources/generate/database.aws.hibernate.properties
+++ b/deployment-scripts/platform/generator/src/main/resources/generate/database.aws.hibernate.properties
@@ -1,6 +1,6 @@
jdbc.dbtype=mysql
jdbc.driverClassName=com.mysql.jdbc.Driver
-jdbc.url=jdbc:mysql://cloudscale-master.caf1fqo3vxnr.eu-west-1.rds.amazonaws.com/tpcw
-jdbc.username=root
-jdbc.password=password
+jdbc.url=jdbc:mysql://master/tpcw
+jdbc.username=<user>
+jdbc.password=<pass>
jdbc.hibernate.dialect=org.hibernate.dialect.MySQLDialect
diff --git a/deployment-scripts/platform/generator/src/main/resources/generate/database.properties b/deployment-scripts/platform/generator/src/main/resources/generate/database.properties
index 58557db..ab0a963 100644
--- a/deployment-scripts/platform/generator/src/main/resources/generate/database.properties
+++ b/deployment-scripts/platform/generator/src/main/resources/generate/database.properties
@@ -1,6 +1,6 @@
jdbc.dbtype=mysql
jdbc.driverClassName=com.mysql.jdbc.Driver
-jdbc.url=jdbc:mysql://cloudscale-master.caf1fqo3vxnr.eu-west-1.rds.amazonaws.com/tpcw
-jdbc.username=root
-jdbc.password=password
+jdbc.url=jdbc:mysql://master/tpcw
+jdbc.username=<user>
+jdbc.password=<pass>
jdbc.hibernate.dialect=org.hibernate.dialect.MySQLDialect
diff --git a/deployment-scripts/software/cloudscale-apache-virtualhost.conf b/deployment-scripts/software/cloudscale-apache-virtualhost.conf
index f099cfd..20ea4c7 100644
--- a/deployment-scripts/software/cloudscale-apache-virtualhost.conf
+++ b/deployment-scripts/software/cloudscale-apache-virtualhost.conf
@@ -1,4 +1,6 @@
<VirtualHost *:80>
+ ServerName %servername%
+
ProxyPreserveHost On
# showcase-1-a (MySQL)
ProxyPass /showcase-1-a http://localhost:8080/showcase-1-a
diff --git a/deployment-scripts/software/cloudscale-vm-setup.sh b/deployment-scripts/software/cloudscale-vm-setup.sh
index ed61391..2195889 100644
--- a/deployment-scripts/software/cloudscale-vm-setup.sh
+++ b/deployment-scripts/software/cloudscale-vm-setup.sh
@@ -2,8 +2,13 @@
sudo apt-get install -y zip tomcat7 apache2 openjdk-7-jdk
-sudo a2enmod proxy
+sudo a2enmod proxy proxy_http
sudo cp cloudscale.conf /etc/apache2/sites-available/
sudo a2ensite cloudscale
sudo /etc/init.d/apache2 restart
-sudo /etc/init.d/tomcat7 restart
+
+sudo ln -s /var/lib/tomcat7/shared /usr/share/tomcat7/shared
+sudo ln -s /var/lib/tomcat7/server /usr/share/tomcat7/server
+sudo ln -s /var/lib/tomcat7/common /usr/share/tomcat7/common
+
+sudo /etc/init.d/tomcat7 restart
\ No newline at end of file
diff --git a/deployment-scripts/software/deploy-showcase.py b/deployment-scripts/software/deploy-showcase.py
index ee01ef4..021aca9 100644
--- a/deployment-scripts/software/deploy-showcase.py
+++ b/deployment-scripts/software/deploy-showcase.py
@@ -62,8 +62,8 @@ class DeploySoftware:
scp.put(self.mysql_version, 'showcase-1-a.war')
#scp.put(self.nosql_version, 'showcase-1-b.jar')
- ssh.exec_command("sudo unzip showcase-1-a.war -d showcase-1-a")
- ssh.exec_command("sudo cp -r showcase-1-a " + self.remote_deploy_path)
+ #ssh.exec_command("sudo unzip showcase-1-a.war -d showcase-1-a")
+ ssh.exec_command("sudo cp -r showcase-1-a.war " + self.remote_deploy_path)
ssh.exec_command("sudo /etc/init.d/tomcat7 restart")
print "Successfully finished installation"
diff --git a/deployment-scripts/software/install-tomcat-apache.py b/deployment-scripts/software/install-tomcat-apache.py
index a57b807..868db05 100644
--- a/deployment-scripts/software/install-tomcat-apache.py
+++ b/deployment-scripts/software/install-tomcat-apache.py
@@ -4,6 +4,8 @@ import paramiko
import ConfigParser
import sys, os
from common.Cloudscale import *
+import re
+import subprocess
class InstallTomcatApache:
@@ -16,7 +18,20 @@ class InstallTomcatApache:
self.setup_instance()
self.write_config()
+ def create_virtual_host(self):
+ fr = open(os.path.join(os.path.dirname(__file__), 'cloudscale-apache-virtualhost.conf'), 'r')
+ fw = open(os.path.join(os.path.dirname(__file__), 'cloudscale-apache-virtualhost.conf.new'), 'w+')
+
+ pat = re.compile('%servername%')
+ for line in fr:
+ res = pat.search(line)
+ if res is not None:
+ fw.write(line.replace('%servername%', self.cfg.get('infrastructure', 'loadbalancer_url')))
+ else:
+ fw.write(line)
+
def setup_instance(self):
+ self.create_virtual_host()
for ip_address in self.ip_addresses:
if sys.platform == 'win32':
self.windows_shell(ip_address)
@@ -34,7 +49,6 @@ class InstallTomcatApache:
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
-
if key_pair:
ssh.connect(ip_address, username=self.remote_user, key_filename=os.path.abspath(self.key_pair))
else:
@@ -44,7 +58,7 @@ class InstallTomcatApache:
scp = paramiko.SFTPClient.from_transport(ssh.get_transport())
scp.put(os.path.abspath('%s%scloudscale-vm-setup.sh' % (working_dir, os.path.sep)), 'cloudscale-vm-setup.sh')
- scp.put(os.path.abspath('%s%scloudscale-apache-virtualhost.conf' % (working_dir, os.path.sep)), 'cloudscale.conf')
+ scp.put(os.path.abspath('%s%scloudscale-apache-virtualhost.conf.new' % (working_dir, os.path.sep)), 'cloudscale.conf')
_, stdout, _ = ssh.exec_command("sudo sh cloudscale-vm-setup.sh")
stdout.readlines()
diff --git a/deployment-scripts/software/showcase/src/main/resources/database/database.aws.hibernate.properties b/deployment-scripts/software/showcase/src/main/resources/database/database.aws.hibernate.properties
index ef59182..61f5d41 100644
--- a/deployment-scripts/software/showcase/src/main/resources/database/database.aws.hibernate.properties
+++ b/deployment-scripts/software/showcase/src/main/resources/database/database.aws.hibernate.properties
@@ -1,6 +1,6 @@
jdbc.dbtype=mysql
jdbc.driverClassName=com.mysql.jdbc.ReplicationDriver
-jdbc.url=jdbc:mysql:replication://url1,url2/tpcw
-jdbc.username=root
-jdbc.password=password
+jdbc.url=jdbc:mysql:replication://master,slave1,slave2/tpcw
+jdbc.username=<user>
+jdbc.password=<pass>
jdbc.hibernate.dialect=org.hibernate.dialect.MySQLDialect
diff --git a/deployment-scripts/software/showcase/src/main/resources/database/database.aws.mongodb.properties b/deployment-scripts/software/showcase/src/main/resources/database/database.aws.mongodb.properties
index 59da231..78dab16 100644
--- a/deployment-scripts/software/showcase/src/main/resources/database/database.aws.mongodb.properties
+++ b/deployment-scripts/software/showcase/src/main/resources/database/database.aws.mongodb.properties
@@ -1,6 +1,6 @@
jdbc.dbtype=mongodb
mongodb.dbname=tpcw
-mongodb.host=127.0.0.1
+mongodb.host=<ip>
mongodb.port=27017
-mongodb.username=tpcw
-mongodb.password=password
+mongodb.username=<user>
+mongodb.password=<pass>
\ No newline at end of file
diff --git a/deployment-scripts/software/showcase/src/main/resources/generate/database.aws.hibernate.properties b/deployment-scripts/software/showcase/src/main/resources/generate/database.aws.hibernate.properties
index f693399..ab0a963 100644
--- a/deployment-scripts/software/showcase/src/main/resources/generate/database.aws.hibernate.properties
+++ b/deployment-scripts/software/showcase/src/main/resources/generate/database.aws.hibernate.properties
@@ -1,6 +1,6 @@
jdbc.dbtype=mysql
jdbc.driverClassName=com.mysql.jdbc.Driver
-jdbc.url=jdbc:mysql://url1/tpcw
-jdbc.username=root
-jdbc.password=password
+jdbc.url=jdbc:mysql://master/tpcw
+jdbc.username=<user>
+jdbc.password=<pass>
jdbc.hibernate.dialect=org.hibernate.dialect.MySQLDialect