Panduan memulai: Membuat instance VM menggunakan Terraform

Dalam panduan memulai ini, Anda akan mempelajari cara menggunakan Terraform untuk membuat instance Virtual Machine (VM) Compute Engine dan terhubung ke instance VM tersebut.

Hashicorp Terraform adalah alat Infrastructure as Code (IaC) yang memungkinkan Anda menyediakan dan mengelola infrastruktur cloud. Penyedia Terraform untuk Google Cloud (Google Cloud penyedia) memungkinkan Anda menyediakan dan mengelola Google Cloud infrastruktur.

Sebelum memulai

  1. Untuk menggunakan terminal online dengan gcloud CLI dan Terraform yang sudah disiapkan, aktifkan Cloud Shell:

    Di bagian bawah halaman ini, sesi Cloud Shell akan dimulai dan menampilkan perintah command line. Diperlukan waktu beberapa detik untuk melakukan inisialisasi sesi.

  2. Buat atau pilih Google Cloud project.

    Peran yang diperlukan untuk memilih atau membuat project

    • Memilih project: Memilih project tidak memerlukan peran IAM tertentu Anda dapat memilih project mana pun yang telah diberi peran.
    • Membuat project: Untuk membuat project, Anda memerlukan peran Project Creator (roles/resourcemanager.projectCreator), yang berisi izin resourcemanager.projects.create. Pelajari cara memberikan peran.
    • Buat Google Cloud project:

      gcloud projects create PROJECT_ID

      Ganti PROJECT_ID dengan nama untuk Google Cloud project yang Anda buat.

    • Pilih Google Cloud project yang Anda buat:

      gcloud config set project PROJECT_ID

      Ganti PROJECT_ID dengan nama Google Cloud project Anda.

  3. Pastikan penagihan diaktifkan untuk Google Cloud project Anda.

  4. Aktifkan Compute Engine API:

    Peran yang diperlukan untuk mengaktifkan API

    Untuk mengaktifkan API, Anda memerlukan izin serviceusage.services.enable. Jika Anda membuat project, kemungkinan Anda sudah memiliki izin ini melalui peran Pemilik (roles/owner). Jika tidak, Anda bisa mendapatkan izin ini melalui peran Admin Penggunaan Layanan (roles/serviceusage.serviceUsageAdmin). Pelajari cara memberikan peran.

    gcloud services enable compute.googleapis.com
  5. Berikan peran ke akun pengguna Anda. Jalankan perintah berikut satu kali untuk setiap peran IAM berikut: roles/compute.instanceAdmin.v1

    gcloud projects add-iam-policy-binding PROJECT_ID --member="user:USER_IDENTIFIER" --role=ROLE

    Ganti kode berikut:

Menyiapkan lingkungan

  1. Clone repositori GitHub yang berisi contoh Terraform:

    git clone https://github.com/terraform-google-modules/terraform-docs-samples.git --single-branch
    
  2. Buka direktori yang berisi contoh panduan memulai:

    cd terraform-docs-samples/compute/quickstart/create_vm
    

Meninjau file Terraform

Tinjau file main.tf. File ini menentukan Google Cloud resource yang ingin Anda buat.

cat main.tf

Outputnya mirip dengan berikut ini

resource "google_compute_instance" "default" {
  name         = "my-vm"
  machine_type = "n1-standard-1"
  zone         = "us-central1-a"

  boot_disk {
    initialize_params {
      image = "ubuntu-minimal-2210-kinetic-amd64-v20230126"
    }
  }

  network_interface {
    network = "default"
    access_config {}
  }
}

File ini menjelaskan resource google_compute_instance resource, yang merupakan resource Terraform untuk instance VM Compute Engine. google_compute_instance dikonfigurasi untuk memiliki properti berikut:

  • name disetel ke my-vm.
  • machine_type disetel ke n1-standard-1.
  • zone disetel ke us-central1-a.
  • boot_disk menetapkan boot disk untuk instance.
  • network_interface disetel untuk menggunakan jaringan default di Google Cloud project Anda.

Membuat instance VM Compute Engine

  1. Di Cloud Shell, jalankan perintah berikut untuk memverifikasi bahwa Terraform sudah tersedia:

    terraform
    

    Outputnya akan mirip dengan berikut ini:

    
    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
    
    
  2. Lakukan inisialisasi Terraform dengan menjalankan perintah berikut. Perintah ini menyiapkan ruang kerja Anda sehingga Terraform dapat menerapkan konfigurasi Anda.

    terraform init
    

    Outputnya akan mirip dengan berikut ini:

    
    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!
    
    
  3. Validasi konfigurasi Terraform dengan menjalankan perintah berikut. Perintah ini melakukan tindakan berikut:

    • Memverifikasi bahwa sintaksis main.tf benar.
    • Menampilkan pratinjau resource yang akan dibuat.
    terraform plan
    

    Outputnya akan mirip dengan berikut ini:

    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.
    
  4. Terapkan konfigurasi untuk menyediakan resource yang dijelaskan dalam file main.tf:

    terraform apply
    

    Saat diminta, masukkan yes.

    Terraform memanggil Google Cloud API untuk membuat instance VM yang ditentukan dalam file main.tf.

    Outputnya akan mirip dengan berikut ini:

    Apply complete! Resources: 1 added, 0 changed, 0 destroyed
    

Terhubung ke instance VM

Hubungkan ke instance VM yang baru saja Anda buat dengan menjalankan perintah berikut:

gcloud compute ssh --zone=us-central1-a my-vm

Pembersihan

Agar akun Anda tidak dikenai biaya untuk resource yang digunakan pada halaman ini, hapus project yang berisi resource tersebut. Google Cloud Google Cloud

Di Cloud Shell, jalankan perintah berikut untuk menghapus resource Terraform:

terraform destroy

Saat diminta, masukkan yes.

Outputnya akan mirip dengan berikut ini:

Destroy complete! Resources: 1 destroyed.

Langkah berikutnya