Skip to content

Latest commit

 

History

History
142 lines (95 loc) · 7.16 KB

File metadata and controls

142 lines (95 loc) · 7.16 KB

Azure Infrastructure Terraform Templates

Costa Rica

GitHub Cloud2BR OSS - Learning Hub

Last updated: 2026-04-06


This approach focuses on setting up the required infrastructure via Terraform. It allows for source control of not only the solution code, connections, and setups but also the infrastructure itself.

When Container App approach:

image image

When Web App approach:

Centered Image
Centered Image

Prerequisites

  • An Azure subscription is required. All other resources, including instructions for creating a Resource Group, are provided in this workshop.
  • Contributor role assigned or any custom role that allows: access to manage all resources, and the ability to deploy resources within subscription.
  • Please ensure that:

Overview

Templates structure:

.
├── README.md
├────── main.tf
├────── variables.tf
├────── provider.tf
├────── terraform.tfvars
├────── outputs.tf
  • main.tf (Main Terraform configuration file): This file contains the core infrastructure code. It defines the resources you want to create, such as virtual machines, networks, and storage. It's the primary file where you describe your infrastructure in a declarative manner.
  • variables.tf (Variable definitions): This file is used to define variables that can be used throughout your Terraform configuration. By using variables, you can make your configuration more flexible and reusable. For example, you can define variables for resource names, sizes, and other parameters that might change between environments.
  • provider.tf (Provider configurations): Providers are plugins that Terraform uses to interact with cloud providers, SaaS providers, and other APIs. This file specifies which providers (e.g., AWS, Azure, Google Cloud) you are using and any necessary configuration for them, such as authentication details.
  • terraform.tfvars (Variable values): This file contains the actual values for the variables defined in variables.tf. By separating variable definitions and values, you can easily switch between different sets of values for different environments (e.g., development, staging, production) without changing the main configuration files.
  • outputs.tf (Output values): This file defines the output values that Terraform should return after applying the configuration. Outputs are useful for displaying information about the resources created, such as IP addresses, resource IDs, and other important details. They can also be used as inputs for other Terraform configurations or scripts.

Optional: Microsoft Defender for Cloud

This Terraform setup includes an opt-in configuration to enable Microsoft Defender for Cloud plans at the subscription scope.

Important

Enabling Defender plans can incur additional costs in your Azure subscription.

  • To enable, set enable_defender_for_cloud = true in terraform.tfvars and optionally adjust defender_for_cloud_plans.

How to execute it

graph TD;
    A[az login] --> B(terraform init)
    B --> C{Terraform provisioning stage}
    C -->|Review| D[terraform plan]
    C -->|Order Now| E[terraform apply]
    C -->|Delete Resource if needed| F[terraform destroy]
Loading

Important

Please modify terraform.tfvars with your information, then run the following flow. If you need more visual guidance, please check the video that illustrates the provisioning steps.

  1. Login to Azure: This command logs you into your Azure account. It opens a browser window where you can enter your Azure credentials. Once logged in, you can manage your Azure resources from the command line.

    Go to the path where Terraform files are located:

    cd terraform-infrastructure
    az login
    img img
  2. Initialize Terraform: Initializes the working directory containing the Terraform configuration files. It downloads the necessary provider plugins and sets up the backend for storing the state.

    terraform init
    img
  3. Terraform Provisioning Stage:

    • Review: Creates an execution plan, showing what actions Terraform will take to achieve the desired state defined in your configuration files. It uses the variable values specified in terraform.tfvars.

      terraform plan -var-file terraform.tfvars

      At the end, you will see a message in green if everything was executed successfully:

      Screenshot 2025-03-18 145143
    • Order Now: Applies the changes required to reach the desired state of the configuration. It prompts for confirmation before making any changes. It also uses the variable values specified in terraform.tfvars.

      terraform apply -var-file terraform.tfvars

      At the end, you will see a message in green if everything was executed successfully:

      image
    • Remove: Destroys the infrastructure managed by Terraform. It prompts for confirmation before deleting any resources. It also uses the variable values specified in terraform.tfvars.

      terraform destroy -var-file terraform.tfvars

      At the end, you will see a message in green if everything was executed successfully:

      image
Total views

Refresh Date: 2026-04-06