• Skip to primary navigation
  • Skip to main content
  • Skip to primary sidebar

UnixArena

  • Home
  • kubernetes
  • DevOps
    • Terraform
    • Jenkins
    • Docker
    • Openshift
      • OKD
    • Ansible engine
    • Ansible Tower
      • AWX
    • Puppet
  • Cloud
    • Azure
    • AWS
    • Openstack
    • Docker
  • VMware
    • vCloud Director
    • VMware-Guests
    • Vcenter Appliance 5.5
    • vC OPS
    • VMware SDDC
    • VMware vSphere 5.x
      • vSphere Network
      • vSphere DS
      • vShield Suite
    • VMware vSphere 6.0
    • VSAN
    • VMware Free Tools
  • Backup
    • Vembu BDR
    • Veeam
    • Nakivo
    • Azure Backup
    • Altaro VMBackup
    • Spinbackup
  • Tutorials
    • Openstack Tutorial
    • Openstack Beginner’s Guide
    • VXVM-Training
    • ZFS-Tutorials
    • NetApp cDot
    • LVM
    • Cisco UCS
    • LDOM
    • Oracle VM for x86
  • Linux
    • How to Articles
    • Q&A
    • Networking
    • RHEL7
  • DevOps Instructor-led Training
  • Contact

How to use Terraform from Azure Cloud Shell?

May 25, 2020 By Cloud_Devops Leave a Comment

How to use terraform from Azure cloud shell? Do we need to install an additional package to use terraform? Nope. Azure provides commonly used CLI tools including Linux shell interpreters, PowerShell modules, Azure tools, text editors, source control, build tools (ex: terraform), and more in cloud shell. This makes azure builders to quickly deploy Azure resources using ARM templates or terraform. This article will demonstrate how to use terraform and deploy vNet using a piece of code.

1.Login to Azure portal and launch cloud shell.

Azure Cloud shell - bash
Azure Cloud shell – bash

2. Create the required directories for terraform. In this example, we will see how to create vNet using terraform code.

UA@Azure:~$ mkdir -p terraform/vnet/
UA@Azure:~$ cd terraform/vnet/
UA@Azure:~/clouddrive/terraform/vnet$ terraform -version
Terraform v0.12.25
UA@Azure:~/terraform/vnet$

3. Prepare the terraform code to provision vNet. Use vi editor to create the following file.

provider "azurerm" {
version = "~>2.0"
features {}
}
resource "azurerm_virtual_network" "main" {
name = "UAVnet"
address_space = ["10.125.0.0/16"]
location = "westus2"
resource_group_name = "UArg"
tags = { environment = "UnixArena test" }
}

4. List the newly create file.

UA@Azure:~/clouddrive/terraform/vnet$ ls -lrt
total 2
-rwxrwxrwx 1 lingesh lingesh 317 May 24 17:16 create_vnet.tf
UA@Azure:~/clouddrive/terraform/vnet$

5. Initialize the terraform binaries. This step will download the required plugins.

UA@Azure:~/terraform/vnet$ terraform init
Initializing the backend…
Initializing provider plugins…
Checking for available provider plugins…
Downloading plugin for provider "azurerm" (hashicorp/azurerm) 2.11.0…
Terraform has been successfully initialized!
You may now begin working with Terraform. Try running "terraform plan" to see
any changes that are required for your infrastructure. All Terraform commands
should now work.
If you ever set or change modules or backend configuration for Terraform,
rerun this command to reinitialize your working directory. If you forget, other
commands will detect it and remind you to do so if necessary.
UA@Azure:~/terraform/vnet$

6. Validate the terraform plan.

UA@Azure:~/terraform/vnet$ terraform plan
Refreshing Terraform state in-memory prior to plan…
The refreshed state will be used to calculate this plan, but will not be
persisted to local or remote state storage.

An execution plan has been generated and is shown below.
Resource actions are indicated with the following symbols:
create
Terraform will perform the following actions:
# azurerm_virtual_network.main will be created
resource "azurerm_virtual_network" "main" { address_space = [ "10.125.0.0/16",
]
guid = (known after apply)
id = (known after apply)
location = "westus2"
name = "UAVnet"
resource_group_name = "UArg"
subnet = (known after apply)
tags = { "environment" = "UnixArena test"
}
}
Plan: 1 to add, 0 to change, 0 to destroy.

Note: You didn't specify an "-out" parameter to save this plan, so Terraform
can't guarantee that exactly these actions will be performed if
"terraform apply" is subsequently run.
UA@Azure:~/terraform/vnet$

7. Create the azure resource by executing terraform apply command.

UA@Azure:~/terraform/vnet$ terraform apply
An execution plan has been generated and is shown below.
Resource actions are indicated with the following symbols:
create
Terraform will perform the following actions:
# azurerm_virtual_network.main will be created
resource "azurerm_virtual_network" "main" { address_space = [ "10.125.0.0/16",
]
guid = (known after apply)
id = (known after apply)
location = "westus2"
name = "UAVnet"
resource_group_name = "UArg"
subnet = (known after apply)
tags = { "environment" = "UnixArena test"
}
}
Plan: 1 to add, 0 to change, 0 to destroy.
Do you want to perform these actions?
Terraform will perform the actions described above.
Only 'yes' will be accepted to approve.
Enter a value: yes
azurerm_virtual_network.main: Creating…
azurerm_virtual_network.main: Still creating… [10s elapsed]
azurerm_virtual_network.main: Creation complete after 12s [id=/subscriptions/585051ec-7aa0-48ab-a172-d1260ad72ee5/resourceGroups/UArg/providers/Microsoft.Network/virtualNetworks/UAVnet]
Apply complete! Resources: 1 added, 0 changed, 0 destroyed.
UA@Azure:~/terraform/vnet$

8. You could go back and check in the azure portal to validate the resource which we had deployed now.

UAVnet - Test azure resource
UAVnet – Test azure resource

Hope this article is informative to you. Please share your feedback.

Filed Under: Automation, Azure, Azure, Cloud, Cloud Automation, Microsoft, Terraform Tagged With: Automation, Azure, Terraform

Reader Interactions

Leave a Reply Cancel reply

Your email address will not be published. Required fields are marked *

Primary Sidebar

Follow UnixArena

  • Facebook
  • LinkedIn
  • Twitter

Copyright © 2025 · UnixArena ·

Go to mobile version