共计 777 个字符,预计需要花费 2 分钟才能阅读完成。
治理 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/p…
Reference:
通过 Terraform 创立 GCP Pubsub
正文完