本文へスキップ

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 - これはコマンド文字列のリストです。最初のコマンドにシェルを指定しない限り(例:#!/bin/bash)、プロビジョナーはデフォルトのシェルを使用します。scriptまたはscriptsと一緒に指定することはできません。

  • script - これは、リモートリソースにコピーされて実行されるローカルスクリプトへのパス(相対パスまたは絶対パス)です。inlineまたはscriptsと一緒に指定することはできません。

  • scripts - これは、リモートリソースにコピーされて実行されるローカルスクリプトへのパスのリストです。指定された順序で実行されます。inlineまたはscriptと一緒に指定することはできません。

スクリプト引数

このプロビジョナーのscriptまたはscripts引数を使用して、スクリプトに引数を渡すことはできません。引数を指定する場合は、ファイルプロビジョナーでスクリプトをアップロードしてから、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",
]
}
}