En aquest tema, aprendrem com utilitzar Terraform per proveir recursos a Microsoft Azure. Explorarem els conceptes bàsics, la configuració necessària i veurem exemples pràctics per crear i gestionar recursos a Azure.
Objectius del Tema
- Comprendre els conceptes bàsics del proveïment de recursos a Azure amb Terraform.
- Configurar l'autenticació i les credencials necessàries per interactuar amb Azure.
- Crear i gestionar recursos bàsics com màquines virtuals, xarxes i grups de recursos.
- Aprendre a utilitzar les variables i sortides per fer la configuració més dinàmica i reutilitzable.
Requisits Previs
- Coneixements bàsics de Terraform (Mòduls 1 i 2).
- Un compte de Microsoft Azure.
- Instal·lació de l'Azure CLI.
- Configuració Inicial
1.1 Instal·lació de l'Azure CLI
Per interactuar amb Azure, necessitem tenir instal·lada l'Azure CLI. Pots seguir les instruccions oficials per a la instal·lació a aquesta pàgina.
1.2 Autenticació a Azure
Un cop instal·lada l'Azure CLI, hem d'autenticar-nos al nostre compte d'Azure. Executa la següent comanda:
Això obrirà una finestra del navegador on podràs introduir les teves credencials d'Azure.
1.3 Configuració del Proveïdor d'Azure a Terraform
Per utilitzar Azure amb Terraform, hem de configurar el proveïdor d'Azure. Crea un fitxer main.tf
amb el següent contingut:
Aquest bloc de codi configura el proveïdor d'Azure amb les característiques per defecte.
- Creació d'un Grup de Recursos
Un grup de recursos és un contenidor que manté els recursos relacionats per a una solució d'Azure. Crearem un grup de recursos com a primer pas.
2.1 Definició del Grup de Recursos
Afegim el següent bloc de codi al nostre fitxer main.tf
:
2.2 Aplicació de la Configuració
Per aplicar aquesta configuració, executem les següents comandes:
Terraform ens demanarà confirmació abans de crear el grup de recursos. Escriu yes
per continuar.
- Creació d'una Xarxa Virtual
Una xarxa virtual és essencial per a la comunicació entre recursos a Azure. Crearem una xarxa virtual dins del nostre grup de recursos.
3.1 Definició de la Xarxa Virtual
Afegim el següent bloc de codi al nostre fitxer main.tf
:
resource "azurerm_virtual_network" "example" { name = "example-network" address_space = ["10.0.0.0/16"] location = azurerm_resource_group.example.location resource_group_name = azurerm_resource_group.example.name }
3.2 Aplicació de la Configuració
Executem les següents comandes per aplicar la configuració:
- Creació d'una Màquina Virtual
Finalment, crearem una màquina virtual dins de la nostra xarxa virtual.
4.1 Definició de la Màquina Virtual
Afegim el següent bloc de codi al nostre fitxer main.tf
:
resource "azurerm_network_interface" "example" { name = "example-nic" location = azurerm_resource_group.example.location resource_group_name = azurerm_resource_group.example.name ip_configuration { name = "internal" subnet_id = azurerm_virtual_network.example.subnet[0].id private_ip_address_allocation = "Dynamic" } } resource "azurerm_virtual_machine" "example" { name = "example-vm" location = azurerm_resource_group.example.location resource_group_name = azurerm_resource_group.example.name network_interface_ids = [azurerm_network_interface.example.id] vm_size = "Standard_DS1_v2" storage_os_disk { name = "example-os-disk" caching = "ReadWrite" create_option = "FromImage" managed_disk_type = "Standard_LRS" } storage_image_reference { publisher = "Canonical" offer = "UbuntuServer" sku = "18.04-LTS" version = "latest" } os_profile { computer_name = "example-vm" admin_username = "adminuser" admin_password = "Password1234!" } os_profile_linux_config { disable_password_authentication = false } }
4.2 Aplicació de la Configuració
Executem les següents comandes per aplicar la configuració:
- Resum
En aquest tema, hem après a:
- Configurar l'Azure CLI i autenticar-nos a Azure.
- Configurar el proveïdor d'Azure a Terraform.
- Crear un grup de recursos, una xarxa virtual i una màquina virtual a Azure utilitzant Terraform.
Aquestes habilitats són fonamentals per gestionar la infraestructura a Azure de manera eficient i automatitzada. En el proper tema, explorarem com proveir recursos a Google Cloud Platform (GCP) amb Terraform.
Curs de Terraform
Mòdul 1: Introducció a Terraform
- Què és Terraform?
- Instal·lant Terraform
- Conceptes bàsics de Terraform
- Primera configuració de Terraform
Mòdul 2: Llenguatge de configuració de Terraform
Mòdul 3: Gestió de l'estat
Mòdul 4: Mòduls de Terraform
Mòdul 5: Proveïment de recursos
- Conceptes bàsics de proveïment
- Proveïment de recursos AWS
- Proveïment de recursos Azure
- Proveïment de recursos GCP
Mòdul 6: Funcionalitats avançades de Terraform
Mòdul 7: Millors pràctiques de Terraform
- Organització del codi
- Control de versions
- Proves del codi de Terraform
- Millors pràctiques de seguretat
Mòdul 8: Terraform en CI/CD
- Integració de Terraform amb CI/CD
- Automatització de Terraform amb Jenkins
- Ús de Terraform amb GitHub Actions
- Terraform Cloud i Enterprise