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 Cloud de Confiance (penyedia Cloud de Confiance ) memungkinkan Anda menyediakan dan mengelola infrastruktur Cloud de Confiance .
Sebelum memulai
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.
-
Buat atau pilih Cloud de Confiance project.
Peran yang diperlukan untuk memilih atau membuat project
- Pilih 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 Pembuat Project
(
roles/resourcemanager.projectCreator), yang berisi izinresourcemanager.projects.create. Pelajari cara memberikan peran.
-
Buat Cloud de Confiance project:
gcloud projects create PROJECT_ID
Ganti
PROJECT_IDdengan nama untuk Cloud de Confiance project yang Anda buat. -
Pilih project Cloud de Confiance yang Anda buat:
gcloud config set project PROJECT_ID
Ganti
PROJECT_IDdengan nama project Cloud de Confiance Anda.
-
Verifikasi bahwa penagihan diaktifkan untuk project Cloud de Confiance Anda.
-
Aktifkan Compute Engine API:
Peran yang diperlukan untuk mengaktifkan API
Untuk mengaktifkan API, Anda memerlukan peran IAM Service Usage Admin (
roles/serviceusage.serviceUsageAdmin), yang berisi izinserviceusage.services.enable. Pelajari cara memberikan peran.gcloud services enable compute.googleapis.com
-
Memberikan peran ke akun pengguna Anda. Jalankan perintah berikut satu kali untuk setiap peran IAM berikut:
roles/compute.instanceAdmin.v1gcloud projects add-iam-policy-binding PROJECT_ID --member="user:USER_IDENTIFIER" --role=ROLE
Ganti kode berikut:
PROJECT_ID: Project ID Anda.USER_IDENTIFIER: ID untuk akun akun. Untuk melihat contoh, lihat Merepresentasikan pengguna workforce pool dalam kebijakan IAM.ROLE: Peran IAM yang Anda berikan ke akun pengguna Anda.
Menyiapkan lingkungan
Clone repositori GitHub yang berisi contoh Terraform:
git clone https://github.com/terraform-google-modules/terraform-docs-samples.git --single-branchBuka direktori yang berisi contoh panduan memulai:
cd terraform-docs-samples/compute/quickstart/create_vm
Meninjau file Terraform
Tinjau file main.tf. File ini menentukan resource Cloud de Confiance
yang ingin Anda buat.
cat main.tf
Outputnya mirip dengan berikut ini
File ini menjelaskan
resource google_compute_instance, yang merupakan resource Terraform untuk instance VM Compute Engine. google_compute_instance dikonfigurasi untuk memiliki properti berikut:
namedisetel kemy-vm.machine_typedisetel ken1-standard-1.zonedisetel keus-central1-a.boot_diskmenetapkan boot disk untuk instance.network_interfacedisetel untuk menggunakan jaringan default di project Cloud de Confiance Anda.
Buat instance VM Compute Engine
Di Cloud Shell, jalankan perintah berikut untuk memverifikasi bahwa Terraform sudah tersedia:
terraformOutputnya 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 infrastructureLakukan inisialisasi Terraform dengan menjalankan perintah berikut. Perintah ini menyiapkan ruang kerja Anda sehingga Terraform dapat menerapkan konfigurasi Anda.
terraform initOutputnya 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!Validasi konfigurasi Terraform dengan menjalankan perintah berikut. Perintah ini melakukan tindakan berikut:
- Memverifikasi bahwa sintaksis
main.tfsudah benar. - Menampilkan pratinjau resource yang akan dibuat.
terraform planOutputnya 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.- Memverifikasi bahwa sintaksis
Terapkan konfigurasi untuk menyediakan resource yang dijelaskan dalam file
main.tf:terraform applySaat diminta, masukkan
yes.Terraform memanggil API Cloud de Confiance 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 Cloud de Confiance Anda tidak dikenai biaya untuk resource yang digunakan pada halaman ini, hapus project Cloud de Confiance yang berisi resource tersebut.
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
- Pelajari cara men-deploy server web Flask dasar menggunakan Terraform.
- Pelajari cara menyimpan status Terraform di bucket Cloud Storage.