跳至主要内容

remote-exec 配置器

remote-exec 配置器在远程资源创建后调用远程资源上的脚本。这可以用来运行配置管理工具、引导到集群等等。若要调用本地进程,请参阅 local-exec 配置器remote-exec 配置器需要一个 连接,并支持 sshwinrm

示例用法

代码块
resource "aws_instance" "web" {
# ...

# Establishes connection to be used by all
# generic remote provisioners (i.e. file/remote-exec)
connection {
type = "ssh"
user = "root"
password = var.root_password
host = self.public_ip
}

provisioner "remote-exec" {
inline = [
"puppet apply",
"consul join ${aws_instance.web.private_ip}",
]
}
}

参数参考

支持以下参数

  • inline - 这是一个命令字符串列表。配置器使用默认的 shell,除非您将 shell 指定为第一个命令(例如,#!/bin/bash)。您不能与 scriptscripts 一起提供它。

  • script - 这是一个本地脚本的路径(相对或绝对),该脚本将被复制到远程资源,然后执行。它不能与 inlinescripts 一起提供。

  • scripts - 这是一个本地脚本路径(相对或绝对)列表,这些脚本将被复制到远程资源,然后执行。它们将按照提供的顺序执行。它不能与 inlinescript 一起提供。

脚本参数

您不能使用此配置器的 scriptscripts 参数向脚本传递任何参数。如果您想指定参数,请使用 文件配置器 上传脚本,然后使用 inline 调用它。示例

代码块
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",
]
}
}