Dalam tutorial ini, Anda akan mempelajari cara menyimpan status Terraform di bucket Cloud Storage.
Secara default, Terraform menyimpan state secara lokal dalam file bernama terraform.tfstate
. Konfigurasi default ini dapat mempersulit penggunaan Terraform oleh tim ketika beberapa pengguna menjalankan Terraform secara bersamaan dan setiap mesin memiliki pemahamannya sendiri tentang infrastruktur saat ini.
Untuk membantu Anda menghindari masalah tersebut, halaman ini menunjukkan cara mengonfigurasi status jarak jauh yang mengarah ke bucket Cloud Storage. Status jarak jauh adalah fitur backend Terraform.
Biaya
Cloud Storage menimbulkan biaya untuk penyimpanan, operasi baca dan tulis, keluar dari jaringan, dan replikasi.
Bucket Cloud Storage dalam tutorial ini mengaktifkan Pembuatan Versi Objek untuk menyimpan histori deployment Anda. Mengaktifkan Pembuatan Versi Objek akan meningkatkan biaya penyimpanan, yang dapat Anda kurangi dengan mengonfigurasi Pengelolaan Siklus Proses Objek untuk menghapus versi status lama.
Sebelum memulai
-
Pastikan Anda memiliki
izin Cloud Storage yang diperlukan di akun pengguna Anda:
storage.buckets.create
storage.buckets.list
storage.objects.get
storage.objects.create
storage.objects.delete
storage.objects.update
Pelajari lebih lanjut tentang peran dan perizinan
Sebagai praktik terbaik, sebaiknya kontrol akses ke bucket dan file status yang disimpan di sana. Hanya sekelompok kecil pengguna (misalnya, administrator cloud utama dan orang yang bertindak sebagai administrator alternatif atau cadangan) yang boleh memiliki izin admin untuk bucket. Developer lain harus memiliki izin untuk hanya menulis dan membaca objek di dalam bucket.
- Mulai Cloud Shell.
Cloud Shell adalah mesin virtual Compute Engine. Kredensial layanan yang terkait dengan mesin virtual ini bersifat otomatis, sehingga Anda tidak perlu menyiapkan atau mendownload kunci akun layanan.
- Aktifkan Cloud Storage API:
gcloud services enable storage.googleapis.com
Mengonfigurasi Terraform untuk menyimpan status di bucket Cloud Storage
Pada langkah-langkah berikut, Anda akan membuat bucket Cloud Storage dan mengubah konfigurasi backend ke bucket baru dan project Google Cloud Anda.
Buat bucket
Tambahkan resource Terraform
google_storage_bucket
berikut ke file konfigurasi Terraform, sepertimain.tf
.Dalam cuplikan kode, kolom
location
di-hard code menjadiUS
(yang berarti bucket multi-region di AS telah dibuat). Anda dapat mengubah kolom ini ke lokasi pilihan Anda.Jalankan
terraform apply
untuk membuat bucket penyimpanan.
Mengubah konfigurasi backend
Tambahkan teks berikut ke file konfigurasi Terraform baru yang bernama
backend.tf
.terraform { backend "gcs" { bucket = "BUCKET_NAME" prefix = "terraform/state" } }
Pastikan Anda mengupdate BUCKET_NAME agar cocok dengan nama bucket Cloud Storage baru.
Jalankan
terraform init
untuk mengonfigurasi backend Terraform.Terraform mendeteksi bahwa Anda sudah memiliki file status secara lokal dan meminta Anda untuk menyalinnya ke bucket Cloud Storage yang baru. Masukkan
yes
.
Setelah menjalankan perintah ini, status Terraform Anda akan disimpan di bucket Cloud Storage. Terraform mengambil status terbaru dari bucket ini sebelum menjalankan perintah, dan mengirim status terbaru ke bucket setelah menjalankan perintah.
Langkah berikutnya
- Pelajari lebih lanjut cara mengelola infrastruktur sebagai kode dengan Terraform, Cloud Build, dan GitOps.
- Pelajari validasi kebijakan.