【发布时间】:2021-12-28 08:11:41
【问题描述】:
我有一个 Terraform (1.0+) 脚本,它根据一些输入从模板生成本地配置文件,例如:
locals {
config_tpl = templatefile("${path.module}/config.tpl", {
foo = "bar"
})
}
resource "local_file" "config" {
content = local._config_tpl
filename = "${path.module}/config.yaml"
}
该文件随后被从local-exec 块运行的后续命令使用,该块又也生成本地配置文件:
resource "null_resource" "my_command" {
provisioner "local-exec" {
when = create
command = "../scripts/my_command.sh"
working_dir = "${path.module}"
}
depends_on = [
local_file.config,
]
}
my_command.sh 生成当前没有可用的 Terraform 提供程序的基础架构。
所有生成的文件都应该构成配置状态的一部分,因为它们在以后的升级过程中需要,最终会破坏环境。
我还想从 CI/CD 管道运行这些脚本,因此您自然希望每次运行时工作区都是干净的,这意味着生成的文件将不存在。
是否有管理此类文件的模式?我最初的想法是创建云存储桶,压缩文件并将它们存储在那里,然后在需要时将它们拉回。然而,这感觉比已经发生的更肮脏,而且似乎有可能遇到依赖问题。
或者,我是否遗漏了一些完全不同的东西来解决诸如此类的问题?
【问题讨论】:
标签: terraform infrastructure-as-code