A
Size: a a a
A
DG
DG
DG
IB
data "template_file" "sample_instance" {
template = file("files/install.tpl")
vars = {
tf_aws_access_key = var.access_key
tf_aws_secret_key = var.secret_key
tf_aws_region = var.aws_region
}
}
resource "aws_instance" "sample_instance" {
ami = "ami-0a7d051a1c4b54f65"
instance_type = "t2.micro"
key_name = aws_key_pair.sample_key.key_name
provisioner "remote-exec" {
inline = [
data.template_file.sample_instance.rendered
]
}
connection {
type = "ssh"
user = "ubuntu"
host = aws_instance.sample_instance.public_ip
private_key = file("${var.private_key}")
}
tags = {
Name = "sample-instance"
}
}
files/install.tpl
выполняется, а вот переменные tf_aws_access_key
, tf_aws_secret_key
, tf_aws_region
не передаютсяIB
A
AV
IB
IB
files/install.tpl
#!/bin/bash
sudo apt update
echo "[default]
region = $tf_aws_region" >> /home/ubuntu/.aws/config
echo "[default]
aws_access_key_id = $tf_aws_access_key
aws_secret_access_key = $tf_aws_secret_key" >> /home/ubuntu/.aws/credentials
IB
$tf_aws_region
- пустотаA
IB
IB
variable "aws_region" {
type = string
default = "us-west-2"
}
variable "access_key" {
type = string
default = "XXX"
}
variable "secret_key" {
type = string
default = "YYY"
}
IB
user_data
то переменные все подставятся. Но тогда я не буду знать когда все завершилось. Потому мне нужно через remote-exec
AK
data "template_file" "sample_instance" {
template = file("files/install.tpl")
vars = {
tf_aws_access_key = var.access_key
tf_aws_secret_key = var.secret_key
tf_aws_region = var.aws_region
}
}
resource "aws_instance" "sample_instance" {
ami = "ami-0a7d051a1c4b54f65"
instance_type = "t2.micro"
key_name = aws_key_pair.sample_key.key_name
provisioner "remote-exec" {
inline = [
data.template_file.sample_instance.rendered
]
}
connection {
type = "ssh"
user = "ubuntu"
host = aws_instance.sample_instance.public_ip
private_key = file("${var.private_key}")
}
tags = {
Name = "sample-instance"
}
}
files/install.tpl
выполняется, а вот переменные tf_aws_access_key
, tf_aws_secret_key
, tf_aws_region
не передаютсяtf console
вывод data.template_file.sample_instance.rendered
AK
data "template_file" "sample_instance" {
template = file("files/install.tpl")
vars = {
tf_aws_access_key = var.access_key
tf_aws_secret_key = var.secret_key
tf_aws_region = var.aws_region
}
}
resource "aws_instance" "sample_instance" {
ami = "ami-0a7d051a1c4b54f65"
instance_type = "t2.micro"
key_name = aws_key_pair.sample_key.key_name
provisioner "remote-exec" {
inline = [
data.template_file.sample_instance.rendered
]
}
connection {
type = "ssh"
user = "ubuntu"
host = aws_instance.sample_instance.public_ip
private_key = file("${var.private_key}")
}
tags = {
Name = "sample-instance"
}
}
files/install.tpl
выполняется, а вот переменные tf_aws_access_key
, tf_aws_secret_key
, tf_aws_region
не передаютсяAK
inline = [
"sudo apt update",
"bash -c 'echo \"[default]\" >> /home/ubuntu/.aws/config'",
"bash -c 'echo \"region = ${var.aws_region}\" >> /home/ubuntu/.aws/config'",
...
]
AK
AK
local_file
и используй script
вместо inline
- но тогда у тебя в локальном файле креды будут