EC2 インスタンスの属性を変数として使用しようとしていますが、何度も失敗するか、機能しません。以下に示すように、インスタンスにコピーされる構成ファイルにインスタンスのプライベート IP を挿入します。次に、remote-exec スクリプトがファイルを所定の場所 (/etc/vault.d/server-config.json) に移動します。
インスタンス.tf
resource "template_file" "tpl-vault-server-config" {
template = "${file("${path.module}/templates/files/vault-server-config.json.tpl")}"
vars {
aws_private_ip = "${aws_instance.ec2-consul-server.private_ip}"
}
}
provisioner "file" {
source = "${template_file.tpl-vault-server-config.rendered}"
destination = "/tmp/vault-server-config.json"
}
vault-server-config.json.tpl
backend "consul" {
address = "127.0.0.1:8500"
path = "vault"
tls_enable = 1
tls_ca_file = "/etc/consul.d/ssl/ca.cert"
tls_cert_file = "/etc/consul.d/ssl/consul.cert"
tls_key_file = "/etc/consul.d/ssl/consul.key"
}
listener "tcp" {
address = "${aws_private_ip}:8200"
tls_cert_file = "/etc/consul.d/ssl/consul.cert"
tls_key_file = "/etc/consul.d/ssl/consul.key"
}
エラーterraform plan
は次のとおりです。
* aws_instance.ec2-consul-server: missing dependency: template_file.tpl-vault-server-config
質問:
- 私は間違ったアプローチを取っていますか?
- 基本的なものが欠けていますか?
- インスタンスの属性をファイルに取得するにはどうすればよいですか?
前もって感謝します。