【发布时间】:2018-02-02 12:46:16
【问题描述】:
我在 terraform v0.9.11 模板中使用 remote-exec 提供程序,如下所示:
...
provisioner "remote-exec" {
inline = [
"Set-ExecutionPolicy Bypass -force",
"./C:\ProgramData\Amazon\EC2-Windows\Launch\Config\Replace-FileString.ps1 -Pattern '""' -Replacement '"${var.admin_password}"' -Path LauchConfig.json"
]
...
但我在-Pattern '""' 收到illegal char escape 错误。
我要在远程机器上执行的命令是:"... FileString.ps1 -Pattern '""' -Replacement '"xyz"' "
PS:像
"... FileString.ps1 -Pattern '\"\"' -Replacement '\"xyz\"' "这样用\ 转义也不起作用。
...代表此处省略不相关的文字。
【问题讨论】:
-
从我所看到的一切来看,看起来用反斜杠转义应该可行。当你尝试它时实际上会发生什么 - 假设它是某种解析器错误?如果是这样,我想知道这是否是 terraform 的回归,应该记录为新错误。同时,您能否使用
script选项而不是inline? -
@JamesThorpe 当我使用反斜杠时,我仍然得到
illegal char escape.. 我会尝试script看看问题是否仍然存在 -
只是在看 - 您可能需要使用
fileandinlinesince you've got an argument to pass in (admin_password)