管理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

最新文章

  1. Java程序设计之整数分解
  2. asp.net 自带的缓存
  3. C#单链表
  4. WebStorm设置手机测试服务器-局域网内其他设备访问
  5. 构建高转化率的着陆页-PS+HTML+网络营销
  6. visual studio2013 添加 dll库
  7. IOS的XML文件解析,利用了NSData和NSFileHandle
  8. php session_id()函数介绍及代码实例
  9. 使用jcifs.smb.SmbFile读取Windows上共享目录的文件
  10. 大数据实时处理-基于Spark的大数据实时处理及应用技术培训
  11. Intel® Ethernet Connection I217-V 网卡驱动(win10 ,2012)
  12. Python之数据类型-[bisect,heap]
  13. Alpha冲刺(3/10)——2019.4.25
  14. Python调用subprocess.Popen卡死的解决方案
  15. Flutter 布局(八)- Stack、IndexedStack、GridView详解
  16. 面试题-----按位翻转32位unsigned
  17. 并发编程之 线程协作工具 LockSupport
  18. vi写完文件保存时才发现是readonly😂
  19. 硝烟中的Scrum和XP-我们如何实施Scrum 12)发布计划 13)组合XP
  20. CSS同时使用背景图片和背景颜色

热门文章

  1. 微粒群算法PSO 01背包问题 python
  2. 如何检查“lateinit”变量是否已初始化?
  3. Python基础之函数:2、globlal与nonlocal和闭包函数、装饰器、语法糖
  4. 1.docker的基本使用
  5. hwlog--logger.go
  6. Pairs of Numbers 辗转相除
  7. leetcode学习记录2.13
  8. centos7 ftp服务搭建记录
  9. 基于Sklearn机器学习代码实战
  10. SocketException 不知道这样的主机(Quartz.;Dns.GetHostEntry;new HttpChannel)问题记录