Konfigurasi dan pembuatan skrip terraform
Di unit ini, kita melihat konfigurasi dan pembuatan skrip Terraform.
Mengapa Terraform?
Sebagai manajer infrastruktur, Anda memerlukan alat untuk menyediakan dan mengelola infrastruktur Azure. Anda juga ingin menggunakan infrastruktur sebagai kode dalam file konfigurasi yang menjelaskan topologi sumber daya Azure Anda.
HashiCorp Terraform sangat bagus dalam menerapkan infrastruktur di seluruh penyedia cloud. Ini memberi pengembang alat yang konsisten untuk mengelola setiap definisi infrastruktur.
Mengotomatiskan manajemen infrastruktur
Dengan menggunakan file konfigurasi Terraform berbasis templat, Anda dapat menentukan, menyediakan, dan mengonfigurasi sumber daya Azure secara berulang dan dapat diprediksi. Otomatisasi ini menawarkan beberapa manfaat:
- Menurunkan potensi kesalahan manusia karena menyebarkan dan mengelola infrastruktur.
- Menggunakan templat yang sama beberapa kali untuk membuat pengembangan, pengujian, dan lingkungan produksi yang identik.
- Mengurangi biaya pengembangan dan lingkungan pengujian dengan membuatnya berdasarkan permintaan.
Memahami perubahan infrastruktur sebelum diterapkan
Sebagai topologi sumber daya menjadi semakin kompleks, mungkin sulit untuk memahami makna dan efek perubahan infrastruktur.
Dengan menggunakan Terraform, Anda dapat memvalidasi dan mempratinjau perubahan infrastruktur sebelum menerapkannya. Anggota tim dapat berkolaborasi lebih efektif dengan memahami perubahan yang diusulkan dan efeknya di awal proses pengembangan.
File konfigurasi Terraform
File konfigurasi menghasilkan rencana eksekusi dan apa yang akan dilakukan rencana untuk mencapai keadaan yang diinginkan. Terraform kemudian dapat membangun infrastruktur yang dijelaskan. Saat konfigurasi berubah, Terraform dapat menentukan apa yang berubah dan membuat rencana eksekusi bertambah bertahas.
File konfigurasi Terraform menggunakan bahasa konfigurasi mereka sendiri yang mirip dengan YAML yang dirancang untuk memungkinkan deskripsi infrastruktur.
Anda membuat file konfigurasi dengan menggunakan sintaks HashiCorp Configuration Language (HCL). HCL bersifat deklaratif, menggambarkan maksud tujuan daripada langkah-langkah untuk mencapai tujuan tersebut. Sintaks HCL memungkinkan Anda menentukan penyedia cloud, seperti Azure, dan elemen yang membentuk infrastruktur cloud Anda.
File konfigurasi disimpan sebagai file teks biasa dengan ekstensi .tf . Yaitu:
- main.tf: (diperlukan) Menentukan struktur utama, menyebarkan infrastruktur lengkap secara langsung atau melalui panggilan ke modul
- outputs.tf: Mengidentifikasi setiap nilai pengembalian modul Terraform
- variables.tf: Menentukan variabel dalam main.tf, apakah variabel tersebut diperlukan atau tidak
Modul
Anda dapat mengelompokkan sumber daya Terraform ke dalam modul, yang membuat unit konfigurasi yang lebih besar. Modul ini adalah kumpulan file konfigurasi yang disimpan dalam satu direktori. Konfigurasi sederhana terdiri dari satu direktori dengan satu atau beberapa file .tf .
Modul menawarkan banyak manfaat. Misalnya, modul:
- Bantu atur proyek Anda.
- Enkapsulasi kompleksitas.
- Memungkinkan Anda menggunakan kembali tugas umum.
- Berikan konsistensi dan pastikan Anda mengikuti praktik yang baik.
File main.tf
File main.tf Anda berisi serangkaian detail konfigurasi utama untuk modul Anda. File ini sering disebut rencana Terraform. Paket Terraform Anda menentukan sumber daya infrastruktur yang Anda butuhkan. Anda dapat memberi nama file ini apa pun yang Anda inginkan, tetapi biasanya diberi nama main.tf.
Alur kerja terraform
Terraform merekomendasikan alur kerja intinya "menginisialisasi, merencanakan, dan menerapkan" untuk otomatisasi. Alur kerja ini menjalankan semua tindakan Terraform CI/CD pada permintaan tarik Git baru dan diperbarui.
Tindakan inti untuk alur kerja ini adalah:
- Init: Menginisialisasi direktori kerja dengan file konfigurasi Terraform
- Paket: Menghasilkan rencana untuk mengubah sumber daya agar sesuai dengan konfigurasi saat ini
- Terapkan: Terapkan perubahan yang dijelaskan oleh rencana
Status
Status memungkinkan Terraform mengetahui sumber daya Azure apa yang akan ditambahkan, diperbarui, atau dihapus.
Terraform menggunakan status untuk membuat rencana dan membuat perubahan pada infrastruktur Anda. Sebelum operasi apa pun, Terraform melakukan penyegaran untuk memperbarui keadaan dengan infrastruktur nyata.
Status disimpan secara default dalam file teks lokal bernama terraform.tfstate. Terraform mengelola file ini dengan menggunakan tindakan alur kerja yang Anda tentukan dalam modul Anda.
Anda juga dapat menyimpan status dari jarak jauh, pendekatan yang bekerja lebih baik di lingkungan tim. Untuk informasi selengkapnya tentang mengelola status dari jarak jauh, lihat unit Ringkasan di akhir modul ini.
Langkah berikutnya
Di unit berikutnya, kita akan membahas penggunaan Terraform dengan GitHub Actions atau Azure Pipelines untuk menyediakan dan menyebarkan aplikasi Anda.