arrow_back

Dasar-Dasar Terraform

Login Gabung
Test and share your knowledge with our community!
done
Get access to over 700 hands-on labs, skill badges, and courses

Dasar-Dasar Terraform

Lab 35 menit universal_currency_alt 1 Kredit show_chart Pengantar
Test and share your knowledge with our community!
done
Get access to over 700 hands-on labs, skill badges, and courses

GSP156

Lab Mandiri Google Cloud

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 biner penginstalan.
  • Membuat infrastruktur instance VM menggunakan Terraform.

Penyiapan dan persyaratan

Sebelum mengklik tombol Mulai 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 praktik ini dapat Anda gunakan untuk melakukan sendiri 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 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: Jika Anda sudah memiliki project atau akun pribadi Google Cloud, jangan menggunakannya untuk lab ini agar terhindar dari tagihan ekstra pada akun Anda.

Cara memulai lab dan login ke Google Cloud Console

  1. Klik tombol Start Lab. Jika Anda perlu membayar lab, jendela pop-up akan terbuka untuk memilih metode pembayaran. Di sebelah kiri adalah panel Lab Details dengan berikut ini:

    • Tombol Open Google Console
    • Waktu tersisa
    • Kredensial sementara yang harus Anda gunakan untuk lab ini
    • Informasi lain, jika diperlukan, untuk menyelesaikan lab ini
  2. Klik Open Google Console. Lab akan menjalankan resource, lalu membuka tab lain yang menampilkan halaman Login.

    Tips: Atur tab di jendela terpisah secara berdampingan.

    Catatan: Jika Anda melihat dialog Choose an account, klik Use Another Account.
  3. Jika perlu, salin Username dari panel Lab Details dan tempel ke dialog Sign in. Klik Next.

  4. Salin Password dari panel Lab Details dan tempel ke dialog Welcome. Klik Next.

    Penting: Anda harus menggunakan kredensial dari panel sebelah kiri. Jangan menggunakan kredensial Google Cloud Skills Boost. Catatan: Menggunakan akun Google Cloud sendiri untuk lab ini dapat dikenai biaya tambahan.
  5. Klik halaman berikutnya:

    • Setujui persyaratan dan ketentuan.
    • Jangan tambahkan opsi pemulihan atau autentikasi 2 langkah (karena ini akun sementara).
    • Jangan daftar uji coba gratis.

Setelah beberapa saat, Cloud Console akan terbuka di tab ini.

Catatan: Anda dapat melihat menu dengan daftar Produk dan Layanan Google Cloud dengan mengklik Menu navigasi di kiri atas. Ikon menu navigasi

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.

  1. Klik Activate Cloud Shell Ikon Activate Cloud Shell di bagian atas konsol Google Cloud.

Setelah terhubung, Anda sudah diautentikasi, dan project ditetapkan ke PROJECT_ID Anda. Output berisi baris yang mendeklarasikan PROJECT_ID untuk sesi ini:

Project Cloud Platform Anda dalam sesi ini disetel ke YOUR_PROJECT_ID

gcloud adalah alat command line untuk Google Cloud. Alat ini sudah terinstal di Cloud Shell dan mendukung pelengkapan command line.

  1. (Opsional) Anda dapat menampilkan daftar nama akun yang aktif dengan perintah ini:
gcloud auth list
  1. Klik Authorize.

  2. Output Anda sekarang akan terlihat seperti ini:

Output:

ACTIVE: * ACCOUNT: student-01-xxxxxxxxxxxx@qwiklabs.net Untuk menyetel akun aktif, jalankan: $ gcloud config set account `ACCOUNT`
  1. (Opsional) Anda dapat menampilkan daftar project ID dengan perintah ini:
gcloud config list project

Output:

[core] project = <project_ID>

Contoh output:

[core] project = qwiklabs-gcp-44776a13dea667a6 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 khusus dalam perusahaan.

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 resource non-dependen apa pun. 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 human error 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.

  1. Di Cloud Shell, buat file konfigurasi kosong yang bernama instance.tf dengan perintah berikut:
touch instance.tf
  1. 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.

  2. Klik file instance.tf, tambahkan konten berikut ke dalamnya, dan ganti <PROJECT_ID> dengan ID project Google Cloud Anda:

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 membuka blok: resource type dan resource name. Untuk lab ini, resource type atau 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.

  1. Di Cloud Shell, pastikan file baru Anda telah ditambahkan dan tidak ada file *.tf lain di direktori, karena Terraform akan memuat file tersebut semuanya:
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. Setiap "penyedia" merupakan biner yang terenkapsulasi sendiri dan didistribusikan terpisah dari Terraform. Perintah terraform init akan otomatis mendownload dan menginstal setiap biner penyedia untuk penyedia yang akan digunakan dalam konfigurasi. Dalam lab ini, penyedia kita adalah Google.

  1. Download dan instal biner penyedia:
terraform init

Plugin penyedia Google didownload dan diinstal di subdirektori dari direktori kerja saat ini, beserta berbagai file pembukuan 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.

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

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

  1. 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 Check my progress untuk memverifikasi tugas yang telah dijalankan. Jika berhasil menyelesaikan tugas, Anda akan menerima skor penilaian.

Membuat instance VM di zona dengan Terraform.
  1. 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.

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

Selesaikan Quest Anda

Lab mandiri ini merupakan bagian dari Quest Managing Cloud Infrastructure with Terraform dan Automating Infrastructure on Google Cloud with Terraform. Quest adalah serangkaian lab terkait yang membentuk jalur pembelajaran. Dengan menyelesaikan Quest, Anda mendapatkan badge sebagai pengakuan atas pencapaian Anda. Anda dapat menunjukkan satu atau beberapa badge kepada orang lain secara publik dan menautkannya di resume online atau akun media sosial Anda. Daftarkan diri Anda dalam Quest apa pun yang berisi lab ini dan segera dapatkan kredit penyelesaian. Lihat Katalog Google Cloud Skills Boost untuk mengetahui semua Quest yang tersedia.

Ikuti lab berikutnya

Lanjutkan Quest Anda dengan Infrastructure as Code with Terraform. Anda juga dapat mempelajari lab Google Cloud Skills berikut:

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 26 Januari 2024

Lab Terakhir Diuji 10 Agustus 2023

Hak cipta 2024 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.