Usando Terraform con Azure
El presente post tiene un objetivo muy sencillo, el cual es describir como enlazar terraform con Azure, y posteriormente haremos la creacion de una web app.
1.- Descargar e instalar Terraform
En mi caso instalare la versión para Windows
https://www.terraform.io/downloads.html
Una vez lo hayamos descargado y los descomprimimos en el folder que querramos, ya que es un simple exe; posteriormente lo agregamos al PATH de nuestro sistema
Para agregar la variable lo podríamos hacer de forma clásica, pero hagamoslo por medio de un comando (esto lo coloca de forma temporal al PATH)
$env:Path += ";MI_RUTA_DE_TERRAFORM"
2.- Conectar con Azure
Para realizar este paso, necesitamos tener una consola con una cuenta conectada activa de azure, para hacerlo de forma sencilla utilizaremos la shell del portal de azure.
Seleccionamos Bash(la verdad es indistinto, posteriormente podemos cambiarlo)
Creamos/seleccionamos una cuenta de almacenamiento(en caso que no haberlo hecho antes).
Ahora necesitamos obtener nuestra id de cuenta:
az account list
Tomamos el valor del id, y ejecutamos el siguiente comando
az ad sp create-for-rbac --role="Contributor" --scopes="/subscriptions/my_id_account"
Una vez generado, los valores que nos necesitamos son "appId", "password" y "tenant"
3.- Usando terraform sobre Azure
Para este ejemplo crearemos un web-app usando un modulo de terraform, es un nuevo archivo de texto con extension .tf, tipear lo siguiente:
provider "azurerm" {
subscription_id = "tu suscripcion: az account list"
client_id = "generado paso en paso anterior"
client_secret = "generado paso en paso anterior"
tenant_id = "generado paso en paso anterior"
}
module "linuxwebapp" {
source = "rahulkhengare/webapp/azurerm"
name = "testmelinuxwebapp"
resource_group_name = "testwebappRG"
plan_settings = {
kind = "Linux"
size = "S2"
capacity = 1
tier = "Standard"
}
}
terraform init
terraform plan
NOTA. Algo a tener en cuenta es que este modulo de tercero necesita tener azure-cli instalado, lo puedes bajar desde aquí, después necesitas logearte con "az login"
terraform apply
(Te pedirá confirmar la operación) Ya podríamos revisar en el portal de azure
Por ultimo elimina el grupo de recursos, lo puedes hacer desde la consola de azure con "az group delete -n testwebappRG"
Referencias:
https://github.com/mauve/vscode-terraform.git
https://registry.terraform.io/modules/rahulkhengare/webapp/azurerm/0.1.0?tab=resources