This project provides a deployment of a simple GO application within AWS cloud VPC. It demonstrates, at a simple level, continuous integration through automation. The project uses Terraform to provision the infrastructure and Ansible to configure the app, web and build servers. The build server (Jenkins) is configured to build a simple GO application and deploy it to the app servers if the build is stable. The web server is configured to load balance requests in a round-robin fashion to the app servers. Everything is built and configured using one command.
You will require the following to run the project from a control machine:
This project also assumes that you have an AWS account with a VPC, subnet and key pair available. It has been tested against official Debian Jessie
EC2 AMIs. Please ensure that you have the private key within the working directory of the project. You will also need the GO App to deploy, which should be located on a public Git repo or you can use the one located here: sample-go-app
Once all the requirements are met on your control machine, clone this repository to your working directory:
git clone [GITURL]
Now run the deploy-env.py
python script and supply the necessary information when prompted:
python deploy-env.py
The script will output to a log file goAppEnvDeployment.log
within the working directory of the script which will give you clues if something goes wrong.