Create mynetwork and its resources

Verificar meu progresso

/ 100

Este laboratório pode incorporar ferramentas de IA para ajudar no seu aprendizado.

Visão geral

Com o Terraform, é possível criar, modificar e melhorar a infraestrutura de forma segura e previsível. Ele é uma ferramenta de código aberto que transforma APIs em arquivos de configuração declarativos, que podem ser compartilhados entre membros da equipe, tratados como código, editados, revisados e versionados.

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, como mostrado neste diagrama:

Diagrama de configuração do Terraform

Objetivos

Neste laboratório, você vai 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 instâncias
  • 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: clique em Menu de navegação no canto superior esquerdo para acessar uma lista de produtos e serviços do Google Cloud. Ícone do menu de navegação

Tarefa 1: configurar o Terraform e o Cloud Shell

Nesta tarefa, você vai preparar o seu ambiente do Cloud Shell para operar com o Terraform.

Ative o Google Cloud Shell

O Google Cloud Shell é uma máquina virtual com ferramentas de desenvolvimento. Ele tem um diretório principal permanente de 5 GB e é executado no Google Cloud.

O Cloud Shell oferece acesso de linha de comando aos recursos do Google Cloud.

  1. No console do Cloud, clique no botão "Abrir o Cloud Shell" na barra de ferramentas superior direita.

    Ícone do Cloud Shell em destaque

  2. Clique em Continuar.

O provisionamento e a conexão do ambiente podem demorar um pouco. Quando você estiver conectado, já estará autenticado, e o projeto estará definido com seu PROJECT_ID. Exemplo:

ID do projeto em destaque no terminal do Cloud Shell

A gcloud é a ferramenta de linha de comando do Google Cloud. Ela vem pré-instalada no Cloud Shell e aceita preenchimento com tabulação.

  • Para listar o nome da conta ativa, use este comando:
gcloud auth list

Saída:

Credentialed accounts: - @.com (active)

Exemplo de saída:

Credentialed accounts: - google1623327_student@qwiklabs.net
  • Para listar o ID do projeto, use este comando:
gcloud config list project

Saída:

[core] project =

Exemplo de saída:

[core] project = qwiklabs-gcp-44776a13dea667a6 Observação: a documentação completa da gcloud está disponível no guia com informações gerais sobre a gcloud CLI .

Instalar o Terraform

O Terraform não vem pré-instalado no Cloud Shell. É necessário instalar a CLI do Terraform e configurá-la para que permaneça disponível em todas as suas sessões do Cloud Shell.

  1. Para configurar o repositório da HashiCorp e instalar o Terraform, e para garantir que essa instalação persista em sessões futuras, execute os seguintes comandos no terminal do Cloud Shell:
cat <<'EOF' > ~/.customize_environment # Set up HashiCorp repository and install Terraform wget -O - https://apt.releases.hashicorp.com/gpg | sudo gpg --dearmor -o /usr/share/keyrings/hashicorp-archive-keyring.gpg echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/hashicorp-archive-keyring.gpg] https://apt.releases.hashicorp.com $(grep -oP '(?<=UBUNTU_CODENAME=).*' /etc/os-release || lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/hashicorp.list sudo apt update && sudo apt install -y terraform EOF bash ~/.customize_environment
  1. Para verificar se o Terraform foi instalado corretamente, execute:
terraform --version

A saída vai mostrar a versão instalada (v1.5.7 ou mais recente):

Terraform v1.9.0

Criar os arquivos de configuração

Agora que o Terraform está instalado, crie o diretório e os arquivos para a sua configuração.

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

Observação: se a mensagem "Não foi possível carregar o editor de código porque os cookies de terceiros estão desativados" aparecer, 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. Você terá que acessar o terminal do Cloud Shell várias vezes durante este laboratório.

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

Inicializar 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 próprio, distribuído de forma independente do Terraform. Defina o Google como provedor para inicializar o Terraform.

  1. Para criar um novo arquivo dentro da pasta tfinfra, clique com o botão direito do mouse na pasta tfinfra e selecione Novo arquivo.
  2. Nomeie o arquivo provider.tf e abra.
  3. Copie este código e cole em provider.tf:
provider "google" {}
  1. Para salvar o arquivo provider.tf, clique em Arquivo > Salvar.

  2. Para inicializar o Terraform, execute este comando:

cd tfinfra terraform init

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).

Configurar 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 Novo arquivo.
  2. Nomeie o arquivo mynetwork.tf e abra.
  3. Copie este código base e cole em 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 é possível nomear o recurso e, no campo tipo, especificar o recurso do Google Cloud que você quer criar. Também é possível definir propriedades, mas elas 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. Consulte os recursos disponíveis na documentação do provedor do Google Cloud. Saiba mais sobre esse recurso específico na documentação do Terraform.

  1. No arquivo mynetwork.tf, substitua [RESOURCE_NAME] por "mynetwork" (com as aspas).
  2. Adicione esta 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 automaticamente. Por isso, você vai definir auto_create_subnetworks como true.

  1. Verifique se o arquivo mynetwork.tf está mais ou menos assim:
# 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 Arquivo > Salvar.

Configurar a regra de firewall

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

  1. Adicione este 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 (link em inglês).

  1. No arquivo mynetwork.tf, substitua [RESOURCE_NAME] por "mynetwork-allow-http-ssh-rdp-icmp" (com as aspas).
  2. Adicione esta 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 orientar o Terraform a criar esses recursos seguindo a ordem de dependência. Nesse caso, a rede é criada antes da regra de firewall.

  1. Adicione estas 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 define os protocolos e portas que têm permissão de acesso.

  1. Verifique se o arquivo mynetwork.tf está mais ou menos assim:
# 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 Arquivo > Salvar.

Configurar 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ê vai 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 Arquivo > Nova pasta.
  2. Dê o nome instance à nova pasta.
  3. Para criar um novo arquivo dentro de instance, clique com o botão direito na pasta instance e depois em Novo arquivo.
  4. Dê o nome main.tf ao novo arquivo e abra.

Sua estrutura de pastas no Cloud Shell deve ficar assim:

Estrutura da pasta

  1. Copie este 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.

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

Como você vai usar este módulo para as duas instâncias de VM, o nome da instância será definido como uma variável de entrada. Dessa forma, você consegue controlar o nome da variável no arquivo mynetwork.tf. Saiba mais sobre variáveis de entrada no guia do Terraform sobre esse tema.

  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-12" } }

Essa propriedade define o disco de inicialização para usar a imagem do SO Debian 12. Como as duas instâncias de VM vão usar a mesma imagem, você pode definir essa propriedade diretamente no código do 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.

  1. Verifique se o arquivo main.tf ficou assim, 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-12" } } 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 Arquivo > Salvar.
  2. Para criar um novo arquivo dentro de instance, clique com o botão direito na pasta instance e depois em Novo arquivo.
  3. Dê o nome variables.tf ao novo arquivo e abra.
  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" {}

Ao definir um valor padrão para instance_type, você torna a variável opcional. As variáveis instance_name, instance_zone e instance_network são obrigatórias e serão definidas no arquivo mynetwork.tf.

  1. Para salvar o arquivo variables.tf, clique em Arquivo > Salvar.
  2. Adicione estas instâncias de VM ao arquivo mynetwork.tf:
# Criar a instância mynet-vm-1 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 } # Criar a instância mynet-vm-2" 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 aproveitam o módulo na pasta instance e fornecem o nome, a zona e a rede como variáveis de entrada. Como essas instâncias dependem de uma rede VPC, você está usando a referência google_compute_network.mynetwork.self_link para instruir o Terraform a resolver esses recursos em uma 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 escrever seu próprio módulo, você também pode aproveitar os módulos do Terraform Module registry.

  1. Para salvar o arquivo mynetwork.tf, clique em Arquivo > Salvar.

  2. Verifique se o arquivo mynetwork.tf se parece com o conteúdo a seguir, incluindo as chaves {}

# 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"] } # Criar a instância mynet-vm-1 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 } # Criar a instância mynet-vm-2" 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 }

Criar mynetwork e os recursos relacionados

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

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

O resultado será algo assim:

mynetwork.tf

Observação: em caso de erro, revise as etapas anteriores para ver se sua configuração corresponde exatamente às instruções do laboratório. Se você não conseguir resolver o problema na sua configuração, faça o download e dê uma olhada nestas configurações prontas:

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

O resultado será algo assim:

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

Observação: em caso de erro, revise as etapas anteriores para ver se a estrutura de pastas/arquivos está correta. Se você não conseguir resolver o problema de configuração, consulte as configurações prontas dos links acima. Depois que você corrigir o problema, execute o comando anterior outra vez.

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

O resultado será algo assim:

... 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 mudanças, execute este comando:
terraform apply
  1. Para confirmar as ações planejadas, digite:
yes

O resultado será algo assim:

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

Clique em Verificar meu progresso para dar uma olhada no objetivo. Criar mynetwork e os recursos relacionados

Observação: em caso de erro durante a execução, 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 prontas dos links acima. Depois que você corrigir o problema, execute o comando anterior outra vez.

Tarefa 3: verificar sua implantação

Confirme que os recursos foram criados no console do Google Cloud.

Verificar sua rede de nuvem privada virtual (VPC) no console do Google Cloud

  1. No console do Google Cloud, no Menu de navegação (Ícone do menu de navegação), 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. Visualize a regra de firewall mynetwork-allow-http-ssh-rdp-icmp da rede mynetwork.

Verifique suas instâncias de VM no console do Cloud

  1. No Menu de navegação (Ícone do 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: revisar

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 etapa por etapa.

Com o módulo de instância, você reutilizou a mesma configuração para vários recursos, definindo propriedades por meio de variáveis de entrada. Você pode aproveitar a configuração e o módulo que criou como ponto de partida para futuras implantações.

Finalize o laboratório

Após concluir o laboratório, clique em Terminar o laboratório. O Google Skills remove os recursos usados e limpa a conta para você.

Você poderá classificar sua experiência neste 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 2026 Google LLC. Todos os direitos reservados. Google e o logotipo do Google são marcas registradas da Google LLC. Todos os outros nomes de empresas e produtos podem ser marcas registradas das empresas a que estão associados.

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

Usar a navegação anônima

  1. Copie o nome de usuário e a senha fornecidos para o laboratório
  2. Clique em Abrir console no modo anônimo

Fazer login no console

  1. Faça login usando suas credenciais do laboratório. Usar outras credenciais pode causar erros ou gerar cobranças.
  2. Aceite os termos e pule a página de recursos de recuperação
  3. Não clique em Terminar o laboratório a menos que você tenha concluído ou queira recomeçar, porque isso vai apagar seu trabalho e remover o projeto

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

A melhor maneira de executar este laboratório é usando uma janela de navegação anônima ou privada. Isso evita conflitos entre sua conta pessoal e a conta de estudante, o que poderia causar cobranças extras na sua conta pessoal.