GSP156

Ringkasan
Terraform berguna untuk membuat, mengubah, dan meningkatkan kualitas infrastruktur dengan aman dan terprediksi. Terraform adalah alat open source yang mengodifikasi API menjadi file konfigurasi deklaratif yang bisa dibagikan kepada rekan kerja, diperlakukan sebagai kode, diedit, ditinjau, dan dibuatkan versi.
Tujuan
Di lab ini, Anda akan mempelajari cara melakukan tugas berikut:
- Mulai menggunakan Terraform di Google Cloud
- Menginstal Terraform dari program biner penginstalan
- Membuat infrastruktur instance VM menggunakan Terraform
Penyiapan dan persyaratan
Sebelum mengklik tombol Start Lab
Baca petunjuk ini. Lab memiliki timer dan Anda tidak dapat menjedanya. Timer yang dimulai saat Anda mengklik Start Lab akan menampilkan durasi ketersediaan resource Google Cloud untuk Anda.
Lab interaktif ini dapat Anda gunakan untuk melakukan aktivitas lab di lingkungan cloud sungguhan, bukan di lingkungan demo atau simulasi. Untuk mengakses lab ini, Anda akan diberi kredensial baru yang bersifat sementara dan dapat digunakan untuk login serta mengakses Google Cloud selama durasi lab.
Untuk menyelesaikan lab ini, Anda memerlukan:
- Akses ke browser internet standar (disarankan browser Chrome).
Catatan: Gunakan jendela Samaran (direkomendasikan) atau browser pribadi untuk menjalankan lab ini. Hal ini akan mencegah konflik antara akun pribadi Anda dan akun siswa yang dapat menyebabkan tagihan ekstra pada akun pribadi Anda.
- Waktu untuk menyelesaikan lab. Ingat, setelah dimulai, lab tidak dapat dijeda.
Catatan: Hanya gunakan akun siswa untuk lab ini. Jika Anda menggunakan akun Google Cloud yang berbeda, Anda mungkin akan dikenai tagihan ke akun tersebut.
Cara memulai lab dan login ke Google Cloud Console
-
Klik tombol Start Lab. Jika Anda perlu membayar lab, dialog akan terbuka untuk memilih metode pembayaran.
Di sebelah kiri ada panel Lab Details yang berisi hal-hal berikut:
- Tombol Open Google Cloud console
- Waktu tersisa
- Kredensial sementara yang harus Anda gunakan untuk lab ini
- Informasi lain, jika diperlukan, untuk menyelesaikan lab ini
-
Klik Open Google Cloud console (atau klik kanan dan pilih Open Link in Incognito Window jika Anda menjalankan browser Chrome).
Lab akan menjalankan resource, lalu membuka tab lain yang menampilkan halaman Sign in.
Tips: Atur tab di jendela terpisah secara berdampingan.
Catatan: Jika Anda melihat dialog Choose an account, klik Use Another Account.
-
Jika perlu, salin Username di bawah dan tempel ke dialog Sign in.
{{{user_0.username | "Username"}}}
Anda juga dapat menemukan Username di panel Lab Details.
-
Klik Next.
-
Salin Password di bawah dan tempel ke dialog Welcome.
{{{user_0.password | "Password"}}}
Anda juga dapat menemukan Password di panel Lab Details.
-
Klik Next.
Penting: Anda harus menggunakan kredensial yang diberikan lab. Jangan menggunakan kredensial akun Google Cloud Anda.
Catatan: Menggunakan akun Google Cloud sendiri untuk lab ini dapat dikenai biaya tambahan.
-
Klik halaman berikutnya:
- Setujui persyaratan dan ketentuan.
- Jangan tambahkan opsi pemulihan atau autentikasi 2 langkah (karena ini akun sementara).
- Jangan mendaftar uji coba gratis.
Setelah beberapa saat, Konsol Google Cloud akan terbuka di tab ini.
Catatan: Untuk mengakses produk dan layanan Google Cloud, klik Navigation menu atau ketik nama layanan atau produk di kolom Search.
Mengaktifkan Cloud Shell
Cloud Shell adalah mesin virtual yang dilengkapi dengan berbagai alat pengembangan. Mesin virtual ini menawarkan direktori beranda persisten berkapasitas 5 GB dan berjalan di Google Cloud. Cloud Shell menyediakan akses command-line untuk resource Google Cloud Anda.
-
Klik Activate Cloud Shell
di bagian atas Konsol Google Cloud.
-
Klik jendela berikut:
- Lanjutkan melalui jendela informasi Cloud Shell.
- Beri otorisasi ke Cloud Shell untuk menggunakan kredensial Anda guna melakukan panggilan Google Cloud API.
Setelah terhubung, Anda sudah diautentikasi, dan project ditetapkan ke Project_ID, . Output berisi baris yang mendeklarasikan Project_ID untuk sesi ini:
Project Cloud Platform Anda dalam sesi ini disetel ke {{{project_0.project_id | "PROJECT_ID"}}}
gcloud
adalah alat command line untuk Google Cloud. Alat ini sudah terinstal di Cloud Shell dan mendukung pelengkapan command line.
- (Opsional) Anda dapat menampilkan daftar nama akun yang aktif dengan perintah ini:
gcloud auth list
- Klik Authorize.
Output:
ACTIVE: *
ACCOUNT: {{{user_0.username | "ACCOUNT"}}}
Untuk menetapkan akun aktif, jalankan:
$ gcloud config set account `ACCOUNT`
- (Opsional) Anda dapat menampilkan daftar ID project dengan perintah ini:
gcloud config list project
Output:
[core]
project = {{{project_0.project_id | "PROJECT_ID"}}}
Catatan: Untuk mendapatkan dokumentasi gcloud
yang lengkap di Google Cloud, baca panduan ringkasan gcloud CLI.
Apa yang dimaksud dengan Terraform?
Terraform adalah alat untuk membangun, mengubah, dan membuat versi infrastruktur dengan aman dan efisien. Terraform dapat mengelola penyedia layanan populer yang sudah ada dan solusi internal khusus.
File konfigurasi menjelaskan kepada Terraform komponen yang diperlukan untuk menjalankan satu aplikasi atau seluruh pusat data. Terraform membuat rencana eksekusi yang mendeskripsikan tindakan yang akan dilakukannya untuk mencapai status yang diinginkan, lalu menjalankan rencana tersebut untuk membangun infrastruktur yang dideskripsikan. Saat perubahan konfigurasi terjadi, Terraform dapat menentukan apa yang berubah dan membuat rencana eksekusi inkremental yang dapat diterapkan.
Terraform dapat mengelola infrastruktur baik itu komponen tingkat rendah seperti instance komputasi, penyimpanan, dan jaringan, maupun komponen tingkat tinggi seperti entri DNS dan fitur SaaS.
Fitur utama
Infrastructure as code
Infrastruktur dideskripsikan menggunakan sintaksis konfigurasi tingkat tinggi. Hal ini memungkinkan cetak biru pusat data Anda dibuatkan versinya dan diperlakukan sama seperti halnya kode lain. Selain itu, infrastruktur dapat dibagikan dan digunakan kembali.
Rencana eksekusi
Terraform memiliki langkah perencanaan tempatnya membuat rencana eksekusi. Rencana eksekusi ini menunjukkan tindakan yang akan dilakukan Terraform saat Anda menjalankan perintah apply
. Dengan begitu, Anda tidak akan terkejut saat Terraform memanipulasi infrastruktur.
Grafik resource
Terraform membuat grafik yang menampilkan semua resource Anda serta memparalelkan pembuatan dan modifikasi terhadap semua resource. Karena itulah, Terraform dapat membangun infrastruktur yang sangat efisien, dan operator dapat memperoleh insight tentang dependensi di infrastruktur mereka.
Otomatisasi perubahan
Rangkaian perubahan yang kompleks dapat diterapkan ke infrastruktur tanpa memerlukan banyak interaksi manual. Dengan rencana eksekusi dan grafik resource yang disebutkan di atas, Anda dapat mengetahui dengan pasti apa yang akan diubah oleh Terraform dan bagaimana urutan pengubahannya. Hal ini membantu Anda menghindari banyak kesalahan manusia yang mungkin terjadi.
Tugas 1. Memverifikasi penginstalan Terraform
Terraform sudah terinstal di Cloud Shell.
- Buka tab Cloud Shell baru dan verifikasi bahwa Terraform tersedia:
terraform
Output bantuan yang dihasilkan akan mirip dengan yang berikut ini:
Usage: terraform [--version] [--help] [args]
The available commands for execution are listed below. The most common, useful commands are shown first, followed by less common or more advanced commands. If you're just getting started with Terraform, stick with the common commands. For the other commands, please read the help and docs before usage.
Common commands: apply Builds or changes infrastructure console Interactive console for Terraform interpolations destroy Destroy Terraform-managed infrastructure env Workspace management fmt Rewrites config files to canonical format get Download and install modules for the configuration graph Create a visual graph of Terraform resources import Import existing infrastructure into Terraform init Initialize a Terraform working directory output Read an output from a state file plan Generate and show an execution plan providers Prints a tree of the providers used in the configuration push Upload this Terraform module to Atlas to run refresh Update local state file against real resources show Inspect Terraform state or plan taint Manually mark a resource for recreation untaint Manually unmark a resource as tainted validate Validates the Terraform files version Prints the Terraform version workspace Workspace management
All other commands: debug Debug output management (experimental) force-unlock Manually unlock the terraform state state Advanced state management
Tugas 2. Membangun infrastruktur
Setelah Terraform terinstal, Anda dapat segera mulai membuat infrastruktur.
Konfigurasi
Rangkaian file yang digunakan untuk mendeskripsikan infrastruktur di Terraform disebut konfigurasi Terraform
. Di bagian ini, Anda akan menulis konfigurasi pertama Anda untuk meluncurkan satu instance VM. Format file konfigurasi dapat dilihat di Terraform Language Documentation. Sebaiknya Anda menggunakan JSON untuk membuat file konfigurasi.
- Di Cloud Shell, buat file konfigurasi kosong yang bernama
instance.tf
dengan perintah berikut:
touch instance.tf
-
Klik Open Editor di toolbar Cloud Shell.
Untuk beralih antara Cloud Shell dan editor kode, klik Open Editor atau Open Terminal sesuai kebutuhan, atau klik Open in a new window untuk membiarkan Editor terbuka di tab tersendiri.
-
Klik file instance.tf
, dan tambahkan konten berikut ke dalamnya:
resource "google_compute_instance" "terraform" {
project = "{{{project_0.project_id}}}"
name = "terraform"
machine_type = "e2-medium"
zone = "{{{project_0.default_zone}}}"
boot_disk {
initialize_params {
image = "debian-cloud/debian-11"
}
}
network_interface {
network = "default"
access_config {
}
}
}
Ini adalah konfigurasi lengkap yang siap diterapkan oleh Terraform. Struktur umumnya cukup intuitif dan mudah diikuti.
Blok "resource" dalam file instance.tf
menentukan resource yang ada dalam infrastruktur. Resource dapat berupa komponen fisik seperti instance VM.
Blok resource memiliki dua string sebelum blok dimulai: jenis resource dan nama resource. Untuk lab ini, jenis resource-nya adalah google_compute_instance
dan resource name atau nama resource-nya adalah terraform.
Prefiks jenis resource menunjukkan penyedia: google_compute_instance
otomatis memberi tahu Terraform bahwa resource tersebut dikelola penyedia Google
.
Di dalam blok resource itu sendiri terdapat konfigurasi yang diperlukan untuk resource tersebut.
- Di Cloud Shell, pastikan file baru Anda telah ditambahkan dan tidak ada file
*.tf
lain di direktori, karena Terraform akan memuat semua file tersebut:
ls
Inisialisasi
Perintah pertama yang akan dijalankan untuk konfigurasi baru—atau setelah mengeluarkan konfigurasi lama dari kontrol versi—adalah terraform init
. Perintah ini akan melakukan inisialisasi berbagai data dan setelan lokal yang akan digunakan oleh perintah-perintah selanjutnya.
Terraform menggunakan arsitektur berbasis plugin untuk mendukung banyak penyedia layanan dan infrastruktur yang ada. Tiap "penyedia" merupakan program biner yang terenkapsulasi sendiri dan didistribusikan secara terpisah dari Terraform. Perintah terraform init
akan otomatis mendownload dan menginstal setiap program biner penyedia untuk digunakan penyedia dalam konfigurasi. Dalam lab ini, penyedia kita adalah Google.
- Download dan instal program biner penyedia:
terraform init
Plugin penyedia Google didownload dan diinstal di subdirektori dari direktori kerja saat ini, beserta berbagai file pendukung lainnya. Anda akan melihat pesan "Initializing provider plugins". Terraform tahu bahwa Anda menjalankan operasi dari project Google, dan project tersebut mendapatkan resource Google.
Installing hashicorp/google v4.77.0...
Catatan: Nomor versi Anda mungkin lebih tinggi.
Output ini menentukan versi plugin yang sedang diinstal dan menyarankan agar Anda menetapkan versi ini dalam file konfigurasi mendatang untuk memastikan terraform init
menginstal versi yang kompatibel.
- Buat rencana eksekusi:
terraform plan
Terraform akan melakukan refresh, kecuali jika dinonaktifkan secara eksplisit, kemudian menentukan tindakan yang diperlukan untuk mencapai status yang diinginkan yang telah ditentukan dalam file konfigurasi. Perintah ini merupakan cara mudah untuk memeriksa apakah rencana eksekusi untuk serangkaian perubahan sesuai dengan harapan Anda, tanpa membuat perubahan apa pun pada resource sebenarnya atau pada statusnya. Misalnya, Anda dapat menjalankan perintah ini sebelum melakukan perubahan pada kontrol versi, untuk meyakinkan diri Anda bahwa kontrol versi tersebut akan berperilaku sesuai harapan.
Catatan: Argumen -out
opsional dapat digunakan untuk menyimpan rencana yang dihasilkan ke sebuah file untuk dieksekusi pada lain waktu dengan terraform apply
.
Menerapkan perubahan
- Di direktori yang sama dengan file
instance.tf
yang telah dibuat, jalankan perintah ini:
terraform apply
Output ini menunjukkan Rencana Eksekusi, yang mendeskripsikan tindakan yang akan dilakukan Terraform untuk mengubah infrastruktur sebenarnya agar sesuai dengan konfigurasi. Format output-nya mirip dengan format diff yang dihasilkan oleh alat seperti Git.
Terdapat tanda +
di samping google_compute_instance.terraform
, yang berarti Terraform akan membuat resource ini. Setelahnya, terdapat atribut yang akan ditetapkan. Jika nilai yang ditampilkan adalah <computed>
, hal itu berarti nilai tersebut tidak akan diketahui sebelum resource dibuat.
Contoh output:
An execution plan has been generated and is shown below.
Resource actions are indicated with the following symbols:
+ create
Terraform will perform the following actions:
# google_compute_instance.default will be created
+ resource "google_compute_instance" "default" {
+ can_ip_forward = false
+ cpu_platform = (known after apply)
+ deletion_protection = false
+ guest_accelerator = (known after apply)
+ id = (known after apply)
+ instance_id = (known after apply)
+ label_fingerprint = (known after apply)
+ machine_type = "e2-medium"
+ metadata_fingerprint = (known after apply)
+ name = "terraform"
+ project = "qwiklabs-gcp-42390cc9da8a4c4b"
+ self_link = (known after apply)
+ tags_fingerprint = (known after apply)
+ zone = "us-west1-c"
+ boot_disk {
+ auto_delete = true
+ device_name = (known after apply)
+ disk_encryption_key_sha256 = (known after apply)
+ kms_key_self_link = (known after apply)
+ source = (known after apply)
+ initialize_params {
+ image = "debian-cloud/debian-11"
+ labels = (known after apply)
+ size = (known after apply)
+ type = (known after apply)
}
}
+ network_interface {
+ address = (known after apply)
+ name = (known after apply)
+ network = "default"
+ network_ip = (known after apply)
+ subnetwork = (known after apply)
+ subnetwork_project = (known after apply)
+ access_config {
+ assigned_nat_ip = (known after apply)
+ nat_ip = (known after apply)
+ network_tier = (known after apply)
}
}
+ scheduling {
+ automatic_restart = (known after apply)
+ on_host_maintenance = (known after apply)
+ preemptible = (known after apply)
+ node_affinities {
+ key = (known after apply)
+ operator = (known after apply)
+ values = (known after apply)
}
}
}
Plan: 1 to add, 0 to change, 0 to destroy.
Do you want to perform these actions? Terraform will perform the actions described above. Only 'yes' will be accepted to approve.
Enter a value:
Jika rencana berhasil dibuat, Terraform akan menjeda operasi dan menunggu persetujuan sebelum melanjutkan. Di lingkungan produksi, jika ada sesuatu yang tampaknya salah atau berbahaya dalam Rencana Eksekusi, Anda dapat membatalkannya pada tahap ini. Tidak akan ada perubahan yang diterapkan pada infrastruktur Anda.
- Untuk kasus kita, rencana ini tampaknya dapat diterima, jadi ketik
yes
pada dialog konfirmasi untuk melanjutkan.
Diperlukan waktu beberapa menit untuk mengeksekusi rencana karena Terraform menunggu tersedianya instance VM.
Setelah itu, semua proses di Terraform selesai.
Menguji tugas yang sudah selesai
Klik Periksa progres saya untuk memverifikasi tugas yang telah dijalankan. Jika berhasil menyelesaikan tugas, Anda akan menerima skor penilaian.
Membuat instance VM di zona dengan Terraform.
- Di Konsol Google Cloud, pada Navigation menu, klik Compute Engine > VM instances. Halaman VM instances akan terbuka dan Anda dapat melihat instance VM yang baru saja Anda buat dalam daftar VM instances.
Terraform telah menuliskan beberapa data ke dalam file terraform.tfstate
. File state ini sangat penting: file ini melacak ID resource yang dibuat, sehingga Terraform dapat mengetahui apa yang sedang dikelolanya.
- Di Cloud Shell, periksa status saat ini:
terraform show
Contoh output:
# google_compute_instance.default:
resource "google_compute_instance" "default" {
can_ip_forward = false
cpu_platform = "Intel Haswell"
deletion_protection = false
guest_accelerator = []
id = "terraform"
instance_id = "3408292216444307052"
label_fingerprint = "42WmSpB8rSM="
machine_type = "e2-medium"
metadata_fingerprint = "s6I5s2tjfKw="
name = "terraform"
project = "qwiklabs-gcp-42390cc9da8a4c4b"
self_link = "https://www.googleapis.com/compute/v1/projects/qwiklabs-gcp-42390cc9da8a4c4b/zones/{{{project_0.default_zone}}}/instances/terraform"
tags_fingerprint = "42WmSpB8rSM="
zone = "{{{project_0.default_zone}}}"
boot_disk {
auto_delete = true
device_name = "persistent-disk-0"
source = "https://www.googleapis.com/compute/v1/projects/qwiklabs-gcp-42390cc9da8a4c4b/zones/{{{project_0.default_zone}}}/disks/terraform"
....
Anda dapat melihat bahwa dengan membuat resource ini, Anda juga mengumpulkan banyak informasi tentangnya. Nilai ini dapat direferensikan untuk mengonfigurasi resource atau output lainnya.
Selamat! Anda telah membangun infrastruktur pertama Anda dengan Terraform. Anda telah melihat sintaksis konfigurasinya dan contoh rencana eksekusi dasar serta memahami file state.
Tugas 3. Menguji pemahaman Anda
Pertanyaan pilihan ganda berikut akan memperkuat pemahaman Anda mengenai konsep lab ini. Jawab pertanyaan tersebut sebaik mungkin.
Selamat
Selamat, Anda telah menyelesaikan lab ini. Anda telah mempelajari cara menggunakan Terraform untuk membuat dan mengelola infrastruktur di Google Cloud.
Langkah berikutnya/Pelajari Lebih Lanjut
Sertifikasi dan pelatihan Google Cloud
...membantu Anda mengoptimalkan teknologi Google Cloud. Kelas kami mencakup keterampilan teknis dan praktik terbaik untuk membantu Anda memahami dengan cepat dan melanjutkan proses pembelajaran. Kami menawarkan pelatihan tingkat dasar hingga lanjutan dengan opsi on demand, live, dan virtual untuk menyesuaikan dengan jadwal Anda yang sibuk. Sertifikasi membantu Anda memvalidasi dan membuktikan keterampilan serta keahlian Anda dalam teknologi Google Cloud.
Manual Terakhir Diperbarui pada 20 September 2024
Lab Terakhir Diuji pada 20 September 2024
Hak cipta 2025 Google LLC. Semua hak dilindungi undang-undang. Google dan logo Google adalah merek dagang dari Google LLC. Semua nama perusahaan dan produk lain mungkin adalah merek dagang masing-masing perusahaan yang bersangkutan.