O HashiCorp Terraform é uma ferramenta de código que permite definir recursos na nuvem e no local em arquivos de configuração legíveis por humanos que você pode criar versões, reutilizar e compartilhar. Você pode então usar um fluxo de trabalho consistente para provisionar e gerenciar toda a sua infraestrutura ao longo de seu ciclo de vida. O Terraform pode gerenciar componentes de baixo nível, como computação, armazenamento e recursos de rede, bem como componentes de alto nível, como entradas DNS e recursos SaaS.

Como o Terraform funciona?​

A Terraform cria e gerencia recursos em plataformas de nuvem e outros serviços por meio de suas interfaces de programação de aplicativos (APIs). Os provedores permitem que o Terraform funcione com praticamente qualquer plataforma ou serviço com uma API acessível.

Você pode encontrar todos os provedores disponíveis publicamente no Terraform Registry , incluindo Amazon Web Services (AWS), Azure, Google Cloud Platform (GCP), Kubernetes, Helm, GitHub, Splunk, DataDog e muitos mais.

O fluxo de trabalho principal do Terraform consiste em três estágios:

Write: você define os recursos, que podem estar em vários provedores e serviços de nuvem. Por exemplo, você pode criar uma configuração para implantar um aplicativo em máquinas virtuais em uma rede Virtual Private Cloud (VPC) com grupos de segurança e um balanceador de carga.


Plan: o Terraform cria um plano de execução descrevendo a infraestrutura que ele criará, atualizará ou destruirá com base na infraestrutura existente e em sua configuração.


Apply: Após a aprovação, o Terraform executa as operações propostas na ordem correta, respeitando quaisquer dependências de recursos. Por exemplo, se você atualizar as propriedades de uma VPC e alterar o número de máquinas virtuais nessa VPC, o Terraform recriará a VPC antes de dimensionar as máquinas virtuais.

Arquivos do Terraform

  1. Arquivo de configuração principal (main.tf): Este arquivo contém a descrição dos recursos de infraestrutura que serão gerenciados pelo Terraform. Ele define os provedores de infraestrutura, os recursos a serem criados, suas configurações e dependências.

  2. Arquivo de variáveis (variables.tf): Este arquivo define as variáveis usadas no arquivo de configuração principal. Ele permite que os usuários definam variáveis que podem ser usadas para definir valores que variam de acordo com o ambiente, como o nome de uma instância EC2 ou o número de instâncias a serem criadas.

  3. Arquivo de saída (outputs.tf): Este arquivo define as saídas que o Terraform produz após a criação da infraestrutura. Ele permite que os usuários definam valores que serão úteis para outras ferramentas ou para outros componentes da infraestrutura.

  4. Arquivo de estado (terraform.tfstate): Este arquivo contém o estado atual da infraestrutura gerenciada pelo Terraform. Ele é usado para rastrear as alterações na infraestrutura e gerenciar as dependências entre os recursos.

  5. Arquivo de configuração de variáveis de ambiente (.envrc): Este arquivo define as variáveis de ambiente usadas pelo Terraform, como a credencial de acesso aos provedores de infraestrutura.

Esses arquivos são usados em conjunto para definir e gerenciar a infraestrutura como código com o Terraform. É importante ter uma boa compreensão de como cada um desses arquivos funciona para criar e gerenciar a infraestrutura de forma eficiente e segura.

Algumas diferenças entre o Terraform open-source e o Terraform Cloud:

  1. Gerenciamento de estado: o Terraform open-source armazena o estado da infraestrutura localmente em um arquivo, enquanto o Terraform Cloud armazena o estado em um backend remoto, que é acessível por toda a equipe e mantido pela HashiCorp.

  2. Colaboração: o Terraform Cloud oferece recursos avançados de colaboração, como controle de acesso baseado em função, gerenciamento de versão e fluxos de trabalho de revisão de código, que permitem que as equipes trabalhem em conjunto de maneira segura e eficiente.

  3. Gerenciamento de custos: o Terraform Cloud oferece recursos avançados de gerenciamento de custos, como previsão de custos e alertas de orçamento, que permitem que as equipes monitorem e gerenciem os custos de sua infraestrutura em nuvem.

  4. Integração com outros serviços: o Terraform Cloud se integra facilmente com outros serviços da HashiCorp, como o Vault e o Consul, bem como com provedores de nuvem e ferramentas de integração contínua e entrega contínua (CI/CD).

Aprenda Terraform Do Zero e de Graça

Compartilhe esse conteúdo

Posts Relacionados

O que é Terrascan?

Recursos, casos de uso e políticas personalizadas Neste artigo, vamos analisar o Terrascan. Vamos perguntar o que é, por que

LER MAIS

O que é OpenTelemetry

OpenTelemetry é um projeto open-source criado pela Cloud Native Computing Foundation (CNCF) que fornece uma coleção de ferramentas, APIs e

LER MAIS