Dalam dunia infrastruktur sebagai kode (Infrastructure as Code/IaC), Terraform telah menjadi salah satu alat utama bagi para profesional IT untuk mengelola dan menyusun infrastruktur baik cloud dan on-premise. Saat kita menggunakan Terraform untuk mengelola sumber daya, penting untuk mempertimbangkan bagaimana Anda akan menyimpan dan mengelola state file Terraform Anda.
State Terraform adalah file yang menyimpan informasi tentang sumber daya yang dikelola oleh Terraform. Ini mencakup informasi tentang konfigurasi sumber daya, ID sumber daya, dan status saat ini dari sumber daya tersebut. State ini sangat penting untuk memungkinkan Terraform melacak perubahan yang dilakukan pada infrastruktur Anda dan memutuskan tindakan yang diperlukan untuk mencapai konfigurasi yang diinginkan.
Penyimpanan state Terraform adalah tahap yang kritis dalam mengelola infrastruktur Anda. Ini memastikan keamanan data sensitif yang mungkin terkandung dalam state file, seperti token akses ke cloud provider Anda. Selain itu, Anda ingin memastikan bahwa state file dapat diakses oleh tim Anda dengan aman, bahkan jika Anda berkolaborasi dalam tim yang berbeda atau jika Anda mengelola beberapa proyek.
Sebelum memulai ada beberapa syarat yang harus terpenuhi yaitu:
Buka folder yang berisi berkas Terraform, lalu buat 1 berkas baru dengan nama backend.tf lalu ketik seperti di bawah ini, jangan lupa sesuaikan konfigurasinya dengan konfigurasi yang teman-teman punya.
terraform {backend "oss" {bucket = "ariyolo-terraform-state"key = "terraform.tfstate"prefix = "iac-cloudflare"endpoint = "oss-ap-southeast-5.aliyuncs.com"region = "ap-southeast-5"access_key = "xxxxxxxxxxxxxxxxx"secret_key = "yyyyyyyyyyyyyyyyy"}}
| Nama Variabel | Nilai Variabel |
|---|---|
| bucket | Nama bucket OSS yang telah dibuat sebelumnya di Alibaba Cloud. State file Terraform akan disimpan dalam bucket ini. |
| key | Ini adalah nama file state Terraform di dalam bucket OSS. Dalam contoh di atas menggunakan nama terraform.tfstate sebagai default, tetapi dapat diganti sesuai kebutuhan. |
| prefix | Digunakan jika akan menyimpan state ke folder lain di dalam bucket. Biasanya digunakan untuk memisahkan sumber daya agar lebih rapi dalam beberapa folder. |
| endpoint | Endpoint OSS sesuai wilayah Alibaba Cloud yang digunakan. Contoh: oss-ap-southeast-5.aliyuncs.com untuk region Indonesia. |
| region | Nama region Alibaba Cloud. Untuk Indonesia menggunakan ap-southeast-5. |
| access_key dan secret_key | Kunci akses ke akun Alibaba Cloud yang digunakan untuk autentikasi dan otorisasi Terraform saat mengakses bucket OSS. Harus dijaga kerahasiaannya dan tidak dibagikan ke pihak lain. |
Sekarang kita harus menginisialisasi state di Alibaba Cloud OSS dengan perintah terraform init -reconfigure normalnya akan muncul pesan seperti di bawah ini yang menandakan sukses
ariyolo-gt@mjolnir:~/code/iac-cloudflare$ terraform init -reconfigureInitializing the backend...Successfully configured the backend "oss"! Terraform will automaticallyuse this backend unless the backend configuration changes.Initializing provider plugins...- Reusing previous version of aliyun/alicloud from the dependency lock file- Reusing previous version of cloudflare/cloudflare from the dependency lock file- Using previously-installed aliyun/alicloud v1.209.1- Using previously-installed cloudflare/cloudflare v4.13.0Terraform has been successfully initialized!You may now begin working with Terraform. Try running "terraform plan" to seeany changes that are required for your infrastructure. All Terraform commandsshould now work.If you ever set or change modules or backend configuration for Terraform,rerun this command to reinitialize your working directory. If you forget, othercommands will detect it and remind you to do so if necessary.
Setelah selesai mengonfigurasi proyek sekarang kita sudah bisa melakukan terraform plan dan terraform apply dan state disimpan di Alibaba Cloud OSS. Ini membantu dalam menjaga integritas dan keamanan konfigurasi infrastruktur serta memudahkan kolaborasi dengan tim dalam proyek-proyek Terraform kita.
Quick Links
Legal Stuff
