#
Bonus Exercise: Writing a Basic Terraform Configuration and Running Plan
#
Exercise Objective
Participants will write a basic Terraform configuration that defines an Azure resource (e.g., a Resource Group or Virtual Network) and then run terraform plan to preview the changes that Terraform would make.
#
Steps
#
Step 1: Create a New Directory for the Terraform Project
Open a Terminal or Command Prompt:
- Ensure that you are in a directory where you want to create your new Terraform project.
Create a New Directory:
- Create a folder called
my-terraform-projectand navigate into it:mkdir my-terraform-project cd my-terraform-project
- Create a folder called
#
Step 2: Write a Basic main.tf File to Define an Azure Resource
Open Your Preferred Text Editor (VS Code or IntelliJ):
- Open the
my-terraform-projectdirectory in your editor.
- Open the
Create a
main.tfFile:- In the
my-terraform-projectdirectory, create a new file calledmain.tf.
- In the
Add Basic Configuration for Azure Provider:
Add the following configuration in
main.tfto specify the Azure provider and create a Resource Group:# Configure the Azure provider provider "azurerm" { features {} } # Create an Azure Resource Group resource "azurerm_resource_group" "example" { name = "myResourceGroup" location = "East US" }This configuration does the following:
- Specifies
azurermas the provider, which allows Terraform to interact with Azure resources. - Defines a
resource_groupin Azure namedmyResourceGrouplocated in the "East US" region.
- Specifies
#
Step 3: Initialize the Terraform Project
Run
terraform init:- In the terminal, ensure you are in the
my-terraform-projectdirectory and initialize the Terraform project:terraform init - This command downloads the necessary provider plugins (in this case,
azurerm) and sets up the project.
- In the terminal, ensure you are in the
Confirm Initialization:
- After running
terraform init, you should see a message confirming that Terraform has been successfully initialized.
- After running
#
Step 4: Run terraform plan to Preview Changes
Run the
terraform planCommand:- In the terminal, run the following command to preview the changes that Terraform will make:
terraform plan terraform plancompares your configuration with the actual state of resources and shows what actions Terraform will take.
- In the terminal, run the following command to preview the changes that Terraform will make:
Review the Output:
- Look at the output of
terraform planto see the planned changes:- You should see an output indicating that Terraform will add a new resource (indicated by a
+symbol). - The output will display the details of the resource (e.g., the name and location of the Resource Group).
- You should see an output indicating that Terraform will add a new resource (indicated by a
- Example output:
Terraform will perform the following actions: # azurerm_resource_group.example will be created + resource "azurerm_resource_group" "example" { + id = (known after apply) + location = "East US" + name = "myResourceGroup" } Plan: 1 to add, 0 to change, 0 to destroy.
- Look at the output of
Understand the
terraform planOutput:- The plan output indicates:
- Terraform will create (
+) theazurerm_resource_groupresource. - The resource details such as the
id,name, andlocationare shown.
- Terraform will create (
- This step allows you to verify that the configuration is correct before actually applying changes.
- The plan output indicates:
#
Verification
- Confirm the Configuration is Valid:
- Ensure that the
terraform planoutput confirms Terraform will create the specified Resource Group.
- Ensure that the
- Troubleshoot Issues (if any):
- If there are any errors or unexpected output, review the configuration in
main.tfand ensureterraform initwas completed successfully.
- If there are any errors or unexpected output, review the configuration in