Skip to Content

O que é o Terraform Plan?

O Terraform, desenvolvido pela HashiCorp , é uma ferramenta de infraestrutura como código (IaC, Infrastructure-as-code) amplamente usada que permite aos usuários definir e provisionar infraestrutura de software usando uma linguagem de configuração de alto nível. À medida que as organizações adotam cada vez mais infraestruturas baseadas em nuvem, o Terraform se tornou essencial para gerenciar e automatizar a implantação de recursos de infraestrutura. Um dos principais comandos do Terraform é o plano terraform, uma etapa essencial no processo de implantação que garante que as mudanças na infraestrutura sejam seguras, previsíveis e eficientes.

Neste artigo, veremos mais detalhadamente esse comando, o que ele faz e como interpretar sua saída para suas configurações do Terraform.

O que é o Terraform Plan?

O comando do plano terraform é uma parte vital do fluxo de trabalho do Terraform que serve como uma execução seca ou visualização das mudanças que o Terraform fará em sua infraestrutura. Ele compara o estado atual da infraestrutura com o estado desejado definido nos arquivos de configuração do Terraform e mostra as ações específicas que o Terraform tomará para preencher a lacuna. Isso inclui adições, exclusões e modificações de recursos, como criar novas máquinas virtuais, expandir bancos de dados existentes ou remover volumes de armazenamento não usados.

Benefícios do Terraform Plan

Ter a capacidade de visualizar o que a alteração do código de configuração causará à infraestrutura é benéfico de muitas maneiras, incluindo:

  • Transparência: O plano Terraform fornece uma visão geral detalhada das próximas mudanças, oferecendo uma imagem clara do que será criado, modificado ou excluído em sua infraestrutura. Essa transparência ajuda a minimizar erros e garante que todos os envolvidos no processo de implantação estejam em sintonia.
  • Mitigação de riscos: Ao visualizar as mudanças antecipadamente, os usuários podem identificar e resolver possíveis problemas antes que interrompam os serviços. O plano Terraform pode ajudar a descobrir conflitos de recursos (por exemplo, criar uma VM com um nome duplicado), dependências ausentes (por exemplo, um banco de dados que exige um grupo de segurança específico que não está configurado) ou modificações não intencionais devido a erros de digitação nos arquivos de configuração.
  • Colaboração: O Terraform Plan integra-se perfeitamente a sistemas de controle de versão, como o Git, facilitando a colaboração da equipe. Compartilhar a saída do plano com os membros da equipe permite revisar as mudanças no contexto de compromissos de código, promovendo transparência e responsabilidade antes que as mudanças sejam implementadas.
  • Eficiência: O Terraform Plan ajuda os usuários a planejar e executar mudanças de infraestrutura metodicamente. Analisar o plano permite identificar possíveis gargalos ou ineficiências antes de aplicar as mudanças.
  • Segurança: O plano Terraform funciona como uma rede de segurança, permitindo que você analise e valide as alterações antes que elas sejam aplicadas à infraestrutura de produção. Essa proteção ajuda a evitar modificações acidentais e garante a estabilidade e a confiabilidade do seu ambiente de nuvem.

Como executar o plano Terraform

Para executar o plano terraforme, primeiro certifique-se de ter o Terraform instalado em sua máquina local. Você pode baixar e instalar a versão apropriada no site oficial da HashiCorp.

Antes de executar o comando Planejar, você precisará criar um arquivo de configuração básico do Terraform chamado main.tf em seu diretório de trabalho. Veja abaixo um exemplo de uma configuração simples que cria um recurso de máquina virtual em um provedor de nuvem:

# Configure the cloud provider (replace with your provider details)
 provider "aws" {
   region = "us-east-1"
 }
 
 # Define a virtual machine resource
 resource "aws_instance" "my_vm" {
   ami           = "ami-0f78f7e824d9499e0"  # Replace with the desired AMI ID
   instance_type = "t2.micro"
 }

1. Inicialize o diretório do Terraform

Navegue até seu diretório de trabalho que contém o arquivo main.tf e execute o seguinte comando em seu terminal:

$ terraform init

Esse comando inicializa o diretório do Terraform, baixa todos os plug-ins ou módulos necessários mencionados em sua configuração e prepara o ambiente para trabalhar com o Terraform.

2. Execute o plano Terraform

Quando a inicialização estiver concluída, execute o seguinte comando para gerar o plano de execução:

$ terraform plan

Este comando analisa sua configuração do Terraform e a compara com o estado atual da infraestrutura (se houver). Em seguida, ele exibe um plano detalhado descrevendo as ações que o Terraform tomará para alcançar o estado desejado definido em sua configuração. O plano normalmente mostrará os recursos que serão criados, modificados ou excluídos

3. Salve a saída do plano

Se quiser salvar o plano para referência futura ou compartilhá-lo com os membros da equipe, você pode usar o sinalizador -out com o comando plan. Por exemplo, o seguinte comando salva o plano em um arquivo chamado plan.tfplan:

$ terraform plan -out=plan.tfplan

O comando terraform plan apenas visualiza as alterações. Ele não faz nenhuma modificação em sua infraestrutura. Depois de revisar e aprovar o plano, você pode usar o comando de aplicação do formulário de terra $ para executar as alterações planejadas.

Entender e analisar a saída do plano Terraform

A saída do plano de terraforme é normalmente dividida em várias seções, cada uma oferecendo insights valiosos sobre as ações planejadas:

Ações de recursos

Esta seção lista as ações específicas que o Terraform pretende executar em seus recursos de infraestrutura. Essas ações são categorizadas em três tipos principais:

  • Criar (+): Este símbolo indica que o Terraform criará novos recursos com base na sua configuração.
  • Leia (~): Este símbolo significa que o Terraform lerá o estado dos recursos existentes para determinar se são necessárias alterações. Esse símbolo é menos frequente na saída do plano, pois o Terraform normalmente determina as ações necessárias durante a fase de planejamento.
  • Excluir (-): Este símbolo indica que o Terraform excluirá recursos existentes que não estão mais definidos em sua configuração.

Detalhes do recurso

Esta seção fornece informações detalhadas sobre cada recurso que será afetado pelo plano. Aqui está um detalhamento dos detalhes que você normalmente pode encontrar:

  • Tipo de recurso: Isso especifica o tipo de recurso de infraestrutura que o Terraform gerencia (por exemplo, aws_instance, azurerm_resource_group ).
  • Nome do recurso: Isso identifica o nome exclusivo atribuído ao recurso na configuração do Terraform.

Mudanças planejadas

Esta seção detalha as mudanças específicas que serão aplicadas ao recurso. Para recursos sendo criados (indicados por +), ele listará os atributos e seus valores correspondentes que serão definidos. Para recursos que estão sendo modificados, ele mostrará as alterações nos atributos existentes.

Resumo

O resultado do plano geralmente termina com uma seção de resumo que fornece uma visão geral de alto nível das ações planejadas. Esse resumo normalmente divide o número total de recursos nas seguintes categorias:

  • A ser adicionado: O número de novos recursos que serão criados

  • A ser alterado: O número de recursos existentes que serão modificados

  • A ser destruído: O número de recursos existentes que serão excluídos

Quando você executa um plano de terraforme com a configuração de amostra que criamos anteriormente, obtém resultados semelhantes aos seguintes:

# $ terraform plan
 
 Terraform used the selected providers to generate the following execution plan. Resource actions are indicated with the following symbols:
   + create
 
 Terraform will perform the following actions:
 
   # aws_instance.my_vm will be created
   resource "aws_instance" "my_vm" {
     + ami           = "ami-0f78f7e824d9499e0"
     + instance_type = "t2.micro"
     + tags = {
       + Name = "sample-tag"
     }
   }

1. Ações de recursos: A primeira linha indica que o Terraform executará ações de criação (+) durante esse plano.

2. Detalhes do recurso: A seção subsequente aborda os detalhes de um único recurso, aws_instance.my_vm . Isso significa que o Terraform criará uma nova instância do AWS EC2 chamada my_vm em seu ambiente AWS. Os detalhes especificam ainda mais a ID AMI (ami-0f78f7e824d9499e0), o tipo de instância (t2.micro ) e uma tag (Nome = "sample-tag ") que o Terraform aplicará à nova instância.

3. Resumo (implícito): Embora não seja explicitamente mostrado neste exemplo, um resumo pode ser exibido no final de um resultado de plano mais complexo, indicando o número total de recursos a serem criados.

Melhores práticas para usar o Terraform Plan

O comando terraform plan é sua rede de segurança antes de aplicar mudanças de infraestrutura. Veja a seguir algumas práticas essenciais para maximizar seus benefícios:

Analise as mudanças de recursos:

  • Concentre-se nos recursos marcados para criação (+) ou exclusão (-).
  • Verifique se os valores de atributo para novos recursos estão alinhados com sua intenção (por exemplo, ID AMI, tamanho do armazenamento).
  • Verifique novamente a precisão das modificações nos recursos existentes.

Identifique possíveis problemas:

  • Procure conflitos de recursos (por exemplo, nomes duplicados, dependências ausentes).
  • Certifique-se de que todas as dependências necessárias (por exemplo, grupos de segurança) estejam definidas.
  • Tenha cuidado com exclusões inesperadas de recursos que possam interromper os serviços.

Aproveitando a saída:

  • Valide se as mudanças planejadas correspondem às suas metas de infraestrutura.
  • Considere possíveis implicações de custo associadas a modificações de recursos. Você também pode compartilhar o resultado do plano para análise e comunicação da equipe.

Conclusão

O Terraform Plan é uma ferramenta avançada no fluxo de trabalho do Terraform. Ele oferece um método seguro e transparente para visualizar e validar mudanças de infraestrutura antes de aplicá-las. Ao entender e usar o plano Terraform com eficácia, você pode garantir que suas implantações sejam eficientes, previsíveis e livres de consequências não intencionais.

A Pure Storage oferece as melhores soluções de armazenamento em bloco persistentes para suas implantações do Terraform. A Portworx® oferece uma plataforma de dados abrangente para todas as cargas de trabalho de contêiner e Kubernetes Terraform. Com o Pure Cloud Block Store você pode executar qualquer carga de trabalho de banco de dados ou contêiner na nuvem, da mesma forma que faz com a infraestrutura local.

03/2025
Rancher Kubernetes Engine 2 on VMware with Portworx
Gain consistent experience across public cloud, on- premises, hybrid cloud, or edge architecture with Rancher Kubernetes Engine (RKE2) on VMware with Portworx.
Arquitetura de referência
33 pages
ENTRE EM CONTATO
Entre em contato com a PureÍcone de informações
Ícone de chat
Dúvidas ou comentários?

Tem dúvidas ou comentários sobre produtos ou certificações da Pure?  Estamos aqui para ajudar.

Ícone de chave
Agende uma demonstração

Agende uma demonstração ao vivo e veja você mesmo como a Pure pode ajudar a transformar seus dados em resultados poderosos. 

Telefone: 55-11-2844-8366

Imprensa: pr@purestorage.com

 

Sede da Pure Storage

Av. Juscelino Kubitschek, 2041

Torre B, 5º andar - Vila Olímpia

São Paulo, SP

04543-011 Brasil

info@purestorage.com

FECHAR
FecharÍcone X para fechar
Seu navegador não é mais compatível.

Navegadores antigos normalmente representam riscos de segurança. Para oferecer a melhor experiência possível ao usar nosso site, atualize para qualquer um destes navegadores mais atualizados.