【发布时间】:2020-12-01 18:24:18
【问题描述】:
我正在尝试在我的 AKS 集群基础架构之外的 Terraform 中运行 offset AZ cli 命令,以自动执行繁琐的任务。其中一个正在运行az vmsss extention set 命令以将证书添加到每个节点。为此,我使用带有本地 exec 供应商的空资源。这是我正在使用的AZ cli 命令。
我想利用的命令部分和 Terraform 不喜欢的是带有 curl 的 '{"commandToExecute":...}'。
我想做的例子:
resource "null_resource" "test" {
provisioner "local-exec" {
command = "az vmss extension set --vmss-name my-vmss --name customScript --resource-group my-group version 2.0 --publisher Microsoft.Azure.Extensions provision-after-extensions NetworkWatcherAgentLinux VMAccessForLinux settings '{"commandToExecute": "echo testing"}'"
}
}
结果:
Error: Missing newline after argument
on test.tf line 3, in resource "null_resource" "test":
3: command = "az vmss extension set --vmss-name my-vmss --name customScript --resource-group my-group version 2.0 --publisher Microsoft.Azure.Extensions provision-after-extensions NetworkWatcherAgentLinux VMAccessForLinux settings '{"commandToExecute": "echo testing"}'"
An argument definition must end with a newline.
是否有任何已知的解决方法可以使用 local-exec 配置程序运行更复杂的命令?
地形版本:0.13
【问题讨论】:
-
尝试使用
EOT或-EOT包括您的 cmets。看看terraform.io/docs/configuration/…