- https://www.terraform.io/ (install this)
- https://www.ansible.com/ (install this)
- https://circleci.com/
- https://hub.docker.com/
export AWS_ACCESS_KEY_ID=XXXXXXXXXX
export AWS_SECRET_ACCESS_KEY=XXXXXXXXXX
export TF_VAR_aws_access_key=$AWS_ACCESS_KEY_ID
export TF_VAR_aws_secret_key=$AWS_SECRET_ACCESS_KEY
export TF_VAR_aws_ssh_pub_key="XXXXXXXXXX"cd terraform
terraform apply(use the ssh private key corespondent to the one used in step 1)
cd ansible
ansible-playbook deploy.ymlIntegration configured with Circle CI. Every branch is tested for each commit. Pull requests that pass tests and get merged into master get tested and then deployed using the ansible playbook
- Store terraform state file in remote S3/Atlas for colaboration
- Extend tests to cover terraform and ansible files
- Gracefull restart of nginx container: docker kill -s HUP
- Wrap all useful commands with a Makefile