Configuração e criação de scripts de terraforma

Concluído

Nesta unidade, examinamos a configuração e o script do Terraform.

Porquê Terraform?

Como gerente de infraestrutura, você precisa de uma ferramenta para provisionar e gerenciar a infraestrutura do Azure. Você também deseja usar a infraestrutura como código em arquivos de configuração que descrevem a topologia de seus recursos do Azure.

A HashiCorp Terraform é ótima na implantação de infraestrutura em provedores de nuvem. Ele fornece aos desenvolvedores ferramentas consistentes para gerenciar cada definição de infraestrutura.

Automatize o gerenciamento de infraestrutura

Usando arquivos de configuração Terraform baseados em modelo, você pode definir, provisionar e configurar recursos do Azure de maneira repetível e previsível. Esta automatização oferece várias vantagens:

  • Ele reduz o potencial de erro humano à medida que implanta e gerencia a infraestrutura.
  • Ele implanta o mesmo modelo várias vezes para criar ambientes idênticos de desenvolvimento, teste e produção.
  • Ele reduz o custo dos ambientes de desenvolvimento e teste, criando-os sob demanda.

Compreender as alterações na infraestrutura antes de serem aplicadas

À medida que uma topologia de recursos se torna cada vez mais complexa, pode ser difícil entender o significado e o efeito das alterações na infraestrutura.

Usando o Terraform, você pode validar e visualizar as alterações de infraestrutura antes de aplicá-las. Os membros da equipe podem colaborar de forma mais eficaz entendendo as mudanças propostas e seu efeito no início do processo de desenvolvimento.

Arquivos de configuração Terraform

Os arquivos de configuração geram um plano de execução e o que o plano fará para alcançar o estado desejado. Terraform pode então construir a infraestrutura descrita. À medida que a configuração muda, o Terraform pode determinar o que mudou e criar planos de execução incrementais.

Os arquivos de configuração Terraform usam sua própria linguagem de configuração semelhante ao YAML que é projetado para permitir uma descrição da infraestrutura.

Você cria arquivos de configuração usando a sintaxe HashiCorp Configuration Language (HCL). HCL é declarativo, descrevendo um objetivo pretendido em vez das etapas para alcançar esse objetivo. A sintaxe HCL permite especificar o provedor de nuvem, como o Azure, e os elementos que compõem sua infraestrutura de nuvem.

Os arquivos de configuração são armazenados como arquivos de texto simples com uma extensão .tf . Eles são:

  • main.tf: (obrigatório) Define a estrutura principal, implantando a infraestrutura completa diretamente ou através de chamadas para módulos
  • outputs.tf: Identifica cada valor de retorno de um módulo Terraform
  • variables.tf: Define as variáveis em main.tf, se elas são necessárias ou não

Captura de tela da estrutura de configuração do Terraform.

Módulos

Você pode agrupar recursos Terraform em um módulo, que cria uma unidade maior de configuração. Esses módulos são conjuntos de arquivos de configuração armazenados em um único diretório. Uma configuração simples consiste em um único diretório com um ou mais arquivos .tf .

Os módulos oferecem muitos benefícios. Por exemplo, módulos:

  • Ajude a organizar o seu projeto.
  • Complexidade de encapsulamento.
  • Permitir que você reutilize tarefas comuns.
  • Forneça consistência e certifique-se de que está a seguir boas práticas.

O arquivo main.tf

Seu arquivo main.tf contém o conjunto principal de detalhes de configuração para seu módulo. Este arquivo é frequentemente chamado de plano Terraform. Seu plano Terraform especifica os recursos de infraestrutura de que você precisa. Você pode nomear esse arquivo como quiser, mas geralmente é chamado de main.tf.

Fluxo de trabalho Terraform

A Terraform recomenda seu fluxo de trabalho principal "inicializar, planejar e aplicar" para automação. Este fluxo de trabalho executa todas as ações do Terraform CI/CD em solicitações de pull do Git novas e atualizadas.

Diagrama do fluxo de trabalho Terraform, exibindo as ações principais Init, Plan e Apply.

As principais ações para este fluxo de trabalho são:

  • Init: Inicialize um diretório de trabalho com arquivos de configuração do Terraform
  • Planejar: produzir um plano para alterar recursos para corresponder à configuração atual
  • Aplicar: Aplicar as alterações descritas pelo plano

Estado

State permite que o Terraform saiba quais recursos do Azure adicionar, atualizar ou excluir.

Terraform usa o estado para criar planos e fazer alterações em sua infraestrutura. Antes de qualquer operação, a Terraform faz uma atualização para atualizar o estado com a infraestrutura real.

O estado é armazenado por padrão em um arquivo de texto local chamado terraform.tfstate. Terraform gerencia esse arquivo usando as ações de fluxo de trabalho que você define em seus módulos.

Você também pode armazenar o estado remotamente, uma abordagem que funciona melhor em um ambiente de equipe. Para obter mais informações sobre como gerenciar o estado remotamente, consulte a unidade Resumo no final deste módulo.

Próximos passos

Na próxima unidade, discutiremos o uso do Terraform com Ações do GitHub ou Pipelines do Azure para provisionar e implantar seus aplicativos.