Checkpoint
Creating Resources in terraform
/ 30
Change Infrastructure
/ 20
Destructive Changes
/ 20
Create Resource Dependencies
/ 20
Create bucket dependent instance
/ 10
Infrastructure as Code dengan Terraform
Lab ini dikembangkan dengan partner kami, Hashicorp. Informasi pribadi Anda mungkin akan dibagikan kepada Hashicorp, sponsor lab ini, jika Anda memilih untuk menerima info terbaru terkait produk, pengumuman, dan penawaran di Profil Akun Anda.
GSP750
Ringkasan
Terraform adalah penawaran infrastructure as code dari HashiCorp. Ini adalah alat untuk membangun, mengubah, dan mengelola infrastruktur dengan cara yang aman dan berulang. Tim operator dan infrastruktur dapat menggunakan Terraform untuk mengelola lingkungan dengan bahasa konfigurasi yang disebut dengan Hashicorp Configuration Language (HCL) untuk deployment otomatis yang dapat dibaca manusia.
Infrastructure as code adalah proses pengelolaan infrastruktur dalam satu atau beberapa file alih-alih pengonfigurasian resource secara manual dalam suatu antarmuka pengguna. Resource dalam instance ini adalah infrastruktur apa pun di lingkungan tertentu, seperti virtual machine, grup keamanan, antarmuka jaringan, dll. Pada tingkat tinggi, Terraform memungkinkan operator menggunakan HCL untuk membuat file yang berisi definisi resource yang diinginkan pada hampir semua penyedia (AWS, Google Cloud, GitHub, Docker, dll.) dan mengotomatiskan pembuatan resource tersebut pada saat diterapkan.
Alur kerja yang sederhana untuk deployment akan sangat mengikuti langkah-langkah berikut ini:
- Scope - Konfirmasi resource yang diperlukan untuk dibuat dalam project tertentu.
- Author - Buat file konfigurasi di HCL berdasarkan parameter yang tercakup.
-
Initialize - Jalankan
terraform init
dalam direktori project dengan file konfigurasi. Tindakan ini akan mendownload plugin penyedia yang sesuai untuk project. -
Plan & Apply - Jalankan
terraform plan
untuk memverifikasi proses pembuatan, kemudianterraform apply
untuk membuat resource yang sesungguhnya beserta file state yang membandingkan perubahan mendatang di file konfigurasi Anda dengan apa yang sebenarnya ada di lingkungan deployment Anda.
Tujuan
Di lab ini, Anda akan mempelajari cara melakukan tugas berikut:
- Membangun, mengubah, dan menghancurkan infrastruktur dengan Terraform
- Membuat Dependensi Resource dengan Terraform
- Menyediakan infrastruktur dengan 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).
- Waktu untuk menyelesaikan lab. Ingat, setelah dimulai, lab tidak dapat dijeda.
Cara memulai lab dan login ke Google Cloud Console
-
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 info 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.
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.
Setelah terhubung, Anda sudah diautentikasi, dan project ditetapkan ke PROJECT_ID Anda. Output berisi baris yang mendeklarasikan PROJECT_ID untuk sesi ini:
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:
-
Klik Authorize.
-
Output Anda sekarang akan terlihat seperti ini:
Output:
- (Opsional) Anda dapat menampilkan daftar project ID dengan perintah ini:
Output:
Contoh output:
gcloud
yang lengkap di Google Cloud, baca panduan ringkasan gcloud CLI.
Tugas 1. Membangun infrastruktur
Terraform sudah terinstal di Cloud Shell. Dengan Terraform yang sudah terinstal, Anda dapat langsung mengaksesnya dan membuat beberapa infrastruktur.
Mulai dengan membuat konfigurasi contoh Anda ke file bernama main.tf
. Terraform mengenali file dengan akhiran .tf
atau .tf.json
sebagai file konfigurasi dan akan memuat file tersebut saat dijalankan.
- Buat file
main.tf
:
-
Klik tombol Open Editor di toolbar Cloud Shell. (Anda dapat beralih di antara Cloud Shell dan editor kode dengan menggunakan ikon Open Editor dan Open Terminal sesuai yang diperlukan, atau klik tombol Open in new window agar Editor terbuka di tab terpisah).
-
Di Editor, tambahkan konten berikut ke file
main.tf
.
terraform {}
.Blok Terraform
Blok terraform {}
diperlukan agar Terraform tahu penyedia mana yang harus didownload dari Terraform Registry. Pada konfigurasi di atas, sumber penyedia google
didefinisikan sebagai hashicorp/google
yang merupakan singkatan dari registry.terraform.io/hashicorp/google
.
Anda juga dapat menetapkan versi ke setiap penyedia yang ditentukan di blok required_providers
. Argumen version
bersifat opsional, tetapi direkomendasikan. Ini digunakan untuk membatasi penyedia ke versi tertentu atau serangkaian versi untuk mencegah mendownload penyedia baru yang mungkin berisi perubahan yang dapat menyebabkan gangguan. Jika versinya tidak ditentukan, Terraform akan secara otomatis mendownload penyedia terbaru selama inisialisasi.
Untuk mempelajari lebih lanjut, di situs HashiCorp Terraform, lihat Provider Requirements.
Penyedia
Blok provider
digunakan untuk mengonfigurasi penyedia bernama, dalam kasus ini google
. Penyedia bertanggung jawab untuk membuat dan mengelola resource. Beberapa blok penyedia dapat muncul jika konfigurasi Terraform mengelola resource dari penyedia yang berbeda.
Inisialisasi
Perintah pertama yang dijalankan untuk konfigurasi baru -- atau setelah memeriksa konfigurasi yang ada dari kontrol versi -- adalah terraform init
, yang melakukan inisialisasi pada berbagai setelan lokal dan data yang akan digunakan oleh perintah berikutnya.
- Lakukan inisialisasi pada konfigurasi Terraform baru Anda dengan menjalankan perintah
terraform init
di direktori yang sama dengan filemain.tf
Anda:
Membuat resource
- Terapkan konfigurasi Anda sekarang dengan menjalankan perintah
terraform apply
:
Outputnya memiliki tanda +
di samping resource "google_compute_network" "vpc_network"
, yang artinya Terraform akan membuat resource ini. Selain itu, outputnya menampilkan atribut yang akan ditetapkan. Jika nilai yang ditampilkan adalah (known after apply)
, artinya nilainya belum diketahui hingga resource dibuat.
Jika rencana berhasil dibuat, Terraform sekarang akan menjeda dan menunggu persetujuan sebelum melanjutkan. Jika ada yang terlihat salah atau berbahaya dalam rencana, Anda bisa membatalkan di titik ini tanpa adanya perubahan pada infrastruktur Anda.
Jika terraform apply
gagal dengan menampilkan error, baca pesan error dan perbaiki error yang terjadi.
- Rencana ini kelihatannya dapat diterima sejauh ini, sehingga ketikkan
yes
pada prompt konfirmasi untuk memproses.
Mengeksekusi rencana akan memerlukan waktu beberapa menit karena Terraform menunggu jaringan berhasil dibuat:
Setelah itu, semua proses di Terraform selesai. Anda dapat membuka Konsol Cloud untuk melihat jaringan yang telah Anda sediakan.
- Di Konsol, dari Navigation menu, buka VPC network. Anda akan melihat
terraform-network
sudah tersedia.
- Di Cloud Shell, jalankan perintah
terraform show
untuk memeriksa status saat ini:
Nilai ini dapat direferensikan untuk mengonfigurasi resource atau output lain, yang akan dibahas nanti di lab ini.
Klik Check my progress untuk memverifikasi tujuan.
Tugas 2. Mengubah infrastruktur
Pada bagian sebelumnya, Anda membuat infrastruktur dasar dengan Terraform: jaringan VPC. Pada bagian ini, Anda akan memodifikasi konfigurasi, dan lihat cara Terraform menangani perubahan.
Infrastruktur terus berkembang, dan Terraform dibangun untuk membantu mengelola dan menerapkan perubahan tersebut. Saat Anda mengubah konfigurasi Terraform, Terraform membuat rencana eksekusi yang hanya mengubah apa yang diperlukan untuk mencapai status yang Anda inginkan.
Dengan menggunakan Terraform untuk mengubah infrastruktur, Anda tidak hanya dapat mengontrol versi konfigurasi, tetapi juga statusnya sehingga Anda dapat melihat bagaimana infrastruktur berkembang seiring waktu.
Menambahkan resource
Anda dapat menambahkan resource baru dengan menambahkannya ke konfigurasi Terraform dan menjalankan terraform apply
untuk menyediakan resource tersebut.
- Di Editor, tambahkan resource instance komputasi ke
main.tf
:
Resource ini mencakup beberapa argumen tambahan. Nama dan jenis mesin merupakan string sederhana, tetapi boot_disk
dan network_interface
merupakan blok yang lebih kompleks. Anda dapat melihat seluruh opsi yang tersedia di dokumentasi google_compute_instance.
Untuk contoh ini, instance komputasi Anda akan menggunakan sistem operasi Debian, dan akan terhubung ke Jaringan VPC yang Anda buat sebelumnya. Perhatikan bagaimana konfigurasi ini mengacu pada properti nama jaringan dengan google_compute_network.vpc_network.name
-- google_compute_network.vpc_network
sebagai ID-nya, yang cocok dengan nilai dalam blok yang mendefinisikan jaringan, dan name
adalah properti resource tersebut.
Adanya blok access_config
, bahkan tanpa adanya argumen, memastikan bahwa instance akan dapat diakses melalui internet.
- Sekarang jalankan
terraform apply
untuk membuat instance komputasi:
- Sekali lagi, jawab
yes
pada prompt konfirmasi.
Ini adalah perubahan yang cukup mudah - Anda menambahkan resource "google_compute_instance" bernama "vm_instance" ke konfigurasi Anda, dan Terraform membuat resource tersebut di Google Cloud.
Mengubah resource
Selain membuat resource, Terraform juga dapat melakukan perubahan pada resource tersebut.
- Tambahkan argumen
tags
ke "vm_instance" hingga tampak seperti ini:
- Jalankan
terraform apply
lagi untuk mengupdate instance:
- Imbuhan
~
berarti Terraform akan mengupdate resource tersebut. Anda dapat menerapkan perubahan ini sekarang dengan meresponsyes
, dan Terraform akan menambahkan tag ke instance Anda.
Klik Check my progress untuk memverifikasi tujuan.
Perubahan destruktif
Perubahan destruktif adalah perubahan yang mengharuskan penyedia untuk mengganti resource yang ada alih-alih mengupdatenya. Hal ini biasanya terjadi karena penyedia cloud tidak mendukung proses update resource seperti yang dijelaskan dalam konfigurasi Anda.
Mengubah disk image instance Anda adalah salah satu contoh perubahan destruktif.
- Edit blok
boot_disk
di dalam resourcevm_instance
di file konfigurasi Anda dan ubah seperti berikut:
- Sekarang jalankan
terraform apply
lagi untuk melihat bagaimana Terraform menerapkan perubahan ini ke resource yang ada:
Imbuhan -/+
artinya Terraform akan menghancurkan dan membuat ulang resource, alih-alih langsung mengupdatenya. Meskipun beberapa atribut dapat langsung diupdate (yang ditunjukkan dengan imbuhan ~
), mengubah boot disk image untuk sebuah instance memerlukan pembuatan ulang. Terraform dan penyedia Google Cloud menangani detail ini untuk Anda, dan rencana eksekusi memperjelas tindakan yang akan dilakukan Terraform.
Selain itu, rencana eksekusi menunjukkan bahwa perubahan disk image adalah hal yang mengharuskan instance Anda diganti. Dengan informasi ini, Anda dapat menyesuaikan perubahan Anda agar sebisa mungkin menghindari update destroy/create jika tidak dapat diterima dalam beberapa situasi.
- Sekali lagi, Terraform meminta persetujuan rencana eksekusi sebelum melanjutkan. Jawab
yes
untuk menjalankan langkah-langkah yang direncanakan.
Sesuai dengan rencana eksekusi, Terraform pertama-tama menghancurkan instance yang ada dan kemudian membuat instance baru sebagai gantinya. Anda dapat menggunakan terraform show
lagi untuk melihat nilai baru yang terkait dengan instance ini.
Menghancurkan infrastruktur
Kini Anda telah melihat cara membangun dan mengubah infrastruktur. Sebelum lanjut ke membuat beberapa resource dan menampilkan dependensi resource, Anda akan melihat cara menghancurkan sepenuhnya infrastruktur yang dikelola Terraform.
Menghancurkan infrastruktur Anda adalah peristiwa yang jarang terjadi di lingkungan produksi. Namun, jika Anda menggunakan Terraform untuk menjalankan beberapa lingkungan seperti pengembangan, pengujian, dan staging, maka penghancuran sering kali merupakan tindakan yang berguna.
Resource dapat dihancurkan menggunakan perintah terraform destroy
, yang mirip dengan terraform apply
tetapi berperilaku seolah-olah semua resource telah dihapus dari konfigurasi.
- Coba perintah
terraform destroy
. Jawabyes
untuk menjalankan rencana ini dan menghancurkan infrastruktur:
Imbuhan -
menunjukkan bahwa instance dan jaringan akan dihancurkan. Seperti halnya penerapan, Terraform menunjukkan rencana eksekusinya dan menunggu persetujuan sebelum melakukan perubahan apa pun.
Sama seperti terraform apply
, Terraform menentukan urutan hal-hal yang harus dihancurkan. Google Cloud tidak akan mengizinkan jaringan VPC dihapus jika masih ada resource di dalamnya, jadi Terraform menunggu hingga instance dihancurkan sebelum menghancurkan jaringan. Saat melakukan operasi, Terraform membuat grafik dependensi untuk menentukan urutan operasi yang benar. Dalam kasus yang lebih rumit dengan beberapa resource, Terraform akan melakukan operasi secara paralel jika aman untuk dilakukan.
Klik Check my progress untuk memverifikasi tujuan.
Tugas 3. Membuat dependensi resource
Di bagian ini, Anda akan mempelajari selengkapnya tentang dependensi resource dan cara menggunakan parameter resource untuk berbagi informasi tentang satu resource dengan resource lainnya.
Infrastruktur dunia nyata memiliki beragam resource dan jenis resource. Konfigurasi Terraform dapat berisi banyak resource, beberapa jenis resource, dan jenis ini bahkan dapat mencakup beberapa penyedia.
Di bagian ini, Anda akan diperlihatkan contoh dasar tentang cara mengonfigurasi beberapa resource dan cara menggunakan atribut resource untuk mengonfigurasi resource lainnya.
- Buat ulang jaringan dan instance Anda. Setelah Anda merespons prompt dengan
yes
, resource akan dibuat:
Menetapkan alamat IP statis
- Sekarang tambahkan ke konfigurasi Anda dengan menetapkan IP statis ke instance VM di
main.tf
:
Hal ini seharusnya terlihat mirip dengan contoh sebelumnya dalam menambahkan resource instance VM, kecuali kali ini Anda membuat jenis resource "google_compute_address". Jenis resource ini mengalokasikan alamat IP yang dicadangkan ke project Anda.
- Selanjutnya, jalankan
terraform plan
:
Anda dapat melihat apa yang akan dibuat dengan terraform plan
:
Tidak seperti terraform apply
, perintah plan
hanya akan menunjukkan apa yang akan diubah, dan tidak akan pernah benar-benar langsung menerapkan perubahan tersebut. Perhatikan bahwa satu-satunya perubahan yang Anda lakukan sejauh ini adalah menambahkan IP statis. Selanjutnya, Anda perlu melampirkan alamat IP ke instance Anda.
- Update konfigurasi
network_interface
untuk instance Anda seperti berikut:
Blok access_config
memiliki beberapa argumen opsional, dan pada kasus ini, Anda akan menetapkan nat_ip
untuk menjadi alamat IP statisnya. Ketika Terraform membaca konfigurasi ini, Terraform akan:
- Memastikan
vm_static_ip
dibuat sebelumvm_instance
- Menyimpan properti
vm_static_ip
dalam status tersebut - Mengatur
nat_ip
ke nilai propertivm_static_ip.address
- Jalankan rencana terraform lagi, tetapi kali ini, simpan rencananya:
Menyimpan rencana dengan langkah ini memastikan Anda dapat menerapkan rencana yang sama persis ke depannya. Jika Anda mencoba menerapkan file yang dibuat berdasarkan rencana, Terraform akan memeriksa terlebih dahulu untuk memastikan rangkaian perubahan yang sama persis akan dilakukan sebelum menerapkan rencana.
Dalam hal ini, Anda dapat melihat bahwa Terraform akan membuat google_compute_address
baru dan mengupdate VM yang ada untuk menggunakannya.
- Jalankan
terraform apply "static_ip"
untuk melihat bagaimana Terraform akan menerapkan perubahan ini:
Seperti yang ditunjukkan di atas, Terraform membuat IP statis sebelum memodifikasi instance VM. Karena ekspresi interpolasi yang meneruskan alamat IP ke konfigurasi antarmuka jaringan instance, Terraform dapat menyimpulkan dependensi, dan mengetahui bahwa Terraform harus membuat IP statis sebelum memperbarui instance.
Klik Check my progress untuk memverifikasi tujuan.
Dependensi implisit dan eksplisit
Dengan mempelajari atribut resource yang digunakan dalam ekspresi interpolasi, Terraform dapat menyimpulkan secara otomatis ketika suatu resource bergantung pada lainnya. Pada contoh di atas, rujukan ke google_compute_address.vm_static_ip.address
membuat implicit dependency di google_compute_address
bernama vm_static_ip
.
Terraform menggunakan informasi dependensi ini untuk menentukan urutan yang benar dalam membuat dan memperbarui resource yang berbeda. Pada contoh di atas, Terraform tahu bahwa vm_static_ip
harus dibuat sebelum vm_instance
diupdate untuk menggunakannya.
Dependensi implisit melalui ekspresi interpolasi adalah cara utama untuk memberi tahu Terraform tentang hubungan ini, dan harus digunakan bila memungkinkan.
Terkadang ada dependensi antara resource yang tidak terlihat oleh Terraform. Argumen depends_on
dapat ditambahkan ke resource apa pun dan menerima daftar resource untuk membuat dependensi eksplisit.
Misalnya, mungkin aplikasi yang akan Anda jalankan di instance Anda akan menggunakan bucket Cloud Storage tertentu, tetapi dependensi tersebut dikonfigurasi di dalam kode aplikasi sehingga tidak terlihat oleh Terraform. Pada kasus tersebut, Anda dapat menggunakan depends_on
untuk mendeklarasikan dependensi secara eksplisit.
- Tambahkan bucket Cloud Storage dan instance dengan dependensi eksplisit pada bucket tersebut dengan menambahkan kode berikut ke
main.tf
:
UNIQUE-BUCKET-NAME
dengan nama yang valid dan unik untuk bucket. Menggunakan nama dan tanggal biasanya merupakan cara yang baik untuk menebak nama bucket yang unik.
Anda mungkin bertanya-tanya ke mana resource ini harus ditempatkan dalam konfigurasi Anda. Urutan penentuan resource dalam file konfigurasi terraform tidak berpengaruh pada cara Terraform menerapkan perubahan Anda. Atur file konfigurasi Anda dengan cara yang paling sesuai bagi Anda dan tim Anda.
- Sekarang jalankan terraform plan dan terraform apply untuk melihat perubahan berikut:
Klik Check my progress untuk memverifikasi tujuan.
- Sebelum melanjutkan, hapus resource baru ini dari konfigurasi Anda dan jalankan
terraform apply
sekali lagi untuk menghancurkannya. Anda tidak akan menggunakan bucket atau instance kedua lagi di lab ini.
Tugas 4. Menyediakan infrastruktur
Instance komputasi yang Anda luncurkan pada titik ini didasarkan pada gambar Google yang diberikan, tetapi tidak ada software tambahan yang diinstal atau konfigurasi yang diterapkan.
Google Cloud memungkinkan pelanggannya mengelola image sistem operasi khusus miliknya sendiri. Cara ini bagus untuk memastikan instance yang Anda sediakan dengan Terraform telah dikonfigurasi sebelumnya sesuai dengan kebutuhan Anda. Packer adalah alat yang sempurna untuk ini dan mencakup builder untuk Google Cloud.
Terraform menggunakan penyedia untuk mengupload file, menjalankan skrip shell, atau menginstal dan memicu software lain seperti alat manajemen konfigurasi.
Menentukan penyedia
- Untuk menentukan penyedia, modifikasi blok resource yang menentukan
vm_instance
pertama di konfigurasi Anda agar terlihat seperti berikut:
Ini akan menambahkan blok provisioner
dalam blok resource
. Beberapa blok provisioner
dapat ditambahkan untuk menentukan beberapa langkah penyediaan. Terraform mendukung banyak penyedia, tetapi untuk contoh ini, Anda menggunakan penyedia local-exec
.
Penyedia local-exec
mengeksekusi perintah secara lokal di mesin yang menjalankan Terraform, bukan di instance VM itu sendiri. Anda menggunakan penyedia ini dibandingkan penyedia lainnya sehingga kami tidak perlu khawatir terkait menentukan informasi koneksi apa pun saat ini.
Ini juga menunjukkan contoh interpolasi string yang lebih kompleks daripada yang pernah Anda lihat sebelumnya. Setiap instance VM dapat memiliki beberapa antarmuka jaringan, jadi lihat yang pertama dengan network_interface[0]
, hitung mulai dari 0, seperti yang dilakukan sebagian besar bahasa pemrograman. Setiap antarmuka jaringan juga dapat memiliki beberapa blok access_config, jadi sekali lagi tentukan yang pertama.
- Jalankan
terraform apply
:
Pada tahap ini, mungkin di awal outputnya akan membingungkan.
Terraform tidak menemukan apa pun yang dapat dilakukan - dan jika Anda memeriksanya, tidak ada file ip_address.txt
di mesin lokal Anda.
Terraform menangani penyedia dengan cara yang berbeda dengan argumen lainnya. Penyedia hanya berjalan ketika resource dibuat, tetapi menambahkan penyedia tidak akan membuat resource tersebut dihancurkan secara paksa dan dibuat ulang.
- Gunakan
terraform taint
untuk memberi tahu Terraform untuk membuat ulang instance tersebut:
Resource yang rusak akan dihancurkan dan dibuat ulang pada perintah apply
berikutnya.
- Jalankan
terraform apply
sekarang:
- Verifikasi bahwa semuanya berfungsi dengan melihat konten file
ip_address.txt
.
Ini berisi alamat IP, seperti yang Anda minta.
Penyedia yang gagal dan resource yang rusak
Jika resource berhasil dibuat tetapi gagal dalam langkah penyediaan, Terraform akan mengalami error dan menandai resource tersebut sebagai tainted (rusak). Resource yang rusak masih ada, namun tidak dianggap aman untuk digunakan, karena penyediaan gagal.
Saat Anda membuat rencana eksekusi berikutnya, Terraform akan menghapus semua resource yang rusak dan membuat resource baru, mencoba menyediakannya lagi setelah pembuatan.
Penyedia destroy
Penyedia juga dapat ditentukan yang hanya berjalan selama operasi penghancuran. Penyedia berguna untuk melakukan pembersihan sistem, mengekstraksi data, dll.
Untuk banyak resource, disarankan menggunakan mekanisme pembersihan bawaan jika memungkinkan (seperti skrip init), tetapi penyedia dapat digunakan jika diperlukan.
Lab ini tidak akan menampilkan contoh yang dihancurkan penyedia. Jika Anda perlu menggunakan penyedia destroy, lihat Dokumentasi penyedia.
Selamat!
Di lab ini, Anda telah belajar cara membangun, mengubah, dan menghancurkan infrastruktur dengan Terraform. Anda kemudian membuat dependensi resource, dan menyediakan infrastruktur dasar dengan file konfigurasi Terraform.
Langkah berikutnya/Pelajari lebih lanjut
Pastikan untuk memeriksa resource berikut untuk menerima lebih banyak praktik langsung dengan Terraform:
- Hashicorp di Google Cloud Marketplace!
- Hashicorp Learn
- Terraform Community
- Terraform Google Examples
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 26 Januari 2024
Lab Terakhir Diuji pada 25 September 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.