Carregando...
Nenhum resultado encontrado.

Google Cloud Ensina

Aplique suas habilidades no console do Google Cloud

Google Cloud Fundamentals for AWS Professionals

Acesse mais de 700 laboratórios e cursos

Como automatizar a implantação da infraestrutura usando o Terraform

Laboratório 1 hora universal_currency_alt 5 créditos show_chart Introdutório
info Este laboratório pode incorporar ferramentas de IA para ajudar no seu aprendizado.
Acesse mais de 700 laboratórios e cursos

Visão geral

O Terraform permite criar, alterar e melhorar a infraestrutura de maneira segura e previsível. Ele é uma ferramenta de código aberto que codifica as APIs em arquivos de configuração declarativos para que sejam compartilhados entre a equipe, tratados como código, editados, revisados e organizados em versões.

Neste laboratório, você vai criar uma configuração do Terraform com um módulo para automatizar a implantação da infraestrutura do Google Cloud. Você vai implantar uma rede no modo automático com uma regra de firewall e duas instâncias de VM, como mostrado neste diagrama:

Objetivos

Neste laboratório, você aprenderá a fazer o seguinte:

  • Criar uma configuração para uma rede no modo automático
  • Criar uma configuração para uma regra de firewall
  • Criar um módulo para as instâncias de VM
  • Criar e implantar uma configuração
  • Verificar a implantação de uma configuração

Instalação

Para cada laboratório, você recebe um novo projeto do Google Cloud e um conjunto de recursos por um determinado período sem custo financeiro.

  1. Clique no botão Começar o laboratório. Se for preciso pagar, você verá um pop-up para selecionar a forma de pagamento. No painel Detalhes do laboratório à esquerda, você vai encontrar o seguinte:

    • O botão Abrir console do Google Cloud
    • O tempo restante
    • As credenciais temporárias que você vai usar neste laboratório
    • Outras informações, se forem necessárias
  2. Se você estiver usando o navegador Chrome, clique em Abrir console do Google Cloud ou clique com o botão direito do mouse e selecione Abrir link em uma janela anônima.

    O laboratório ativa os recursos e depois abre a página Fazer login em outra guia.

    Dica: coloque as guias em janelas separadas lado a lado.

    Observação: se aparecer a caixa de diálogo Escolher uma conta, clique em Usar outra conta.
  3. Se necessário, copie o Nome de usuário abaixo e cole na caixa de diálogo Fazer login.

    {{{user_0.username | "Nome de usuário"}}}

    Você também encontra o Nome de usuário no painel Detalhes do laboratório.

  4. Clique em Seguinte.

  5. Copie a Senha abaixo e cole na caixa de diálogo de boas-vindas.

    {{{user_0.password | "Senha"}}}

    Você também encontra a Senha no painel Detalhes do laboratório.

  6. Clique em Seguinte.

    Importante: você precisa usar as credenciais fornecidas no laboratório, e não as da sua conta do Google Cloud. Observação: se você usar sua própria conta do Google Cloud neste laboratório, é possível que receba cobranças adicionais.
  7. Acesse as próximas páginas:

    • Aceite os Termos e Condições.
    • Não adicione opções de recuperação nem autenticação de dois fatores (porque essa é uma conta temporária).
    • Não se inscreva em testes gratuitos.

Depois de alguns instantes, o console do Google Cloud será aberto nesta guia.

Observação: para acessar uma lista de produtos e serviços do Google Cloud, clique no Menu de navegação no canto superior esquerdo ou digite o nome do serviço ou produto no campo Pesquisar.

Tarefa 1: configurar o Terraform e o Cloud Shell

Nesta tarefa, você vai configurar o ambiente do Cloud Shell para usar o Terraform.

Instale o Terraform

O Terraform agora está integrado ao Cloud Shell. Verifique qual versão está instalada.

  1. No console do Google Cloud, clique em Ativar o Cloud Shell ().
  2. Se for solicitado, clique em Continuar.
  3. Para confirmar se o Terraform está instalado, execute o seguinte comando:
terraform --version

O resultado será semelhante a este:

Terraform v1.5.7

Observação: não se preocupe se você receber um aviso informando que a versão do Terraform está desatualizada, porque as instruções do laboratório funcionarão com o Terraform v1.5.7 e versões posteriores. Os downloads da versão mais recente do Terraform estão disponíveis no site do Terraform (em inglês). O Terraform é distribuído como um pacote binário para todas as plataformas e arquiteturas compatíveis, e o Cloud Shell usa o Linux de 64 bits.

  1. Para criar um diretório para sua configuração do Terraform, execute o seguinte comando:
mkdir tfinfra
  1. No Cloud Shell, clique em Abrir editor ().

Observação: se você receber a mensagem "Não foi possível carregar o editor de código porque os cookies de terceiros estão desativados", clique em Abrir em uma nova janela. O editor de código será aberto em uma nova guia. Retorne à guia original, clique em Abrir terminal e volte para a guia do editor de código. Será necessário retornar ao terminal do Cloud Shell periodicamente neste laboratório.

  1. No painel esquerdo do editor de código, expanda a pasta tfinfra.

Inicialize o Terraform

O Terraform usa uma arquitetura baseada em plug-ins compatível com a maioria dos provedores de infraestrutura e serviço disponíveis. Cada "provedor" é um binário encapsulado distribuído separadamente do Terraform. Inicialize o Terraform definindo o Google como provedor.

  1. Para criar um novo arquivo dentro de tfinfra, clique com o botão direito do mouse na pasta tfinfra e depois em New File.
  2. Nomeie o arquivo como provider.tf e abra-o.
  3. Copie o código no arquivo provider.tf:
provider "google" {}
  1. Para salvar o arquivo provider.tf, clique em File > Save.

  2. Para inicializar o Terraform, execute o seguinte comando:

cd tfinfra terraform init

Agora está tudo pronto para trabalhar com o Terraform no Cloud Shell.

Tarefa 2: criar mynetwork e os recursos relacionados

Nesta tarefa, você vai criar a rede no modo automático mynetwork com a regra de firewall e duas instâncias de VM (mynet_vm_1 e mynet_vm_2).

Configure o mynetwork

Crie uma nova configuração e defina mynetwork.

  1. Para criar um novo arquivo dentro de tfinfra, clique com o botão direito do mouse na pasta tfinfra e depois em New File.
  2. Nomeie o arquivo como mynetwork.tf e abra-o.
  3. Copie o seguinte código base no arquivo mynetwork.tf:
# Criar a rede mynetwork resource [RESOURCE_TYPE] "mynetwork" { name = [RESOURCE_NAME] # As propriedades do RECURSO vão aqui }

Esse modelo base é um ótimo ponto de partida para qualquer recurso do Google Cloud. No campo nome, você pode dar um nome ao recurso e, no campo tipo, pode especificar o recurso do Google Cloud que quer criar. Você também pode definir propriedades, que são opcionais para alguns recursos.

  1. No arquivo mynetwork.tf, substitua [RESOURCE_TYPE] por "google_compute_network" (com as aspas).

Observação: o recurso google_compute_network é uma rede VPC. Os recursos disponíveis estão na documentação do provedor do Google Cloud. Saiba mais sobre esse recurso específico na documentação do Terraform (links em inglês).

  1. No arquivo mynetwork.tf, substitua [RESOURCE_NAME] por "mynetwork" (com as aspas).
  2. Adicione a seguinte propriedade ao arquivo mynetwork.tf:
auto_create_subnetworks = "true"

Por definição, uma rede no modo automático cria uma sub-rede em cada região. Portanto, você está definindo auto_create_subnetworks como true.

  1. Verifique se o arquivo mynetwork.tf está semelhante a este:
# Criar a rede mynetwork resource "google_compute_network" "mynetwork" { name = "mynetwork" # As propriedades do RECURSO vão aqui auto_create_subnetworks = "true" }
  1. Para salvar o arquivo mynetwork.tf, clique em File > Save.

Configure a regra de firewall

Defina uma regra de firewall que permita o tráfego HTTP, SSH, RDP e ICMP em mynetwork.

  1. Adicione o seguinte código base ao arquivo mynetwork.tf:
# Adicionar uma regra de firewall para permitir tráfego HTTP, SSH, RDP e ICMP em mynetwork resource [RESOURCE_TYPE] "mynetwork-allow-http-ssh-rdp-icmp" { name = [RESOURCE_NAME] # As propriedades do RECURSO vão aqui }
  1. No arquivo mynetwork.tf, substitua [RESOURCE_TYPE] por "google_compute_firewall" (com as aspas).

Observação: o recurso google_compute_firewall é uma regra de firewall. Saiba mais sobre esse recurso específico na documentação do Terraform (em inglês).

  1. No arquivo mynetwork.tf, substitua [RESOURCE_NAME] por "mynetwork-allow-http-ssh-rdp-icmp" (com as aspas).
  2. Adicione a seguinte propriedade ao arquivo mynetwork.tf:
network = google_compute_network.mynetwork.self_link

Observação: como essa regra de firewall depende da rede, você está usando a referência google_compute_network.mynetwork.self_link para instruir o Terraform a resolver esses recursos em uma ordem dependente. Nesse caso, a rede é criada antes da regra de firewall.

  1. Adicione as seguintes propriedades ao arquivo mynetwork.tf:
allow { protocol = "tcp" ports = ["22", "80", "3389"] } allow { protocol = "icmp" } source_ranges = ["0.0.0.0/0"]

A lista de regras allow especifica quais protocolos e portas são permitidos.

  1. Verifique se o arquivo mynetwork.tf está semelhante a este:
# Criar a rede mynetwork resource "google_compute_network" "mynetwork" { name = "mynetwork" # As propriedades do RECURSO vão aqui auto_create_subnetworks = "true" } # Adicionar uma regra de firewall para permitir tráfego HTTP, SSH, RDP e ICMP em mynetwork resource "google_compute_firewall" "mynetwork-allow-http-ssh-rdp-icmp" { name = "mynetwork-allow-http-ssh-rdp-icmp" # As propriedades do RECURSO vão aqui network = google_compute_network.mynetwork.self_link allow { protocol = "tcp" ports = ["22", "80", "3389"] } allow { protocol = "icmp" } source_ranges = ["0.0.0.0/0"] }
  1. Para salvar o arquivo mynetwork.tf, clique em File > Save.

Configure a instância de VM

Defina as instâncias de VM criando um módulo de instância de VM. Um módulo é uma configuração reutilizável dentro de uma pasta. Você usará esse módulo para as duas instâncias de VM deste laboratório.

  1. Para criar uma nova pasta dentro de tfinfra, selecione a pasta tfinfra e clique em File > New Folder.
  2. Nomeie a nova pasta como instance.
  3. Para criar um novo arquivo dentro de instance, clique com o botão direito na pasta instance e depois em New File.
  4. Nomeie o novo arquivo como main.tf e abra-o.

Você terá a seguinte estrutura de pastas no Cloud Shell:

  1. Copie o seguinte código base para o arquivo main.tf:
resource [RESOURCE_TYPE] "vm_instance" { name = [RESOURCE_NAME] # As propriedades do RECURSO vão aqui }
  1. No arquivo main.tf, substitua [RESOURCE_TYPE] por "google_compute_instance" (com as aspas).

Observação: o recurso google_compute_instance é uma instância do Compute Engine. Saiba mais sobre esse recurso específico na documentação do Terraform (em inglês).

  1. No arquivo main.tf, substitua [RESOURCE_NAME] por "${var.instance_name}" (com as aspas).

Você usará este módulo para as duas instâncias de VM, portanto, definirá o nome da instância como uma variável de entrada. Dessa forma, você vai controlar o nome da variável no arquivo mynetwork.tf. Saiba mais sobre variáveis de entrada no guia do Terraform sobre esse tema (em inglês).

  1. Adicione estas propriedades ao arquivo main.tf:
zone = "${var.instance_zone}" machine_type = "${var.instance_type}"

Essas propriedades definem a zona e o tipo de máquina da instância como variáveis de entrada.

  1. Adicione estas propriedades ao arquivo main.tf:
boot_disk { initialize_params { image = "debian-cloud/debian-11" } }

Essa propriedade define o disco de inicialização para usar a imagem do SO Debian 11. Como as duas instâncias de VM usarão a mesma imagem, é possível codificar essa propriedade no módulo.

  1. Adicione estas propriedades ao arquivo main.tf:
network_interface { network = "${var.instance_network}" access_config { # Alocar um IP NAT um para um à instância } }

Essa propriedade define a interface de rede ao fornecer o nome da rede como uma variável de entrada e a configuração de acesso. Deixar a configuração de acesso vazia gera um endereço IP externo temporário (obrigatório neste laboratório). Para criar instâncias com apenas um endereço IP interno, remova a seção access_config. Para mais informações, consulte a documentação do Terraform (em inglês).

  1. Verifique se a aparência do arquivo main.tf é semelhante a esta, incluindo as chaves {}
resource "google_compute_instance" "vm_instance" { name = "${var.instance_name}" zone = "${var.instance_zone}" machine_type = "${var.instance_type}" boot_disk { initialize_params { image = "debian-cloud/debian-11" } } network_interface { network = "${var.instance_network}" access_config { # Alocar um IP NAT um para um à instância } } }
  1. Para salvar o arquivo main.tf, clique em File > Save.
  2. Para criar um novo arquivo dentro de instance, clique com o botão direito na pasta instance e depois em New File.
  3. Nomeie o novo arquivo como variables.tf e abra-o.
  4. Defina as quatro variáveis de entrada em variables.tf.
variable "instance_name" {} variable "instance_zone" {} variable "instance_type" { default = "e2-micro" } variable "instance_network" {}

Quando você atribui um valor padrão à variável instance_type, ela passa a ser opcional. As variáveis instance_name, instance_zone e instance_network são obrigatórias, e você as definirá no arquivo mynetwork.tf.

  1. Para salvar o arquivo variables.tf, clique em File > Save.
  2. Adicione estas instâncias de VM ao arquivo mynetwork.tf:
# Create the mynet-vm-1 instance module "mynet-vm-1" { source = "./instance" instance_name = "mynet-vm-1" instance_zone = "{{{project_0.default_zone|Zone}}}" instance_network = google_compute_network.mynetwork.self_link } # Create the mynet-vm-2" instance module "mynet-vm-2" { source = "./instance" instance_name = "mynet-vm-2" instance_zone = "{{{project_0.default_zone_2|Zone 2}}}" instance_network = google_compute_network.mynetwork.self_link }

Esses recursos estão utilizando o módulo na pasta instance e fornecem o nome, a zona e a rede como entradas. As instâncias dependem de uma rede VPC, então você está usando a referência google_compute_network.mynetwork.self_link para instruir o Terraform a resolver esses recursos por ordem de dependência. Nesse caso, a rede é criada antes da instância.

Observação: quando você cria um módulo do Terraform, ele pode ser reutilizado em várias configurações. Em vez de criar seu próprio módulo, também é possível usar os módulos atuais no registro do módulo Terraform (em inglês).

  1. Para salvar o arquivo mynetwork.tf, clique em File > Save.

  2. Verifique se o arquivo mynetwork.tf é semelhante a isso, incluindo as chaves {}

# Create the mynetwork network resource "google_compute_network" "mynetwork" { name = "mynetwork" # RESOURCE properties go here auto_create_subnetworks = "true" } # Add a firewall rule to allow HTTP, SSH, RDP and ICMP traffic on mynetwork resource "google_compute_firewall" "mynetwork-allow-http-ssh-rdp-icmp" { name = "mynetwork-allow-http-ssh-rdp-icmp" # RESOURCE properties go here network = google_compute_network.mynetwork.self_link allow { protocol = "tcp" ports = ["22", "80", "3389"] } allow { protocol = "icmp" } source_ranges = ["0.0.0.0/0"] } # Create the mynet-vm-1 instance module "mynet-vm-1" { source = "./instance" instance_name = "mynet-vm-1" instance_zone = "{{{project_0.default_zone|Zone}}}" instance_network = google_compute_network.mynetwork.self_link } # Create the mynet-vm-2" instance module "mynet-vm-2" { source = "./instance" instance_name = "mynet-vm-2" instance_zone = "{{{project_0.default_zone_2|Zone 2}}}" instance_network = google_compute_network.mynetwork.self_link }

Crie mynetwork e os recursos relacionados

É hora de aplicar a configuração de mynetwork.

  1. Para reescrever os arquivos de configuração do Terraform em formato e estilo canônicos, execute o seguinte comando:
terraform fmt

O resultado será semelhante a este:

mynetwork.tf

Observação: se ocorrer um erro, revise as etapas anteriores para verificar se sua configuração corresponde às instruções do laboratório. Se você não conseguir resolver o problema da configuração, faça o download e confira estas configurações concluídas:

  1. Para inicializar o Terraform, execute o seguinte comando:
terraform init

O resultado será semelhante a este:

Initializing modules... - mynet-vm-2 in instance - mynet-vm-2 in instance ... O Terraform foi inicializado com sucesso.

Observação: se ocorrer um erro, revise as etapas anteriores para verificar se a estrutura de pastas/arquivos está correta. Se você não conseguir resolver o problema de configuração, consulte as configurações concluídas acima. Depois que você corrigir o problema, execute novamente o comando anterior.

  1. Para criar um plano de execução, execute o seguinte comando:
terraform plan

O resultado será semelhante a este:

... Plan: 4 to add, 0 to change, 0 to destroy. ...

O Terraform determinou que os quatro recursos a seguir precisam ser adicionados:

Nome Descrição
mynetwork Rede VPC
mynetwork-allow-http-ssh-rdp-icmp Regra de firewall para permitir HTTP, SSH, RDP e ICMP
mynet-vm-2 Instância de VM em
mynet-vm-2 Instância de VM em
  1. Para aplicar as alterações desejadas, execute o seguinte comando:
terraform apply
  1. Para confirmar as ações planejadas, digite:
yes

O resultado será semelhante a este:

... Apply complete! Resources: 4 added, 0 changed, 0 destroyed.

Clique em Verificar meu progresso para ver o objetivo. Criar mynetwork e os recursos relacionados

Observação: se ocorrer um erro durante a execução, revise as etapas anteriores para verificar se a estrutura de pastas/arquivos está correta. Se não conseguir resolver o problema de configuração, consulte as configurações concluídas acima. Depois que você corrigir o problema, execute novamente o comando anterior.

Tarefa 3: verificar a implantação

Verifique se os recursos foram criados no console do Google Cloud.

Verifique sua rede no console do Cloud

  1. No console do Cloud, acesse o Menu de navegação () e clique em Rede VPC > Redes VPC.
  2. Consulte a rede VPC mynetwork com uma sub-rede em cada região.
  3. No Menu de navegação, clique em Rede VPC > Firewall.
  4. Classifique as regras de firewall por Rede.
  5. Veja a regra de firewall mynetwork-allow-http-ssh-rdp-icmp para mynetwork.

Verifique suas instâncias de VM no console do Cloud

  1. No Menu de navegação (), clique em Compute Engine > Instâncias de VM.
  2. Confira as instâncias mynet-vm-1 e mynet-vm-2.
  3. Anote o endereço IP interno da mynet-vm-2.
  4. Em mynet-vm-1, clique em SSH para iniciar um terminal e se conectar.
  5. Para testar a conectividade com o endereço IP interno de mynet-vm-2, execute o comando abaixo no terminal SSH (substituindo o endereço IP interno de mynet-vm-2 pelo valor que você anotou):
ping -c 3 <Enter mynet-vm-2's internal IP here> Observação: isso deve funcionar porque as duas instâncias de VM estão na mesma rede e a regra de firewall permite o tráfego ICMP.

Tarefa 4: revise

Neste laboratório, você criou uma configuração do Terraform com um módulo para automatizar a implantação da infraestrutura do Google Cloud. À medida que a configuração muda, o Terraform pode criar planos de execução adicionais para você implementar na sua configuração geral passo a passo.

O módulo de instância permitiu que você reutilizasse a mesma configuração para vários recursos, fornecendo propriedades como variáveis de entrada. Você pode usar a configuração e o módulo criados como ponto de partida para futuras implantações.

Finalize o laboratório

Clique em Terminar o laboratório após a conclusão. O Google Cloud Ensina remove os recursos usados e limpa a conta por você.

Você vai poder avaliar sua experiência no laboratório. Basta selecionar o número de estrelas, digitar um comentário e clicar em Enviar.

O número de estrelas indica o seguinte:

  • 1 estrela = muito insatisfeito
  • 2 estrelas = insatisfeito
  • 3 estrelas = neutro
  • 4 estrelas = satisfeito
  • 5 estrelas = muito satisfeito

Feche a caixa de diálogo se não quiser enviar feedback.

Para enviar seu feedback, fazer sugestões ou correções, use a guia Suporte.

Copyright 2020 Google LLC. Todos os direitos reservados. Google e o logotipo do Google são marcas registradas da Google LLC. Todos os outros nomes de produtos e empresas podem ser marcas registradas das respectivas empresas a que estão associados.

Anterior Seguinte

Antes de começar

  1. Os laboratórios criam um projeto e recursos do Google Cloud por um período fixo
  2. Os laboratórios têm um limite de tempo e não têm o recurso de pausa. Se você encerrar o laboratório, vai precisar recomeçar do início.
  3. No canto superior esquerdo da tela, clique em Começar o laboratório

Este conteúdo não está disponível no momento

Você vai receber uma notificação por e-mail quando ele estiver disponível

Ótimo!

Vamos entrar em contato por e-mail se ele ficar disponível

Um laboratório por vez

Confirme para encerrar todos os laboratórios atuais e iniciar este

Use a navegação anônima para executar o laboratório

Para executar este laboratório, use o modo de navegação anônima ou uma janela anônima do navegador. Isso evita conflitos entre sua conta pessoal e a conta de estudante, o que poderia causar cobranças extras na sua conta pessoal.
Visualizar