谷歌管理问题(通过Google Cloud Storage(GCS)管理Terraform的状态State)
导读:管理Terraform状态文件的最佳方式是通过云端的统一的存储,如谷歌云就用GCS。...
管理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
创心域SEO版权声明:以上内容作者已申请原创保护,未经允许不得转载,侵权必究!授权事宜、对本内容有异议或投诉,敬请联系网站管理员,我们将尽快回复您,谢谢合作!