EBMultiApp

Deploy multiple applications/services/websites on a single Elastic Beanstalk environment. Fork from ElasticDeploy


Keywords
aws, elastic, beanstalk, multi, deployment
License
MIT
Install
pip install EBMultiApp==0.1.0

Documentation

ElasticDeploy πŸ‘

Deploy multiple applications/services/websites on a single AWS Elastic Beanstalk environment.

Unfortunately, there is no easy way to run multiple applications/services/websites, which have their own GIT repository, on a single AWS Elastic Beanstalk environment. ElasticDeploy helps developers solving that problem.

How does it work?

First, you need to create a main deployment repository. Within the root of this repository, ElasticDeploy will store a file called edConfig.json. This file keeps the information of the external repositories. Each external will be cloned into the main deployment repository (see 'Sample Project Structure').

In addition, all external repositories are automatically added to your .gitignore file. This means that all changes should happen in the external repository itself. It also creates a script in your .ebextensions folder, where all vhosts are added.

Getting Started

  1. Install ElasticDeploy (PyPI package)
    pip install ElasticDeploy

  2. Create new main repository
    mkdir ed-deployment-repository && cd ed-deployment-repository

  3. Initialize ElasticDeploy
    elasticdeploy init

  4. Follow the initialization guide

  5. Create and deploy all applications/services/websites
    elasticdeploy createAndDeploy

Sample Project Structure

ed-deployment-repository
β”‚   .gitignore
β”‚   edConfig.json    
β”‚
└───.git
β”‚
└───.elasticbeanstalk
β”‚       config.yml
β”‚   
└───.ebextensions
β”‚       98ElasticDeploy.config
β”‚
└───project1
β”‚       file1
β”‚       file2
β”‚       subfolder1
β”‚       subfolder2
β”‚   
└───project2
β”‚       file1
β”‚       file2
β”‚       subfolder1
β”‚       subfolder2
β”‚   
└───project3
β”‚       file1
β”‚       file2
β”‚       subfolder1
β”‚       subfolder2

All Commands

Show help page
elasticdeploy help

Initialize ElasticDeploy
elasticdeploy init

Clone all repositories
elasticdeploy cloneAll

Add a new repository
elasticdeploy newRepo

Clone all repositories
elasticdeploy cloneAll

Create application
elasticdeploy create

Deploy latest application
elasticdeploy deploy

Create and deploy application
elasticdeploy createAndDeploy

Requirements

  • PYTHON - Python 2.7
  • EB-CLI - Elastic Beanstalk Command Line Interface
  • GIT - GIT Command Line Interface