This template is a POC to setup a Gitlab system with High Availability on Amazon Web Service Cloud.
This template is heavily inspired by Gitlab university : HA on AWS.
The project tries to follow Immutable server pattern and Infrastructure-as-Code principles by using :
- Packer to create Amazon Virtual Machine Images (AMI)
- Ansible to install and configure packages on these Virtual Machine Images when running Packer
- Terraform to create and orchestrate the cloud infrastructure
- cloud-init and jinja2-cli to finalize setup automatically when launching AWS instances from AMI
- Docker to run Continuous Integration in containers with Gitlab-CI
- a AWS account (Be careful this template implies creating billable resources on AWS cloud)
- a AWS Route 53 DNS zone already created (the template will add new subdomain DNS A records)
- a SSH Key pair to connect to Gitlab and AWS instances (see Github help for examples)
- Packer >= 0.12
- Terraform >= 8.2
- GNU Make or some Unix equivalent Implementation