通过Google Cloud Storage(GCS)管理Terraform的状态State
2023-03-20 15:30:03 时间
管理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:
相关文章
- windows右键菜单扩展容器[开源]
- 【C++ OOP 02 对象的初始化和清理】构造/析构函数、深/浅拷贝、初始化列表以及静态成员
- 遗传算法求TSP问题
- postman安装与使用
- 序列化类的字段和参数
- 闭锁、栅栏与异步编排
- Linux环境下:程序的链接, 装载和库[静态链接]
- 图解B树及C#实现(2)数据的读取及遍历
- 两台蓝牙音箱组立体声
- Fabric2.x中Raft共识算法核心数据结构
- 最容易懂的策略模式消除if-else分支,实现开闭原则,提高可扩展性
- C# 10 Lambda 语法的改进
- 百万级数据excel导出功能如何实现?
- 2023年 .NET Monorepo 来了
- day01-SpringMVC基本介绍
- Eureka源码分析
- JDK8 四大核心函数式接口及扩展接口总结
- 五种传统IO模型
- MyBatis的使用四(查询详解)
- 无需依赖Docker环境制作镜像