Skip to end of banner
Go to start of banner

Synapse-Stack-Builder

Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 2 Next »

Introduction

The Synapse-Stack-Builder project contains tools for building an entire Synapse stack of AWS resources.  Currently, the Synapse stack depends on the following AWS resources:

  • Elastic beanstalk - We currently have three environments deployed to Tomcat 7.x
    • Repository Services - The main Synapse REST API.
    • Authentication Services - The REST API for Authentication.
    • Portal - The main Synapse Web site.
  • RDS - All transactional Synapse meta data is store in a MySQL database.
  • CloudSearch - Search and Query features are currently supported by
  • SNS - All database alarms are currently configured to send emails to the development team.

 

AWS Prerequisites

In order to run the Synapse-Stack-Builder there are few steps need to setup the AWS account.  All passwords and certicates must be upload to an S3 bucket in the AWS account before starting:

  1. Administration level AWS account access key and secret key.
  2. You will need an S3 bucket named: '${stack}-default'.
    1. This bucket should contain the property file with all of your stack's passwords named '${stack}-default.properties
  3. SSL Certificates used for the Elastic Load Balancer must be placed in the S3 bucket named: '${stack}-default'. The following files must be there:
    1. SSL/gd_bundle.crt
    2. SSL/gd_intermediate.crt
    3. SSL/sagebase.org.crt

Building a Stack

Once all of the AWS prerequisites are met we are ready to run the stack builder code.  There is a minimum amount of configuration information that you must provide to the stack builder.  This is done by passing Java properties file path to the stack builder.  To setup this file start by making a copy of the following file:

Synapse-Stack-Builder/src/main/resources/required-builder.properties

Here is an example of how to fill out this property file:

#The Amazon Web Services access key (id) need to connect to AWS
org.sagebionetworks.aws.access.key=<YOUR_ACCES_KEY>
#The Amazon Web Services secret key (password) need to connect to AWS
org.sagebionetworks.aws.secret.key=<YOUR_SECRET_KEY>
# This encryption key will be used to encrypt all passwords in the settings file
org.sagebionetworks.encryption.key=<YOUR_ENCRYPTION_KEY>
# The name of this stack (prod or dev)
org.sagebionetworks.stack=dev
# The name of this stack instance. The unique id of this instance of the stack.  For example, instance=B would be used to create prodB.
# For a dev stack this should be your last name.  For example, instance=hill would be used to create devhill
org.sagebionetworks.stack.instance=hill
# The version of the portal war to deploy.
org.sagebionetworks.portal.war.version=1.5.3
# The version of the authentication war to deploy.
org.sagebionetworks.auth.war.version=1.4.0
# The version of the repository war to deploy.
org.sagebionetworks.repo.war.version=1.4.0
  • No labels