pkaramol
pkaramol

Reputation: 19422

Terraform: User Data not rendered

Using terraform to run some user data upon instance creation:

  user_data = "${template_file.user_data.rendered}"

Here is the definition:

resource "template_file" "user_data" {
  template = "files/user_data.tpl"
  vars {
    docker_version = "17.12.1~ce-0~ubuntu"
  }
}

However, in the created instance, the user data just includes the above line:

sudo cat /var/lib/cloud/instances/i-05e8a76335472f27c/user-data.txt
files/user_data.tpl

Any suggestions?

Upvotes: 1

Views: 3065

Answers (1)

junkangli
junkangli

Reputation: 1212

According to template provider doc, the syntax should be:

data "template_file" "user_data" {
  template = "${file(files/user_data.tpl)}"
  vars {
    docker_version = "17.12.1~ce-0~ubuntu"
  }
}

...
resource "aws_instance" "instance" {
  user_data = "${data.template_file.user_data.rendered}"
  ...
}

Upvotes: 3

Related Questions