将脚本参数与 remote-exec - terraform 一起使用
Using the script argument with remote-exec - terraform
我正在尝试将脚本参数与 remote-exec terraform Provisioner 一起使用。根据文档,脚本参数执行以下操作:
script - 这是将被复制到的本地脚本的路径(相对或绝对)
远程资源,然后执行。这不能通过内联或脚本提供。
这是文档的 link:
https://www.terraform.io/docs/language/resources/provisioners/remote-exec.html
代码如下:
script = [
"./scripts/provision.sh"
]
这是错误:
Error: Incorrect attribute value type
on main.tf line 86, in resource "vsphere_virtual_machine" "vm":
86: script = [
87: "./scripts/provision.sh",
88: ]
Inappropriate value for attribute "script": string required.
如有任何帮助,我们将不胜感激。
如果您查看文档,它会说:
您不能将任何参数传递给使用此配置程序的脚本或脚本参数的脚本。如果要指定参数,请使用文件提供器上传脚本,然后使用内联调用它。示例:
resource "aws_instance" "web" {
# ...
provisioner "file" {
source = "script.sh"
destination = "/tmp/script.sh"
}
provisioner "remote-exec" {
inline = [
"chmod +x /tmp/script.sh",
"/tmp/script.sh args",
]
}
}
此外,我建议使用内联而不是 script/scripts(我个人的偏好)。如果您需要使用不带大括号的脚本。
如果您需要有关远程执行的更多帮助,请告诉我。
我是 TF 的新手 - 脚本不采用列表,列表是使用 [ ] 方括号定义的。解决方案是使用
script = "./scripts/provision.sh"
我正在尝试将脚本参数与 remote-exec terraform Provisioner 一起使用。根据文档,脚本参数执行以下操作:
script - 这是将被复制到的本地脚本的路径(相对或绝对) 远程资源,然后执行。这不能通过内联或脚本提供。
这是文档的 link: https://www.terraform.io/docs/language/resources/provisioners/remote-exec.html
代码如下:
script = [
"./scripts/provision.sh"
]
这是错误:
Error: Incorrect attribute value type
on main.tf line 86, in resource "vsphere_virtual_machine" "vm":
86: script = [
87: "./scripts/provision.sh",
88: ]
Inappropriate value for attribute "script": string required.
如有任何帮助,我们将不胜感激。
如果您查看文档,它会说:
您不能将任何参数传递给使用此配置程序的脚本或脚本参数的脚本。如果要指定参数,请使用文件提供器上传脚本,然后使用内联调用它。示例:
resource "aws_instance" "web" {
# ...
provisioner "file" {
source = "script.sh"
destination = "/tmp/script.sh"
}
provisioner "remote-exec" {
inline = [
"chmod +x /tmp/script.sh",
"/tmp/script.sh args",
]
}
}
此外,我建议使用内联而不是 script/scripts(我个人的偏好)。如果您需要使用不带大括号的脚本。
如果您需要有关远程执行的更多帮助,请告诉我。
我是 TF 的新手 - 脚本不采用列表,列表是使用 [ ] 方括号定义的。解决方案是使用
script = "./scripts/provision.sh"