- app-prod/app-stage - Ubuntu 16.04 (required for Ruby 2.3.8)
- db-prod/app-stage - Ubuntu 20.04
- Application code https://github.com/express42/reddit
- Ruby 2.3.8 (required by this version of the application)
- MongoDB 4.4
- Firewall rules to open ports:
- 22 SSH connection
- 9292 Application work port
- 27017 Database connection
- 80 HTTP port
- Set terraform vars at ./terraform/prod/terraform.tfvars
- Required: project, public_key_path, user_ssh
- Optional: region, zone, machine_type
mv ./terraform/prod/terraform.tfvars.example ./terraform/prod/terraform.tfvars
cd terraform/prod
terraform apply -auto-approve
- Read Ansible docs to add GCE service account key.
- Set service account JSON and project id at playbooks/dynamo.gcp.yml
- Set ssh private key path and ssh username at playbooks/ansible.cfg
- Install role jdauphant.nginx:
ansible-galaxy install -r environments/stage/requirements.yml
ansible-playbook playbooks/site.yaml environments/stage/dynamo.gcp.yml
ansible-playbook playbooks/site.yaml environments/prod/dynamo.gcp.yml