O HashiCorp Terraform é uma ferramenta de infraestrutura como código (IaC) que lhe permite aprovisionar e gerir a infraestrutura na nuvem. O Terraform oferece plug-ins denominados fornecedores que lhe permitem interagir com fornecedores de nuvem e outras APIs. Pode usar o fornecedor do Terraform para Google Cloud aprovisionar e gerir Google Cloud recursos, incluindo o Compute Engine.
Esta página apresenta a utilização do Terraform com o Compute Engine, incluindo uma introdução ao funcionamento do Terraform e alguns recursos para ajudar a começar a usar o Terraform com o Google Cloud. Também encontra links para documentos de referência do Terraform para o Compute Engine, exemplos de código e guias para usar o Terraform para aprovisionar recursos do Compute Engine.
Para obter instruções sobre como começar a usar o Terraform para o Google Cloud, consulte o artigo Instale e configure o Terraform ou o Início rápido do Terraform para o Google Cloud .
Como funciona o Terraform
O Terraform tem uma sintaxe declarativa e orientada para a configuração, que pode usar para descrever a infraestrutura que quer aprovisionar no seu Google Cloud projeto. Depois de criar esta configuração num ou mais ficheiros de configuração do Terraform, pode usar a CLI do Terraform para aplicar esta configuração aos seus recursos do Compute Engine.
Os passos seguintes explicam como funciona o Terraform:
- Descreve a infraestrutura que quer aprovisionar num ficheiro de configuração do Terraform. Não precisa de escrever código que descreva como aprovisionar a infraestrutura. O Terraform aprovisiona a infraestrutura por si.
- Executa o comando
terraform plan
, que avalia a sua configuração e gera um plano de execução. Pode rever o plano e fazer alterações conforme necessário. -
Executa o comando
terraform apply
, que realiza as seguintes ações:- Aprovisiona a sua infraestrutura com base no seu plano de execução invocando as APIs do Compute Engine correspondentes em segundo plano.
- Cria um ficheiro de estado do Terraform, que é um ficheiro JSON que mapeia os recursos no seu ficheiro de configuração para os recursos na infraestrutura do mundo real. O Terraform usa este ficheiro para manter um registo do estado mais recente da sua infraestrutura e para determinar quando criar, atualizar e destruir recursos.
-
Quando executa
terraform apply
, o Terraform usa o mapeamento no ficheiro de estado para comparar a infraestrutura existente com o código e fazer atualizações conforme necessário:- Se um objeto de recurso estiver definido no ficheiro de configuração, mas não existir no ficheiro de estado, o Terraform cria-o.
- Se um objeto de recurso existir no ficheiro de estado, mas tiver uma configuração diferente da do ficheiro de configuração, o Terraform atualiza o recurso para corresponder ao ficheiro de configuração.
- Se um objeto de recurso no ficheiro de estado corresponder ao seu ficheiro de configuração, o Terraform deixa o recurso inalterado.
Recursos do Terraform para o Compute Engine
Os recursos são os elementos fundamentais na linguagem Terraform. Cada bloco de recursos descreve um ou mais objetos de infraestrutura, como redes virtuais ou instâncias de computação.
A tabela seguinte indica os recursos do Terraform disponíveis para o Compute Engine:
Guias baseados no Terraform para o Compute Engine
A tabela seguinte lista os guias de instruções e os tutoriais baseados no Terraform para o Compute Engine:
Guia | Detalhes |
---|---|
Crie e inicie uma instância do Compute Engine | Explica como criar uma instância de máquina virtual (VM). |
Crie uma VM com discos SSD local | Explica como pode criar uma VM com armazenamento em disco SSD local. |
Crie instantâneos de discos | Explica como criar instantâneos padrão para fazer cópias de segurança periódicas dos dados dos discos. |
Duplique um disco com clones | Explica como criar clones de discos zonais de um disco existente. |
Crie e faça a gestão de discos regionais | Explica como criar e gerir discos regionais. |
Crie e use VMs do Spot | Explica como criar e gerir VMs de opção. As VMs do Spot são instâncias de VM que representam capacidade do Compute Engine em excesso. As VMs do Spot estão disponíveis a preços muito mais baixos em comparação com o preço a pedido das VMs padrão |
Adicione chaves SSH a VMs | Descreve como adicionar chaves SSH a instâncias de VM que usam o Início de sessão do SO e VMs que usam chaves SSH baseadas em metadados. |
Executar scripts de encerramento | Explica como criar e executar scripts de encerramento que executam comandos imediatamente antes de uma instância de VM ser parada ou reiniciada. |
Crie uma reserva para um único projeto | Explica como criar uma reserva de projeto único, que só pode ser consumida por instâncias de VM no mesmo projeto. |
Crie modelos de instâncias | Descreve como criar e gerir modelos de instâncias. |
Dimensionamento com base em horários | Descreve como pode criar programações de escalabilidade para um MIG existente. O dimensionamento automático baseado em programação permite-lhe melhorar a disponibilidade das suas cargas de trabalho programando a capacidade antes da carga prevista. |
Adicione armazenamento de disco persistente à sua VM | Explica como criar um volume de disco persistente zonal em branco e não inicializável e anexá-lo à sua VM. |
Configure o Início de sessão do SO | Descreve como configurar o Início de sessão do SO. |
Anexe um disco não de arranque a uma VM | Explica como anexar um disco zonal não inicializável à sua VM. |
Crie uma VM que use uma conta de serviço gerida pelo utilizador | Explica como criar uma instância de VM configurada para usar uma conta de serviço gerida pelo utilizador. Uma conta de serviço é um tipo especial de conta normalmente usada por uma aplicação ou uma carga de trabalho de computação para fazer chamadas API autorizadas. |
Aumente o tamanho de um disco persistente | Explica como aumentar o tamanho de um disco persistente. |
Ative os ecrãs virtuais numa VM | Descreve como ativar os ecrãs virtuais numa instância de VM. |
Crie um MIG numa única zona | Descreve como criar um grupo de instâncias geridas (MIG) numa única zona. Colocar todas as VMs do MIG numa única zona ajuda a minimizar a latência, o que é útil para determinadas cargas de trabalho, por exemplo, cargas de trabalho em lote. |
Crie uma instância de VM com um nome de anfitrião personalizado | Explica como criar uma instância de VM com um nome de anfitrião personalizado. |
Configure uma verificação de funcionamento baseada na aplicação e a autorrecuperação | Descreve como configurar uma verificação de estado baseada em aplicações para reparar automaticamente as VMs num MIG. |
Crie um MIG que use VMs preemptivas | Descreve como criar um MIG que usa instâncias de VM preemptíveis. As VMs preemptivas são úteis se a sua carga de trabalho tolerar interrupções e quiser tirar partido da poupança de custos associada às VMs preemptivas. |
Adicione e remova VMs de um MIG | Descreve como adicionar e remover VMs de um MIG. |
Crie um MIG com o dimensionamento automático ativado | Descreve como criar um GIG com escalabilidade automática que adiciona e remove automaticamente VMs com base na utilização média da CPU no grupo. |
Crie um MIG com discos com estado | Descreve como criar um MIG que usa instâncias de VM preemptíveis. As VMs preemptivas são úteis se a sua carga de trabalho tolerar interrupções e quiser tirar partido da poupança de custos associada às VMs preemptivas. |
Criar instâncias de VM do SQL Server | Explica como criar instâncias de VMs do Microsoft SQL Server. O SQL Server é um sistema de base de dados que é executado no Windows Server e em algumas distribuições do Linux. Pode usar o SQL Server no Compute Engine como parte do back-end das suas aplicações, como um ambiente de desenvolvimento e teste flexível ou em complemento aos seus sistemas no local para cópia de segurança e recuperação de desastres. |
Crie uma atribuição de política de SO | Explica como criar uma atribuição de política de SO. Pode usar políticas de SO para manter configurações de software consistentes nas instâncias de VMs Linux e Windows. |
Configurar metadados com estado em MIGs | Descreve como configurar metadados com estado em MIGs. Os metadados de instância são úteis para definir propriedades e comunicar com as suas aplicações através do servidor de metadados. |
Configurar discos persistentes com estado em MIGs | Explica como configurar discos persistentes com estado em MIGs. A configuração de discos persistentes para serem com estado permite-lhe beneficiar da autorreparação de instâncias de VMs e das atualizações automáticas, ao mesmo tempo que preserva o estado dos discos. |
Configurar endereços IP com estado em MIGs | Descreve como configurar endereços IP com estado em MIGs. Ao configurar endereços IP com estado num GIG, garante que os endereços IP são preservados quando as instâncias de VM no grupo são autorreparadas, atualizadas e recriadas. |
Defina um formato de distribuição alvo para VMs num GIG regional | Explica como definir um formato de distribuição alvo para VMs. |
Crie um GIG com VMs em várias zonas numa região | Descreve como criar um MIG com as respetivas VMs distribuídas por várias zonas numa região. Distribuir a carga da aplicação por várias zonas protege a sua carga de trabalho contra falhas zonais. |
Desative e ative novamente a redistribuição proativa de VMs num MIG regional | Descreve como desativar e reativar a redistribuição proativa de VMs num MIG regional. Num MIG regional, para manter um número uniforme de instâncias de VM nas zonas selecionadas na região, use a redistribuição proativa de instâncias. Esta opção de configuração maximiza a disponibilidade da sua aplicação em caso de falha ao nível da zona. |
Módulos e blueprints do Terraform para o Compute Engine
Os módulos e os esquemas ajudam a automatizar o aprovisionamento e a gestão de Google Cloud recursos em grande escala. Um módulo é um conjunto reutilizável de ficheiros de configuração do Terraform que cria uma abstração lógica dos recursos do Terraform. Um projeto é um pacote de módulos implementáveis e reutilizáveis, bem como uma política que implementa e documenta uma solução específica.
A tabela seguinte lista os módulos e os planos detalhados relacionados com o Compute Engine:
Módulo ou planta | Detalhes |
---|---|
terraform-google-vm |
Coleção de submódulos opinativos que pode usar como bases para aprovisionar VMs no Google Cloud. |
terraform-google-startup-scripts |
Oferece uma biblioteca de scripts de arranque úteis para incorporar em VMs. |
terraform-google-container-vm |
Implementa contentores em instâncias do Compute Engine |
O que se segue?
- Exemplos de código do Terraform para o Compute Engine
- Documentação do Google Cloud Terraform
- Google Cloud documentação do fornecedor na HashiCorp
- Infraestrutura como código para Google Cloud