Guia de início rápido: criar uma instância de VM usando o Terraform
Neste guia de início rápido, você vai aprender a usar o Terraform para criar uma instância de máquina virtual (VM) e conectar-se a ela.
Hashicorp Terraform é uma ferramenta de infraestrutura como código (IaC, na sigla em inglês) que permite provisionar e gerenciar infraestrutura em nuvem. O Provedor do Terraform para o Google Cloud (provedor do Google Cloud) permite provisionar e gerenciar a infraestrutura do Google Cloud.
Antes de começar
Para usar um terminal on-line com a gcloud CLI e o Terraform já configurados, ative o Cloud Shell:
Na parte de baixo desta página, uma sessão do Cloud Shell é iniciada e exibe um prompt de linha de comando. A inicialização da sessão pode levar alguns segundos.
-
Create or select a Google Cloud project.
-
Create a Google Cloud project:
gcloud projects create PROJECT_ID
Replace
PROJECT_ID
with a name for the Google Cloud project you are creating. -
Select the Google Cloud project that you created:
gcloud config set project PROJECT_ID
Replace
PROJECT_ID
with your Google Cloud project name.
-
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Compute Engine API:
gcloud services enable compute.googleapis.com
-
Grant roles to your user account. Run the following command once for each of the following IAM roles:
roles/compute.instanceAdmin.v1
gcloud projects add-iam-policy-binding PROJECT_ID --member="user:USER_IDENTIFIER" --role=ROLE
- Replace
PROJECT_ID
with your project ID. -
Replace
USER_IDENTIFIER
with the identifier for your user account. For examples, see Represent workforce pool users in IAM policies. - Replace
ROLE
with each individual role.
- Replace
Prepare o ambiente
Clone o repositório do GitHub que contém exemplos do Terraform:
git clone https://github.com/terraform-google-modules/terraform-docs-samples.git --single-branch
Acesse o diretório que contém o exemplo do guia de início rápido:
cd terraform-docs-samples/compute/quickstart/create_vm
Revisar os arquivos do Terraform
Revise o arquivo main.tf
. Esse arquivo define os recursos do Google Cloud
que você quer criar.
cat main.tf
A saída será assim
Esse arquivo descreve o
recurso google_compute_instance
, que é o recurso do Terraform para
instâncias de VM do Compute Engine. google_compute_instance
está configurado para
ter as seguintes propriedades:
name
, definida comomy-vm
.machine_type
, definida comon1-standard-1
.zone
, definida comous-central1-a
.boot_disk
define o disco de inicialização da instância.network_interface
está configurado para usar a rede padrão no seu projeto do Google Cloud.
Criar a instância de VM do Compute Engine
No Cloud Shell, execute o seguinte comando para verificar se o Terraform está disponível:
terraform
A saída será semelhante a esta:
Usage: terraform [global options] <subcommand> [args] The available commands for execution are listed below. The primary workflow commands are given first, followed by less common or more advanced commands. Main commands: init Prepare your working directory for other commands validate Check whether the configuration is valid plan Show changes required by the current configuration apply Create or update infrastructure destroy Destroy previously-created infrastructure
Inicialize o Terraform executando o seguinte comando. Esse comando prepara seu espaço de trabalho para que o Terraform aplique sua configuração.
terraform init
A saída será semelhante a esta:
Initializing the backend... Initializing provider plugins... - Finding latest version of hashicorp/google... - Installing hashicorp/google v5.35.0... - Installed hashicorp/google v5.35.0 (signed by HashiCorp) Terraform has created a lock file .terraform.lock.hcl to record the provider selections it made above. Include this file in your version control repository so that Terraform can guarantee to make the same selections by default when you run "terraform init" in the future. Terraform has been successfully initialized!
Valide a configuração do Terraform executando o comando a seguir. Esse comando realiza as seguintes ações:
- verifica se a sintaxe de
main.tf
está correta; - mostra uma prévia dos recursos que serão criados.
terraform plan
A saída será semelhante a esta:
Plan: 1 to add, 0 to change, 0 to destroy. Note: You didn't use the -out option to save this plan, so Terraform can't guarantee to take exactly these actions if you run "terraform apply" now.
- verifica se a sintaxe de
Aplique a configuração para provisionar os recursos descritos no arquivo
main.tf
:terraform apply
Quando solicitado, digite
yes
.O Terraform chama as APIs do Google Cloud para criar a instância de VM definida no arquivo
main.tf
.A saída será semelhante a esta:
Apply complete! Resources: 1 added, 0 changed, 0 destroyed
Conectar-se à instância de VM
Execute o comando a seguir para se conectar à instância de VM recém-criada:
gcloud compute ssh --zone=us-central1-a my-vm
Limpar
Para evitar cobranças na sua conta do Google Cloud pelos recursos usados nesta página, exclua o projeto do Google Cloud com esses recursos.
No Cloud Shell, execute o seguinte comando para excluir os recursos do Terraform:
terraform destroy
Quando solicitado, digite yes
.
A saída será semelhante a esta:
Destroy complete! Resources: 1 destroyed.