/terraform-projects

Este repositório no GitHub apresenta exemplos práticos e avançados para provisionar infraestrutura usando Terraform, com foco na AWS e Azure.

Primary LanguageHCL

Terraform Projects

file_type_terraform_icon_130125(2)amazon_aws_logo_icon_145507 microsoft_azure_logo_icon_168977 file_type_vscode_icon_130084 gitlab_original_wordmark_logo_icon_146504 github_original_wordmark_logo_icon_146506

Descrição

Este repositório no GitHub apresenta exemplos práticos e avançados para provisionar infraestrutura usando Terraform, com foco na AWS e Azure. Ele abrange funções e ferramentas do Terraform, como variáveis, outputs, state, provisioners, meta arguments, built-in functions, expressões e módulos. Também inclui uma introdução ao uso do Terraform em pipelines CI/CD com GitLab CI, Github Actions e Azure DevOps.

Motivação

Dominio Terraform

PIPELINE

Pipeline Usando GITHUB ACTIONS.

AWS

Utilizando Terraform suba uma instancia full iac na AWS.

Subindo instancias remote state para AWS e AZURE.

Criar diretorio e armazenar .tfstate e criado uma estrutura VPC completa (Subnet, Internet Gateway, Route Table, Route Table Association e Security Group).

Criar uma VM na AWS e usar a VPC a crainda acessando as informações da VPC pelo Remote State.

Utilizando PROVISIONERS em uma vm na AWS, assim salvando, copiando e criando arquivos.

Exemplo de utilização de modulos locais na AWS.

Exemplo de utilização do Meta Argument COUNT em modulos remotos na AWS.

Exemplo de utilização de uma conditional expression na AWS.

Exemplo de utilização do for expression na AWS.

Exemplo de utilização do splat expression expression na AWS.

Exemplo de utilização do dynamic block na AWS.

Exemplo de utilização da LIFECYCLE em uma BUCKET na AWS.

Exemplo de utilização do provider em uma vpc na AWS.

Exemplo de utilização de recursos dentro de um workspace para deploy na AWS.

Exemplo de utilização da função DATA SOURCE para utilizar uma vpc existente na AWS.

AZURE

Utilizando Terraform suba uma instancia full iac na AZURE.

Subindo instancias remote state para AWS e AZURE.

Criar toda a estrutura VNet (Resource Group, VNet, Subnet, Network Security Group e Subnet Network Security Group Association) na AZURE e deixar o .tfstate salvo.

Criar uma VM com uma estrutura de 5 blocosde recursos (Resource Group, Public IP, Network Interface, Network Interface Security Group Association e Linux Virtual Machine).

Utilizando PROVISIONERS em uma vm na AZURE, assim salvando, copiando e criando arquivos.

Exemplo de utilização de modulos remotos com AZURE.

Exemplo de utilização do Meta Argument DEPENDS-ON em modulos remotos na AZURE.

Exemplo de utilização do recurso NULL RESOURCE na AZURE.

Exemplo de utilização do TIME SLEEP ba AZURE.