Kei*_*ley 14 startup google-cloud-platform terraform
网上有很多例子展示了如何在部署在 GCP/GCE 上的虚拟机上使用 Terraform 运行启动脚本,但它们都使用内联启动脚本,所有启动脚本代码都包含在 terraform compute.tf 文件中。这可以通过启动脚本的单行或多行的 <<SCRIPT[script code]SCRIPT 来完成。我还没有找到一个示例来展示如何将启动脚本参数分配给本地磁盘上的另一个文件,可能与 compute.tf 位于同一目录中。用数百行启动脚本将compute.tf 弄得一团糟。没有更好的方法来做到这一点吗?
我意识到我可以编写一个包装脚本,将一个 compute.tf 和一个单独的启动文件组合到一个 compute.tf 中,然后运行 terraform,但我正在寻找一条更直接的路线,假设存在。
谢谢你。
gly*_*ing 16
要在 GCE VM 声明中引用文件,只需使用file 函数从所选文件中读取内容。例如:
resource “google_compute_instance” “default” {
…
metadata_startup_script = “${file(“/path/to/your/file”)}”
}
Run Code Online (Sandbox Code Playgroud)
同样,您还可以使用template_file数据源对模板文件执行令牌替换,然后在 GCE VM 声明中引用解析的文件内容。例如:
data “template_file” “default” {
template = “${file(“/path/to/your/file”)}”
vars = {
address = “some value“
}
}
resource “google_compute_instance” “default” {
…
metadata_startup_script = “${data.template_file.default.rendered}”
}
Run Code Online (Sandbox Code Playgroud)
参考:
小智 5
通过登录实例并运行来重新运行自定义启动脚本。
sudo google_metadata_script_runner --script-type startup
Run Code Online (Sandbox Code Playgroud)
并且要启用完整调试,请执行以下操作
sudo DEBUG=1 google_metadata_script_runner
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7745 次 |
| 最近记录: |