juga tersedia di
[EN] https://www.bluebirz.net/en/lets-try-terraform-part-1/
[TH] https://www .bluebirz.net/th/lets-try-terraform-part-1-th/

Terraform adalah salah satu alat IaaC (Infrastruktur sebagai Kode) yang terkenal. Kami dapat menggunakannya untuk menyediakan, membangun, mengatur ulang, hingga menonaktifkan sumber daya apa pun di platform yang didukungnya. Tentu saja, termasuk GCP.

Mengapa Terraform?

Penyedia cloud, misalnya GCP, memiliki banyak cara yang nyaman bagi penggunanya untuk mengelola sumber daya. Misalnya, UI web, gcloud, REST API, dll. Terraform adalah salah satunya dan sangat populer di kalangan DevOps untuk melakukan pekerjaan ini.

Sesuai dengan namanya, “sebagai Kode”, ini memungkinkan pengelolaan seperti kode sumber. Pembuatan versi, CI/CD, termasuk proses batching semuanya dapat dilakukan. Selamat tinggal mengklik setiap saat dan copy-paste untuk membuat VM atau yang berisiko terhadap kesalahan manusia.

Terraform dikembangkan oleh HashiCorp. Dan ini adalah sumber terbuka. Kita bisa mengunjungi tautan ini sebagai beranda.



Konsep

Terraform berfungsi pada skrip tf. Ada beberapa fakta yang perlu kita ingat sebagai hal mendasar.

  1. Biasanya panduannya mengatakan membuat main.tf, tetapi tidak ada persyaratan nama file. Hanya diperlukan minimal 1 tf file.
  2. Akan ada file bernama terraform.tfstate dan terraform.tfstate.backup. Itu adalah berkas negara. Jangan lakukan apa pun terhadap mereka atau kita akan kehilangan semua riwayat dan jejak. Dalam hal ini kita perlu mengimpor perubahan dari sumber daya nyata.
  3. Satu folder hanya akan memiliki satu set file status. Artinya SEMUA skrip tf akan dieksekusi dan kita tidak dapat memilih skrip mana yang tidak akan dieksekusi.

Instalasi

Ikuti tautan ini dan temukan metode yang cocok untuk Anda. Saya sendiri lebih suka brew.



Langkah-langkah dasar

1. Init

Pertama-tama kita membutuhkan script tf terlebih dahulu dengan kata kunci provider seperti ini.

Kali ini kami menamainya main.tf tetapi perhatikan bahwa kami dapat menamainya dengan nama lain. Dan penyedia yang didukung oleh Terraform tercantum di tautan ini. Kali ini kita mau deploy di GCP jadi kita pilih “google”.

Pastikan kita berada di folder tersebut lalu jalankan.

terraform init

Ini akan menginisialisasi backend dan penyedia yang kami pilih. Outputnya harus seperti ini.

Setelah selesai, kita dapat melihat folder baru .terraform dan file baru .terraform.lock.hcl. Mereka secara otomatis dihasilkan oleh perintah dan kita tidak perlu mengubahnya.

2. Tambahkan sumber daya

Diinisialisasi dan sekarang kita dapat mengelola sumber daya kita dengan mengedit main.tf. Kata kuncinya adalah resource.

Sintaksnya adalah:

resource "<resource_type>" "<resource_name>" {
  attribute1 = value1
  attribute2 = value2 
}

Jenis sumber daya harus cocok dengan registri Terraform. Katakanlah kita sedang mengembangkan di GCP, kita dapat memeriksanya di tautan ini.

Nama sumber daya bersifat internal. Kita bisa menamainya apa saja. Namun kita harus menerapkan konvensi penamaan seperti jenis, proyek, atau tujuan singkatnya.

Atribut bergantung pada jenis sumber daya. Periksa registri untuk detailnya. Juga nilai-nilai mereka.

3. memvalidasi

Praktik terbaiknya adalah memvalidasi sebelum melanjutkan ke langkah berikutnya. Gunakan perintah ini.

terraform validate

Ini sangat membantu untuk melindungi insiden apa pun. Jika ada sesuatu yang salah, ia akan menyadarinya.

Aha, saya lupa location itu atribut wajib. Jadi saya bisa memperbaikinya sekarang.

Dan validasi lagi.

Oke, kita lanjutkan selanjutnya.

4. Rencana

Validasi selesai maka kita harus merencanakan untuk meninjau perubahan.

terraform plan

Terraform akan menampilkan semua perubahan yang membandingkan keadaan saat ini dan skrip tf kita. Kami dapat memeriksa ulang apa yang akan diubah di sini. Kami juga dapat menyimpan rencana untuk digunakan lebih lanjut.

5. Terapkan

Skripnya valid dan perubahannya memuaskan. Kami dapat dengan tegas menjalankan ini untuk menerapkan perubahan.

terraform apply
terraform apply -auto-approve

Dengan tanda -auto-approve, kita dapat menerapkan perubahan secara paksa tanpa perlu mengetikkan 'yes' untuk mengonfirmasi. Namun kita dapat melewati tanda tersebut untuk meninjaunya sekali lagi.

Sekarang ember dibuat seperti gambar ini.

6. Negara

Semua sumber daya yang ada dapat didaftar menggunakan perintah.

terraform state list

Akan ada semua sumber daya yang telah kami terapkan sejauh ini.

7. Hancurkan

Terakhir, jika kita ingin membersihkan semua yang kita buat. Ya, SEMUANYA. Kita harus menjalankan perintah ini.

terraform destroy
terraform destroy -auto-approve

SEMUA sumber daya yang ada akan dihapus. Beberapa sumber daya dilindungi untuk dihapus dan kita perlu memeriksa registri untuk menambahkan beberapa atribut untuk kasus tersebut jika diperlukan.

Ya, ini hanyalah dasar untuk Terraform. Saya akan memperbarui artikel berikutnya tentang itu.

Semoga Anda menemukan cara terbaik untuk mengelola infrastruktur Anda semudah menjalankan Terraform.

Sampai jumpa.