Build Custom AMIs in AWS (Part 2: with Terraform + Packer)Introduction In Part 1, we learned how to build a custom AMI using Packer manually. In Part 2, we'll automate the entire workflow by integrating Terraform with Packer: ✅ Terraform triggers Packer to build the AMI ✅ Terraform launches EC2 instance u...Dec 25, 2025 · 5 min readbilalamjad.hashnode.dev
Build Custom AMIs in AWS (Part 1: with Packer)Launching a new EC2 instance often feels repetitive: connect via SSH, update packages, install Apache, start the service, and test the site. That’s 10–15 minutes of manual work every single time. Packer changes this workflow completely. Instead of re...Dec 24, 2025 · 5 min readbilalamjad.hashnode.dev
How to Get Azure Credentials Using CLI (for Terraform & GitLab CI/CD)To authenticate Terraform and GitLab CI/CD with Azure, you need four environment variables: ARM_SUBSCRIPTION_ID ARM_TENANT_ID ARM_CLIENT_ID ARM_CLIENT_SECRET These values come from an Azure Service Principal, which acts as a secure identity for...Dec 23, 2025 · 3 min readbilalamjad.hashnode.dev
Beginner’s Guide: Automate AWS Infrastructure with GitLab CI and TerraformIn this article, we will create AWS infrastructure using Terraform and then automate it using GitLab CI.We will create an S3 bucket, apply it from GitLab, and finally destroy it — all using a pipeline. This lab is perfect for beginners who want to un...Dec 21, 2025 · 3 min readbilalamjad.hashnode.dev
🚀 Introduction to GitLab CI: Create Your First PipelineEvery developer remembers the thrill of seeing their first pipeline run. In GitLab CI/CD, that moment comes with just a few lines of YAML. Continuous Integration and Continuous Deployment (CI/CD) is all about automating the way we build, test, and de...Dec 20, 2025 · 2 min readbilalamjad.hashnode.dev