本文へスキップ

リソースを持たないプロビジョナー

特定のリソースに直接関連付けられていないプロビジョナーを実行する必要がある場合は、`terraform_data`に関連付けることができます。

terraform_dataのインスタンスは通常の資源として扱われますが、何も実行しません。他のリソースタイプと同様に、プロビジョナー接続の詳細を`terraform_data`リソースに設定できます。また、`input`引数、`triggers_replace`引数、および任意のメタ引数を使用して、依存関係グラフ内のプロビジョナーの実行場所を正確に制御することもできます。

使用例

コードブロック
resource "aws_instance" "cluster" {
count = 3

# ...
}

resource "terraform_data" "cluster" {
# Replacement of any instance of the cluster requires re-provisioning
triggers_replace = aws_instance.cluster.[*].id

# Bootstrap script can run on any instance of the cluster
# So we just choose the first in this case
connection {
host = aws_instance.cluster.[0].public_ip
}

provisioner "remote-exec" {
# Bootstrap script called with private_ip of each node in the cluster
inline = [
"bootstrap-cluster.sh ${join(" ", aws_instance.cluster.*.private_ip)}",
]
}
}