Projetos e estudos sobre Terraform.
O Terraform é uma ferramenta de infraestrutura como código que permite definir e gerenciar recursos de infraestrutura por meio de arquivos de configuração legíveis por humanos. O Terraform permite que você use um fluxo de trabalho consistente durante o ciclo de vida da infraestrutura, independentemente do provedor de recursos. A infraestrutura como fluxo de trabalho de código permite gerenciar declarativamente uma variedade de serviços e automatizar suas alterações neles, reduzindo o risco de erro humano por meio de operações manuais.
- Write / Escrever - Crie a infraestrutura como código.
- Plan / Planejar - Visualize as alterações antes de aplicar.
- Apply / Aplicar – Provisionar infraestrutura reproduzível.
- Blocks
- Arguments
- Identifiers
- Comments (# // /* and */)
- Expressions (Types and Values)
- References
- Source Addresses (Hostname / Namespace / Type)
- Variable
-
terraform -help
-
terraform init / -upgrade: Inicializa um diretório de trabalho do Terraform, baixando os plugins necessários e preparando o ambiente para uso.
-
terraform fmt: Formata os arquivos de configuração do Terraform para seguir um estilo de formatação padrão.
-
terraform validate: Verifica a sintaxe e a semântica dos arquivos de configuração do Terraform.
-
terraform plan / -out: Gera um plano de execução que descreve as alterações que o Terraform planeja realizar.
-
terraform apply / --auto-approve: Aplica as alterações definidas nos arquivos de configuração do Terraform ao ambiente de destino.
-
terraform apply -var="instance_type=t2.small": Exemplo de uso da opção "-var", para alterações via CLI.
-
terraform show: Mostra uma representação humanamente legível do estado atual do ambiente gerenciado pelo Terraform.
-
terraform console: Permite a interação interativa com a configuração do Terraform.
-
terraform state list: Lista todos os recursos gerenciados pelo Terraform no estado atual.
-
terraform destroy: Destroi todos os recursos gerenciados pelo Terraform no ambiente especificado.
-
terraform output: Mostra os valores de saída definidos em seus arquivos de configuração do Terraform.
-
terraform login: HCP Terraform
-
terraform get: Baixa e instala os módulos necessários para o projeto.
-
terraform graph: Gera uma representação visual do relacionamento entre os recursos de infraestrutura definidos nos arquivos de configuração do Terraform.
-
terraform import: Importa um recurso existente para o estado do Terraform.
-
terraform refresh: Atualiza o estado do Terraform para refletir o estado atual da infraestrutura real.
-
terraform taint: Marca um recurso gerenciado pelo Terraform como "sujos" (tainted), forçando-o a ser destruído e recriado na próxima execução do terraform apply.
-
terraform untaint: Remove a marca "sujos" (tainted) de um recurso, permitindo que ele seja gerenciado normalmente pelo Terraform.
-
terraform workspace: Gerencia workspaces (espaços de trabalho) do Terraform, permitindo a criação de ambientes isolados para testes, desenvolvimento ou produção.
-
terraform version: Exibe a versão atual do Terraform instalada no sistema.
Se terraform validate foi bem-sucedido e sua aplicação ainda falhou, você pode encontrar um destes erros comuns:
-
Se você usar uma região diferente, também precisará alterar seu ami, já que os IDs de AMI são específicos da região.
-
Se você não tiver uma VPC padrão em sua conta da AWS na região correta, navegue até o AWS VPC Dashboard na web, crie uma nova VPC em sua região e associe uma sub-rede e um grupo de segurança a essa VPC. Em seguida, adicione os argumentos ID do grupo de segurança ( vpc_security_group_ids) e ID da sub-rede (subnet_id) ao seu aws_instance recurso e substitua os valores pelos do seu novo grupo de segurança e sub-rede.
O Terraform precisa se autenticar no Google Cloud para criar infraestrutura.
Em seu terminal, use a gcloud CLI para configurar suas credenciais padrão do aplicativo .
gcloud auth application-default login
Credentials saved to file: [/home/"username"/.config/gcloud/application_default_credentials.json]