DEV Community

Smallsun2025
Smallsun2025

Posted on

Deploy Azure Infrastructure with Terraform: RG + VNet + Subnet

🧭 Introduction

When starting with Azure infrastructure as code (IaC), Terraform is one of the most powerful tools available. In this post, we’ll walk through how to use Terraform to create a basic network setup on Azure β€” including a Resource Group, Virtual Network (VNet), and Subnet. This is an ideal starting point for beginners who want to automate infrastructure deployment.


πŸ—‚ Project Structure

The project consists of four core Terraform files:
azure-terraform-infra-demo/
β”œβ”€β”€ main.tf # Main resource definitions
β”œβ”€β”€ variables.tf # Input variable declarations
β”œβ”€β”€ terraform.tfvars # Variable values
β”œβ”€β”€ outputs.tf # Output values

Each file serves a specific purpose and keeps the configuration modular and easy to manage.


πŸ”§ Terraform Configuration Breakdown

1. Resource Group

resource "azurerm_resource_group" "rg" {
name = var.resource_group_name
location = var.location
}
This creates a logical container for all other Azure resources.

  1. Virtual Network
    resource "azurerm_virtual_network" "vnet" {
    name = "demo-vnet"
    address_space = ["10.0.0.0/16"]
    location = azurerm_resource_group.rg.location
    resource_group_name = azurerm_resource_group.rg.name
    }
    Defines a virtual network in the specified resource group.

  2. Subnet
    resource "azurerm_subnet" "subnet" {
    name = "demo-subnet"
    resource_group_name = azurerm_resource_group.rg.name
    virtual_network_name = azurerm_virtual_network.vnet.name
    address_prefixes = ["10.0.1.0/24"]
    }
    Creates a subnet inside the virtual network.

πŸš€ How to Deploy
Once you have all files ready, you can deploy the infrastructure using the following steps. Make sure you have the Azure CLI and Terraform installed locally.

Step 1: Login to Azure
az login

Step 2: Initialize Terraform
terraform init

Step 3: Preview the Plan
terraform plan

Step 4: Apply the Configuration
terraform apply

Type yes when prompted to confirm, and Terraform will begin creating the resources on Azure.

βœ… Conclusion
This simple project is a great starting point for anyone new to Terraform on Azure. By automating the creation of a Resource Group, Virtual Network, and Subnet, you can begin building more advanced infrastructure in a modular and repeatable way.

In future posts, I plan to share:

How to deploy Azure Virtual Machines with NSGs

How to create snapshots and managed images

Comparing Terraform and Bicep for infrastructure as code

Building multi-subnet architectures with internal routing

Thanks for reading! Feel free to ⭐️ the GitHub repo or leave a comment if you found this helpful.

Top comments (0)