Skip to content

Null-bin/TerraformAzure

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

18 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

AzureTerraform

Provisionamento de uma VM IaaS no Azure (Região Brazil South – São Paulo)

Este repositório contém um conjunto de arquivos Terraform que criam, configuram e post‑configuram uma máquina virtual Windows no Microsoft Azure, utilizando disco Premium SSD.
A VM recebe hostname, pasta compartilhada e o IIS pré‑instalado por meio de um script PowerShell executado na inicialização.

📂 Estrutura do projeto

│ azure-iaas/

├── main.tf # Infraestrutura Azure: RG, VNET, NIC, VM

├── variables.tf # Variáveis parametrizáveis

├── outputs.tf # Saídas importantes (ex: IP público)

└── custom_script.ps1 # Script PowerShell executado na VM

📝 O que este pacote faz

Recurso O que acontece
Resource Group e Virtual Network São criados com sub‑rede única.
VM Windows (Standard D2s_v3) Disco OS Premium SSD de 128 GB.
Hostname Alterado para SRV-SAO-PAULO.
Pasta compartilhada C:\Dados criada e compartilhada como \\SRV-SAO-PAULO\Dados.
IIS Instalado como feature extra, permitindo teste rápido de um site web.
IP público Exportado via terraform output vm_public_ip.

🔧 Pré-requisitos

Item Detalhe
Conta Azure Permissões para criar RG, VNet, NIC, VM e extensões.
Terraform Versão ≥ 1.3 (verifique com terraform -v).
Azure CLI Instalado e autenticado (az login).
PowerShell Para revisar/ajustar o script localmente (PowerShell 7+ recomendado).
(Opcional) Azure Key Vault Para armazenar a senha do administrador de forma segura.

⚙️ Variáveis principais (variables.tf)

Variável Descrição Exemplo
admin_username Usuário administrador da VM. azureuser
admin_password Senha do administrador (alterar antes de usar). P@ssword123456!
region Região Azure onde o recurso será criado. Brazil South
vm_size SKU da VM. Standard_D2s_v3
disk_size_gb Tamanho do disco OS (GB). 128
vm_name Nome lógico da VM (usado também como hostname). srv-sao-paulo

Importante: nunca commit a senha em repositórios públicos. Em produção, recupere‑a de um Key Vault ou de variáveis de ambiente.

🕹️ Como usar

1️⃣ Clone o repositório ou copie os arquivos para uma pasta local

git clone https://github.com/seu-usuario/azure-iaas.git cd azure-iaas

2️⃣ Crie (ou ajuste) o arquivo terraform.tfvars com os valores desejados

cat > terraform.tfvars <<EOF admin_username = "azureuser" admin_password = "SuaSenhaSegura123!" EOF

3️⃣ Inicialize o provider e baixe plugins

terraform init

4️⃣ Visualize o que será criado

terraform plan -var-file="terraform.tfvars"

5️⃣ Aplique a infraestrutura

terraform apply -var-file="terraform.tfvars"

Digite "yes" quando solicitado

Saída Esperada ✅

Apply complete! Resources: X added, 0 changed, 0 destroyed.

Outputs: vm_public_ip = 20.45.123.89

Com o IP exibido, conecte‑se via RDP: Ex.: mstsc /v:20.45.123.89 Usuário: o definido em admin_username Senha: a que você informou em terraform.tfvars

custom_script.ps1

O script é copiado para C:\Temp\custom_script.ps1 e executado logo após a VM estar pronta (via VM Extension ou provisioner WinRM, conforme configurado em main.tf).

Este script é transferido automaticamente para a VM e executado no provisionamento. Ele realiza:

Alteração do hostname para SRV-SAO-PAULO.

Criação da pasta C:\Dados.

Compartilhamento da pasta como \\Dados.

Instalação do IIS para teste rápido de serviço web.

Boas práticas

Segurança de credenciais:

Armazene a senha em Azure Key Vault e recupere‑a com azurerm_key_vault_secret.

Controle de acesso de rede:

Crie um Network Security Group (NSG) permitindo RDP apenas de IPs confiáveis.

Tagging:

Adicione tags como environment = "dev" e owner = "team-iaas" a todos os recursos.

Backup:

Habilite Azure Backup para o disco OS.

Monitoramento:

Envie logs de diagnóstico da VM e do NSG para um Log Analytics Workspace.

Escalabilidade:

Caso precise de múltiplas instâncias, migre para um Virtual Machine Scale Set.

Patch Management:

Use Update Management (Azure Automation) para aplicar patches automaticamente.

Linux:

Troque azurerm_windows_virtual_machine por azurerm_linux_virtual_machine e converta custom_script.ps1 para Bash.

📝 Licença

Este exemplo está disponibilizado “as‑is” sob a licença MIT. Consulte o arquivo LICENSE para detalhes e sinta‑se à vontade para adaptar o código às políticas de segurança da sua organização.

Links úteis Provider AzureRM – Terraform Registry: https://registry.terraform.io/providers/hashicorp/azurerm/latest

Documentação oficial da Azure CLI: https://learn.microsoft.com/pt-br/cli/azure/?view=azure-cli-latest

Guia de extensões de máquinas virtuais (Custom Script Extension): https://learn.microsoft.com/pt-br/azure/virtual-machines/extensions/custom-script-windows

Azure Key Vault – gerenciamento de segredos: https://learn.microsoft.com/pt-br/azure/key-vault/secrets/

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published