DevOps Bootcamp Final Project

Project Name: Trust Me, I’m a DevOps Engineer


šŸ”— Project Links


Local Setup

Git

Terraform Structure

Ansible Structure

Docker Image to ECR

git clone https://github.com 
mv lab-final-project docker
cd docker
aws ecr get-login-password --region ap-southeast-1 | docker login --username AWS --password-stdin <ECR-id>://; #Get in AWS Console view push commands
docker build -t devops-bootcamp-project-syedazam .
docker tag <ECR-Container-Name>:latest <ECR-id>://; #Get in AWS Console view push commands
- docker push <ECR-id>://; #Get in AWS Console view push commands

šŸ— Infrastructure (Terraform)

All infrastructure is provisioned using Terraform in ap-southeast-1.

Network

EC2 Instances

Role Private IP Access
Web Server 10.0.0.5 Public (EIP)
Ansible Controller 10.0.0.135 Private (SSM only)
Monitoring Server 10.0.0.136 Private (Cloudflare Tunnel)

Notes


āš™ļø Configuration Management (Ansible)

All Ansible tasks are executed from the Ansible Controller.

Web Server

Monitoring Server

Run Ansible

aws ssm start-session --target <ANSIBLE_CONTROLLER_INSTANCE_ID>
sudo -iu ubuntu
git clone https://github.com.git
cd devops-bootcamp-project/ansible

Ubuntu/devop-bootcamp-project/ansible/group_vars/cloudflare_token.yml

cd group_vars
nano cloudflare_token.yml 

Paste Inside cloudflare_token.yml

cloudflared_tunnel_token: "TOKEN_FROM_LOCAL_CLOUDFLARE_TOKEN.YML"

Run Playbook

cd ../playbooks
ansible-playbook /site.yml

Cloudflare + Cloudflare Tunnel (ZeroTrust)

Dns Record

SSL/TLS

Zero Trust (Tunnel)


Prometheus Dashboard

Boring Easy Approach


Git Hub Action Docker Build

AWS Console

Local

Add GitHub Secrets (so Actions can login to AWS)


Change DevOps Engineer > Syed Azam

Local

- git add .
- git commit -m "blabla"
- git push 

Documentation (local to git hub pages)

Docs/README.md