cloudstore-developers
Changes
deployment-scripts/config.ini 16(+8 -8)
deployment-scripts/install.sh 4(+3 -1)
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)
deployment-scripts/software/showcase/src/main/resources/database/database.aws.mongodb.properties 6(+3 -3)
deployment-scripts/software/showcase/src/main/resources/generate/database.aws.hibernate.properties 6(+3 -3)
distributed-jmeter/conf/nginx.conf 5(+0 -5)
Details
deployment-scripts/config.ini 16(+8 -8)
diff --git a/deployment-scripts/config.ini b/deployment-scripts/config.ini
index 367ecee..a015e8e 100644
--- a/deployment-scripts/config.ini
+++ b/deployment-scripts/config.ini
@@ -1,22 +1,22 @@
[EC2]
-aws_access_key_id =
-aws_secret_access_key =
+aws_access_key_id =
+aws_secret_access_key =
region = eu-west-1
availability_zones = eu-west-1a
ami_id = ami-480bea3f
-instance_type = t1.micro
-key_name = key-pair
-key_pair = /path/to/key-pair.pem
+instance_type = m1.small
+key_name = keypair
+key_pair = /path/to/keypair.pem
[RDS]
generate_type = dump
generate_dump_path = /path/to/rds-tpcw-dump-15.1.2014.sql
region = eu-west-1
-instance_type = db.t1.micro
+instance_type = db.m1.large
master_identifier = cloudscale-master
replica_identifier = cloudscale-replica
database_name = tpcw
-database_user = root
-database_pass = password
+database_user = <user>
+database_pass = <pass>
num_replicas = 3
driver = com.mysql.jdbc.ReplicationDriver
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/infrastructure/aws/aws-create-loadbalancer.py b/deployment-scripts/infrastructure/aws/aws-create-loadbalancer.py
new file mode 100644
index 0000000..4a77ceb
--- /dev/null
+++ b/deployment-scripts/infrastructure/aws/aws-create-loadbalancer.py
@@ -0,0 +1,31 @@
+from common.Cloudscale import check_args
+from common.Cloudscale import parse_args
+import boto.ec2.elb
+
+class CreateLoadBalancer:
+
+ def __init__(self, cfg, key_name, key_pair, config_path):
+ self.cfg = cfg
+ self.key_pair = key_pair
+ self.key_name = key_name
+ lb = self.create_load_balancer()
+ self.cfg.save_option(config_path, 'infrastructure', 'loadbalancer_name', lb.name)
+ self.cfg.save_option(config_path, 'infrastructure', 'loadbalancer_url', lb.dns_name)
+
+ 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
+
+if __name__ == "__main__":
+ check_args(1, "<config_path>")
+ config_path, cfg, key_name, key_pair = parse_args()
+
+ CreateLoadBalancer(cfg, key_name, key_pair, config_path)
\ No newline at end of file
deployment-scripts/install.sh 4(+3 -1)
diff --git a/deployment-scripts/install.sh b/deployment-scripts/install.sh
old mode 100755
new mode 100644
index 8fef1e0..ce4f372
--- a/deployment-scripts/install.sh
+++ b/deployment-scripts/install.sh
@@ -1,6 +1,6 @@
#!/bin/bash
-function usage
+usage ()
{
echo "Usage:"
echo "$ ./install.sh <aws|openstack> <config>"
@@ -10,6 +10,7 @@ if [ $# -lt 2 ]
then
usage
exit
+fi
if [ $1 == 'aws' ]
then
@@ -17,6 +18,7 @@ then
python infrastructure/aws/aws-remove-all.py $2
python platform/aws/configure-rds.py $2
python infrastructure/aws/aws-create-instance.py $2
+ python infrastructure/aws/aws-create-loadbalancer.py $2
python software/install-tomcat-apache.py $2
python software/deploy-showcase.py $2
python infrastructure/aws/aws-create-ami.py $2
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..b578dba 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,slave3/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
distributed-jmeter/conf/nginx.conf 5(+0 -5)
diff --git a/distributed-jmeter/conf/nginx.conf b/distributed-jmeter/conf/nginx.conf
index 0ebe29d..4fdf997 100644
--- a/distributed-jmeter/conf/nginx.conf
+++ b/distributed-jmeter/conf/nginx.conf
@@ -2,11 +2,6 @@ upstream class_app_server {
server 127.0.0.1:8001 fail_timeout=0;
}
-#server {
-# server_name cloudconference;
-# rewrite ^(.*) http://www.cloudconference.eu$1 permanent;
-#}
-
server {
listen 80;
client_max_body_size 4G;