Untuk setiap deployment, Anda dapat memeriksa atau mengubah file status. Misalnya, Anda mungkin ingin mengimpor atau menghapus resource dari deployment, yang Anda lakukan melalui perubahan file status.
Halaman ini menjelaskan cara menggunakan file status Terraform yang dibuat untuk setiap deployment dan revisi. Untuk mempelajari file status lebih lanjut, lihat Status.
Petunjuk di halaman ini mengasumsikan bahwa Anda sudah memahami Terraform.
Sebelum memulai
Pastikan Anda memiliki izin yang diperlukan untuk menggunakan file status. Peran
config.admin
menyertakan izin yang diperlukan. Izin tertentu yang diperlukan adalah:config.deployments.lock
config.revisions.getState
config.deployments.updateState
config.deployments.unlock
config.deployments.getLock
config.deployments.getState
Pastikan Anda memiliki salinan lokal konfigurasi Terraform. Ini adalah konfigurasi yang sesuai dengan file status yang Anda gunakan.
Salinan lokal konfigurasi memungkinkan Anda menjalankan perintah seperti
terraform refresh
atauterraform plan
secara lokal saat Anda mengubah file status.Instal Terraform untuk menggunakan Terraform CLI di komputer lokal Anda.
Mengubah atau memeriksa file status
Untuk mengubah (memodifikasi) atau memeriksa file status, Anda perlu mengunci deployment dan mendownload file status. Kemudian, Anda dapat mengubah atau memeriksa file status.
Setelah mengubah file status, Anda harus mengupload file tersebut agar Infra Manager dapat menggunakannya dalam deployment.
Mengunci deployment
Kunci deployment untuk mencegah perubahan pada deployment saat Anda memutar file status. Deployment harus dikunci agar dapat mendownload file status.
gcloud infra-manager deployments lock DEPLOYMENT_ID --project PROJECT_ID --location LOCATION
Ganti:
- DEPLOYMENT_ID dengan ID deployment.
- PROJECT_ID dengan project tempat deployment berjalan.
- LOCATION dengan lokasi tempat deployment berjalan.
Output perintah ini berisi
lock ID
yang digunakan untuk mengupload dan membuka kunci file status.Untuk mengambil ID kunci kapan saja, gunakan perintah:
gcloud infra-manager deployments export-lock DEPLOYMENT_ID --project PROJECT_ID --location LOCATION
Mendownload file status
Untuk mendownload file status, Anda menggunakan URL Cloud Storage yang ditandatangani:
SIGNED_STATE_DOWNLOAD_URL=$(gcloud infra-manager deployments export-statefile DEPLOYMENT_ID --project PROJECT_ID --location LOCATION --format="get(signedUri)")
curl -s -X GET --output terraform.tfstate ${SIGNED_STATE_DOWNLOAD_URL}
Mengubah file status secara lokal
Pastikan konfigurasi (file
*.tf
) berada di direktori yang sama dengan file status yang didownload (terraform.tfstate
).Lakukan inisialisasi Terraform:
terraform init
Jika sebelumnya telah melakukan inisialisasi Terraform, Anda mungkin perlu melakukan inisialisasi dengan flag konfigurasi ulang:
terraform init -reconfigure
Gunakan file status sesuai kebutuhan Anda. Misalnya, Anda dapat melakukan operasi pemeriksaan status atau mutasi. Untuk mengetahui detail selengkapnya tentang cara menggunakan file status, lihat Memanipulasi Status Terraform.
Jika Anda membuat perubahan pada file konfigurasi Terraform secara lokal, upload konfigurasi yang diubah. Upload konfigurasi ini ke bucket penyimpanan atau repositori git publik yang Anda gunakan sebagai sumber untuk men-deploy konfigurasi.
Mengupload file status
Gunakan URL Cloud Storage yang ditandatangani untuk mengupload file status:
Dapatkan ID kunci:
LOCK_ID=$(gcloud infra-manager deployments export-lock DEPLOYMENT_ID --project PROJECT_ID --location LOCATION --format="get(lockId)")
Dapatkan URL upload:
SIGNED_STATE_UPLOAD_URL=$(gcloud infra-manager deployments import-statefile DEPLOYMENT_ID --project PROJECT_ID --location LOCATION --lock-id ${LOCK_ID} --format="get(signedUri)") curl -s -X PUT --upload-file terraform.tfstate $SIGNED_STATE_UPLOAD_URL
Membuka kunci deployment
Dapatkan ID kunci:
LOCK_ID=$(gcloud infra-manager deployments export-lock DEPLOYMENT_ID --project PROJECT_ID --location LOCATION --format="get(lockId)")
Buka kunci deployment:
gcloud infra-manager deployments unlock DEPLOYMENT_ID --project PROJECT_ID --location LOCATION --lock-id ${LOCK_ID}
Langkah selanjutnya
- Pelajari Terraform dengan Google Cloud lebih lanjut.
- Memperbarui deployment.
- Melihat status deployment.
- Lihat referensi yang di-deploy.
- Menghapus deployment.