管理Terraform狀態檔案的最佳方式是通過云端的統一的存盤,如谷歌云就用GCS,
首先要創建一個Bucket:
$ gsutil mb -p pkslow -l us-west1 -b on gs://pkslow-terraform
Creating gs://pkslow-terraform/...
$ gsutil ls gs://
gs://pkslow-terraform/
然后在Terraform檔案中配置對應的資訊:
terraform {
backend "gcs" {
bucket = "pkslow-terraform"
prefix = "state/gcp/pubsub"
}
}
初始化后,就會在Bucket上創建對應的目錄:
$ terraform init -plugin-dir=${TERRAFORM_PLUGIN}
變更生效:
$ terraform apply -auto-approve
我們在瀏覽器查看一下,發現已經成功狀態了對應的狀態檔案:

通過遠程的云端,不僅可以存入狀態檔案,也可以從狀態檔案讀取資料,如一些輸出變數,比如模塊A創建了一個VM,而我們可能通過這種方式獲取它的IP,以便在其它模塊使用,大致的配置如下:
data "terraform_remote_state" "foo" {
backend = "gcs"
config = {
bucket = "terraform-state"
prefix = "prod"
}
}
resource "template_file" "bar" {
template = "${greeting}"
vars {
greeting = "${data.terraform_remote_state.foo.greeting}"
}
}
代碼
代碼請查看GitHub: https://github.com/LarryDpk/pkslow-samples
Reference:
通過Terraform創建GCP Pubsub
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/541995.html
標籤:其他
上一篇:java中的基本型別
下一篇:基于狀態機的按鍵消抖模塊
