Infrastructure as Code (IaC) no Azure: Passo a Passo para Iniciar no Linux/Ubuntu com um Computador de Estudante
Este guia passo a passo vai te ensinar como começar a usar Infrastructure as Code (IaC) no Microsoft Azure usando um computador com Linux/Ubuntu. Vamos usar o Terraform, uma das ferramentas mais populares para gerenciar infraestrutura na nuvem, focando na criação de recursos no Azure.
Pré-requisitos:
- Sistema Operacional: Linux/Ubuntu
- Recursos do Computador: 4 GB de RAM, 2 núcleos de CPU, armazenamento livre (mínimo 10 GB)
- Nível de Conhecimento: Básico em Linux e nuvem
- Ferramenta de IaC: Terraform
Passo 1: Instalar o Terraform no Ubuntu
1.1. Atualizar os pacotes do sistema
Antes de instalar o Terraform, certifique-se de que todos os pacotes do seu sistema estão atualizados.
sudo apt update && sudo apt upgrade -y
1.2. Instalar o Terraform
- Adicione o repositório oficial da HashiCorp:
sudo apt install -y gnupg software-properties-common curl
curl -fsSL https://apt.releases.hashicorp.com/gpg | sudo gpg --dearmor -o /usr/share/keyrings/hashicorp-archive-keyring.gpg
- Adicione o repositório do Terraform:
sudo apt-add-repository "deb [signed-by=/usr/share/keyrings/hashicorp-archive-keyring.gpg] https://apt.releases.hashicorp.com $(lsb_release -cs) main"
- Instale o Terraform:
sudo apt update && sudo apt install terraform
- Verifique a instalação:
terraform -v
Esse comando confirma que o Terraform foi instalado corretamente.
Termos de Pesquisa: “Instalar Terraform no Ubuntu”, “Como configurar Terraform no Linux”, “Tutoriais básicos de Terraform”
Passo 2: Criar e Configurar uma Conta no Azure
2.1. Criar uma Conta no Azure
- Acesse o portal do Azure e crie uma conta. O Azure oferece um crédito gratuito para novos usuários, permitindo a criação de vários serviços gratuitamente.
2.2. Criar um Service Principal (Credenciais para o Terraform)
Para o Terraform gerenciar recursos no Azure, precisamos de um Service Principal, que fornecerá as permissões necessárias para acessar e manipular a infraestrutura.
- Abra o Cloud Shell no portal do Azure.
- No terminal do Azure, crie um Service Principal com o seguinte comando:
az ad sp create-for-rbac --role="Contributor" --scopes="/subscriptions/SUA_SUBSCRIPTION_ID"
Esse comando retornará as seguintes informações, que você deve salvar:
appId: ID da aplicaçãopassword: Senhatenant: ID do locatário (tenant)
Dica: Substitua
SUA_SUBSCRIPTION_IDpelo seu ID de assinatura, que pode ser encontrado no painel de assinaturas do Azure.Termos de Pesquisa: “Azure Service Principal Terraform”, “Como configurar credenciais no Azure para Terraform”
Passo 3: Configurar o Terraform para o Azure
Agora que temos as credenciais do Service Principal, vamos configurá-las no Terraform.
3.1. Criar o Diretório do Projeto
Abra o terminal no Ubuntu e crie uma pasta para o seu projeto:
mkdir ~/meu-projeto-terraform-azure
cd ~/meu-projeto-terraform-azure
3.2. Criar o Arquivo de Configuração main.tf
Dentro da pasta do projeto, crie um arquivo chamado main.tf:
nano main.tf
Cole o seguinte código no arquivo para configurar o provedor do Azure:
provider "azurerm" {
features {}
subscription_id = "SUA_SUBSCRIPTION_ID"
client_id = "SEU_APP_ID"
client_secret = "SEU_PASSWORD"
tenant_id = "SEU_TENANT_ID"
}
- subscription_id: ID da sua assinatura do Azure.
- client_id:
appIdretornado pelo comando do Service Principal. - client_secret:
passwordretornado. - tenant_id: ID do locatário retornado.
3.3. Inicializar o Terraform
Execute o seguinte comando para inicializar o Terraform e preparar os plugins necessários:
terraform init
Esse comando vai preparar o ambiente para trabalhar com o Azure.
Passo 4: Criar um Recurso no Azure (VM)
Agora vamos definir um código simples no Terraform para criar uma máquina virtual (VM) no Azure.
4.1. Adicionar Código para Criar uma VM no Azure
No arquivo main.tf, abaixo da configuração do provedor, adicione o seguinte código para criar uma máquina virtual:
resource "azurerm_resource_group" "rg" {
name = "MeuResourceGroup"
location = "East US"
}
resource "azurerm_virtual_network" "vnet" {
name = "MinhaVNET"
address_space = ["10.0.0.0/16"]
location = azurerm_resource_group.rg.location
resource_group_name = azurerm_resource_group.rg.name
}
resource "azurerm_subnet" "subnet" {
name = "MinhaSubnet"
resource_group_name = azurerm_resource_group.rg.name
virtual_network_name = azurerm_virtual_network.vnet.name
address_prefixes = ["10.0.1.0/24"]
}
resource "azurerm_network_interface" "nic" {
name = "MinhaNIC"
location = azurerm_resource_group.rg.location
resource_group_name = azurerm_resource_group.rg.name
ip_configuration {
name = "ConfiguracaoIP"
subnet_id = azurerm_subnet.subnet.id
private_ip_address_allocation = "Dynamic"
}
}
resource "azurerm_virtual_machine" "vm" {
name = "MinhaVM"
location = azurerm_resource_group.rg.location
resource_group_name = azurerm_resource_group.rg.name
network_interface_ids = [azurerm_network_interface.nic.id]
vm_size = "Standard_B1s" # Tamanho compatível com estudantes e nível gratuito
storage_image_reference {
publisher = "Canonical"
offer = "UbuntuServer"
sku = "18.04-LTS"
version = "latest"
}
storage_os_disk {
name = "DiscoOS"
caching = "ReadWrite"
create_option = "FromImage"
managed_disk_type = "Standard_LRS"
}
os_profile {
computer_name = "MinhaVM"
admin_username = "azureuser"
admin_password = "SenhaSegura123!"
}
os_profile_linux_config {
disable_password_authentication = false
}
}
4.2. Explicação do Código
- azurerm_resource_group: Cria um grupo de recursos no Azure.
- azurerm_virtual_network: Cria uma rede virtual (VNet) dentro do grupo de recursos.
- azurerm_subnet: Cria uma sub-rede dentro da VNet.
- azurerm_network_interface: Configura a interface de rede para a VM.
- azurerm_virtual_machine: Cria uma VM Ubuntu usando o tamanho de máquina virtual
Standard_B1s, que é acessível e compatível com o nível gratuito do Azure.
4.3. Criar o Plano de Execução
Para verificar o que o Terraform fará, execute o comando:
terraform plan
Esse comando exibirá uma lista dos recursos que serão criados.
4.4. Aplicar o Código
Agora, para provisionar a infraestrutura no Azure, execute o seguinte comando:
terraform apply
Quando o Terraform pedir confirmação, digite yes.
Isso criará todos os recursos no Azure, incluindo uma máquina virtual Ubuntu.
Passo 5: Limpar a Infraestrutura
Quando você terminar de usar os recursos, é importante removê-los para evitar cobranças. Execute o comando abaixo para destruir todos os recursos criados:
terraform destroy
Isso vai desprovisionar todos os recursos que você criou com o Terraform.
Passo 6: Melhorando a Automação e Boas Práticas
Agora que você criou sua primeira infraestrutura com o Terraform, considere adotar boas práticas para projetos maiores e mais complexos:
- Uso de Variáveis: Ao invés de hard-codar as credenciais e parâmetros, use variáveis. Exemplo de variáveis:
variable "location" {
default = "East US"
}
provider "azurerm" {
features {}
subscription_id = "SUA_SUBSCRIPTION_ID"
client_id = "
SEU_APP_ID"
client_secret = "SEU_PASSWORD"
tenant_id = "SEU_TENANT_ID"
}
- Automatização: Integre seus arquivos Terraform com CI/CD pipelines para automação contínua e testes.
- Versionamento: Use Git para armazenar e versionar seu código.
Termos de Pesquisa: “Terraform best practices”, “Azure VM Terraform automation”, “Como configurar pipelines para Terraform”
Conclusão
Seguindo este guia, você configurou o Terraform em um ambiente Ubuntu e provisionou uma máquina virtual no Azure. Essa é uma introdução básica ao mundo do Infrastructure as Code com Terraform e Azure, ideal para estudantes que estão começando. Continue explorando outras funcionalidades, como balanceadores de carga, bancos de dados e automação de rede, para ganhar mais experiência.
Dicas de Termos de Busca (para continuar aprendendo):
- “Terraform Azure tutorial”
- “Criar VMs com Terraform no Azure”
- “Best practices Terraform no Azure”
Termos no YouTube:
- “Azure VM Terraform setup”
- “Terraform with Azure tutorial”
- “Criando infraestruturas no Azure com Terraform”

Leave a comment