如何解决Hashicorp Packer:将变量/本地字符串值输出到文件的方法
我有一些 Packer 模板,它们生成配置文件的内容,然后我需要将这些内容输出到配置文件。最终目标是将这些文件上传到远程机器,然后使用 shell 配置器,但我似乎无法弄清楚这样做的正确方法。我当前的解决方案依赖本地 shell 配置器来写入文件,然后将它们上传到远程,然后运行远程配置器。
类似的东西,
locals {
foo = "bar"
foo_generated = templatefile("${path.root}/template-which-uses-foo.pkrtpl",foo)
}
provisioner "shell-local" {
inline = [
"cat >${path.root}/generated/foo.conf <<'STR'\n${local.foo_generated}"
]
}
provisioner "file" {
source = "${path.root}/generated/"
destination = "/tmp/"
}
provisioner "shell" {
inline = [
"/tmp/do-something-with-foo-conf.sh",]
}
虽然这可行,但文件生成看起来很笨拙,我想简化它并使其更健壮。
除了“基本”ec2 源之外,我最初开始为配置文件定义 source
es(有很多)。但是,从日志看来,Packer 似乎为构建块内的每个源运行配置程序,因此这似乎不是一个好主意。
是否有更好的选择来实现这一目标?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。