This is my first DevOps project where I try to deploy my static site. Visit https://www.cheeseong-luan.dev/ to see my deployed portfolio site.
- IaC and Infrastructure Provisioning: Terraform
- Deployment and Configuration Management: Ansible
- Cloud Platform and Server: AWS
- Static Site Generator: Hugo
- Web server: Nginx
- CI/CD: GitHub Actions
-
Terraform IaC
- Instance
- Security Group
- VPC
- Terraform Cloud
- Elastic IP for static public IP
-
Hugo
- Customise portfolio site
-
Domain
- Get a domain (cheeseong-luan.dev)
- Add DNS record on registrar to point to provisioned EIP
-
Configure nginx server
- Set up Certbot
- Get a SSL Cert
- Automate SSL renewal
- Point DNS record to EIP
- Ensure https://cheeseong-luan.dev works
- Set up Certbot
-
Ansible
- Set up Inventory
- Set up Playbook
- Synchronise built site to server
- Change ownership to nginx
-
GitHub Actions
-
Write CI/CD workflow / pipeline
-
Build stage
- Set up and build Hugo site with hugo commands
- Store/Upload built site as artifact on GitHub
-
Deploy stage
- Set up ansible
- Use repository secret to interact with server
- Run ansible playbook to deploy
-
-
Store Ansible secrets as repository secret
-