sábado, 14 de fevereiro de 2026

Devops - Criando um cluster de máquinas virtuais no Azure Cloud com Terraform

 


Criando um cluster de máquinas virtuais no Azure Cloud com Terraform

Digite `az` e você deverá ver esta CLI do Azure.

Digite Terraform e você deverá ver os comandos do Terraform.

 

Instale e configure o Terraform para provisionar VMs e outras infraestruturas no Azure.

Antes de começar a usar o Terraform e implantar sua solução no Microsoft Azure, você precisa instalar o Azure CLI o Terraform no seu sistema operacional.

No guia passo a passo a seguir, implantaremos um cluster de máquinas virtuais com Terraform nos Serviços de Nuvem do Microsoft Azure .

Primeiro, abra o PowerShell no modo Administrador :

Você já deve ter seu script Terraform pronto.

É ótimo poder editar seu script Terraform no Visual Studio Code.

Criar um arquivo de configuração do Terraform.
Nesta seção, você criará um arquivo que contém as definições de recursos para sua infraestrutura.
Crie um novo arquivo chamado main.tf.
Copie as seguintes definições de recursos de exemplo para o arquivo main.tf recém-criado:


recurso “azurerm_resource_group” “test” {
nome = “acctestrg”
localização = “West US 2”
}

recurso “azurerm_virtual_network” “test” {
nome = “acctvn”
espaço_de_endereços = [“10.0.0.0/16”]
localização = “${azurerm_resource_group.test.location}”
nome_do_grupo_de_recursos = “${azurerm_resource_group.test.name}”
}

recurso “azurerm_subnet” “test” {
nome = “acctsub”
nome_do_grupo_de_recursos = “${azurerm_resource_group.test.name}”
nome_da_rede_virtual = “${azurerm_virtual_network.test.name}”
prefixo_de_endereço = “10.0.2.0/24”
}

recurso “azurerm_public_ip” “teste” {
nome = “publicIPForLB”
localização = “${azurerm_resource_group.test.location}”
nome_do_grupo_de_recursos = “${azurerm_resource_group.test.name}”
alocação_de_endereço_ip_público = “estático”
}

recurso “azurerm_lb” “teste” {
nome = “loadBalancer”
localização = “${azurerm_resource_group.test.location}”
nome_do_grupo_de_recursos = “${azurerm_resource_group.test.name}”

frontend_ip_configuration {
name = “publicIPAddress”
public_ip_address_id = “${azurerm_public_ip.test.id}”
}
}

recurso “azurerm_lb_backend_address_pool” “test” {
resource_group_name = “${azurerm_resource_group.test.name}”
loadbalancer_id = “${azurerm_lb.test.id}”
name = “BackEndAddressPool”
}

recurso “azurerm_network_interface” “test” {
contagem = 2
nome = “acctni${count.index}”
localização = “${azurerm_resource_group.test.location}”
nome_do_grupo_de_recursos = “${azurerm_resource_group.test.name}”

ip_configuration {
name = “testConfiguration”
subnet_id = “${azurerm_subnet.test.id}”
private_ip_address_allocation = “dynamic”
load_balancer_backend_address_pools_ids = [“${azurerm_lb_backend_address_pool.test.id}”]
}
}

recurso “azurerm_managed_disk” “test” {
contagem = 2
nome = “datadisk_existing_${count.index}”
localização = “${azurerm_resource_group.test.location}”
nome_do_grupo_de_recursos = “${azurerm_resource_group.test.name}”
tipo_de_conta_de_armazenamento = “Standard_LRS”
opção_de_criação = “Empty”
tamanho_do_disco_gb = “1023”
}

recurso “azurerm_availability_set” “avset” {
nome = “avset”
localização = “${azurerm_resource_group.test.location}”
nome_do_grupo_de_recursos = “${azurerm_resource_group.test.name}”
contagem_de_domínios_com_falha_na_plataforma = 2
contagem_de_domínios_de_atualização_na_plataforma = 2
gerenciado = true
}

recurso “azurerm_virtual_machine” “test” {
contagem = 2
nome = “acctvm${count.index}”
localização = “${azurerm_resource_group.test.location}”
availability_set_id = “${azurerm_availability_set.avset.id}”
resource_group_name = “${azurerm_resource_group.test.name}”
network_interface_ids = [“${element(azurerm_network_interface.test.*.id, count.index)}”]
vm_size = “Standard_DS1_v2”

# Descomente esta linha para excluir o disco do sistema operacional automaticamente ao excluir a máquina virtual
# delete_os_disk_on_termination = true

# Descomente esta linha para excluir os discos de dados automaticamente ao excluir a VM
# delete_data_disks_on_termination = true

storage_image_reference {
publisher = “Canonical”
offer = “UbuntuServer”
sku = “16.04-LTS”
version = “latest”
}

storage_os_disk {
nome = “myosdisk${count.index}”
cache = “ReadWrite”
create_option = “FromImage”
managed_disk_type = “Standard_LRS”
}

# Discos de dados opcionais
storage_data_disk {
name = “datadisk_new_${count.index}”
managed_disk_type = “Standard_LRS”
create_option = “Empty”
lun = 0
disk_size_gb = “1023”
}

storage_data_disk {
name = “${element(azurerm_managed_disk.test.*.name, count.index)}”
managed_disk_id = “${element(azurerm_managed_disk.test.*.id, count.index)}”
create_option = “Attach”
lun = 1
disk_size_gb = “${element(azurerm_managed_disk.test.*.disk_size_gb, count.index)}”
}

os_profile {
computer_name = “hostname”
admin_username = “testadmin”
admin_password = “Password1234!”
}

os_profile_linux_config {
disable_password_authentication = false
}

tags {
environment = “staging”
}
}


Tipo: terraform init

Você deverá ver esta tela.

Tipo: login az

Estamos agora a iniciar sessão na subscrição do Microsoft Azure.

https://microsoft.com/devicelogin

Insira o código da sua tela do PowerShell.

Agora que o Terraform INIT está em execução e estamos conectados à nossa assinatura do Azure,😉

Tipo: plano de terraformação

Isso servirá para atualizar o estado e prepará-lo para a implantação.

Tipo: aplicar terraform

e então digite:  sim <enter>

O Terraform agora está criando os recursos do Azure.

O grupo de recursos do Azure acctestrg foi criado.

O cluster de VMs de implantação do Terraform no Azure está pronto.😉

O cluster de máquinas virtuais do Azure está em execução.

Quando você deseja remover um cluster de máquinas virtuais do Azure inteiro usando o Terraform, é muito fácil:

Tipo: destruir terraforma

e então digite: sim <enter>

Os recursos do Azure estão sendo excluídos por meio de um script Terraform.

O Terraform destruiu o cluster de máquinas virtuais do Azure.


Todos os recursos do Azure do cluster de máquinas virtuais foram removidos.

Espero que este guia passo a passo para implantar infraestrutura como código com Terraform ajude você com suas próprias soluções em nuvem no Microsoft Azure.

P.S.: Não se esqueça de instalar a extensão Azure Terraform para Visual Studio Code e começar a usar!




Nenhum comentário:

Postar um comentário