Published on

Getting started with DevOps

Authors
  • avatar
    Name
    Vincenzo Campagnano
    Twitter

The best DevOps project for a beginner

After graduating and realizing that the next steps in the world of work would be in the Cloud & DevOps, I started looking for home-made projects that would help me brush up on those areas. After many homelabs virtualizing the entire world on my poor workstation, fortunately, I came across this post by a good samaritan. I must say, I'm glad I did it.

enthusiast baby gif

So here’s a quick summary of what I built and what I learned.


🧠 Why I Did This

Because building a static site is fast, highly educational, and an awesome excuse to finally buy the domain YourName.com. Seems to do DevOps for real 😜


🧰 Tech Stack

  • Cloud provider: Microsoft Azure
  • IaC: Terraform
  • Configuration Management: Ansible
  • CI/CD: GitLab CI
  • Static Site Generator: Next.js (Tailwind Starter Blog)
  • Web server: NGINX

🚀 What I Did (Step-by-Step)

  1. Bought a domain on Porkbun
    Myname.com was finally mine.

  2. Created two Git repositories on GitLab
    One for the static site, one for Infrastructure as Code.
    Git hygiene is important, folks.

  3. Provisioned a VM on Azure using Terraform
    The VM runs Ubuntu Server 22.04, deployed with clean, modular Terraform code. This includes:

    • Resource Group: A container for all resources.
    • Virtual Network and Subnet: To create an isolated network.
    • Public IP Address: For public access to the VM.
    • Network Security Group (NSG): To open only the necessary ports (SSH 22, HTTP 80, HTTPS 443).
    • Network Interface (NIC): Connecting the VM to the network.
    • Linux Virtual Machine: A minimal Ubuntu 22.04 LTS Gen2 using a low-cost SKU (Standard_B1s).
  4. Wrote Ansible playbooks to configure the VM
    Installed NGINX, set up the folder permissions, copied SSL certs, and deployed my custom NGINX config. I even split tasks web and ssl into roles because I’m fancy like that.

  5. Configured SSL with Porkbun certs
    Yes, you can (and you should) bring your own certificate! Through Ansible I placed the certs in /etc/nginx/ssl, updated the NGINX site config, and reloaded the service.

  6. Set up CI/CD with GitLab CI
    My pipeline builds the site, caches dependencies, and deploys to my server via SSH + rsync. Now everytime someone push to main branch the changes are live.


💸 Cost Breakdown

ItemYearly Cost
Domain (Porkbun)~$10
Azure VM (B1s)~$50
SSL Cert (Porkbun)Free bundle
GitLab CIFree

Basically some coffee money ☕


📌 Final Thoughts

If you’re like me, fresh out of uni and ready to jump into Cloud & DevOps, build yourself a static site with full automation. You’ll gain confidence, skills, and a domain name to brag about.


✨ Want to see the code?
Head over to the GitHub repo for this article.

Happy hacking,
vinzcamp8