关于java:通过Google-Cloud-StorageGCS管理Terraform的状态State

41次阅读

共计 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

正文完
 0