使用terraform中的data-source为aws实例添加userdata

Nee*_*raj 6 amazon-ec2 amazon-web-services terraform

我需要使用terraform创建一个包含用户数据的AWS实例.我正在使用terraform 0.10.0.

ec2.tf

data "template_file" "user_data" {
  template = "userdata.tpl"
}

resource "aws_instance" "fluentd-web" {
  ami           = "${lookup(var.amis, var.aws_region)}"
  instance_type = "t2.micro"
  subnet_id = "${var.subnet_id}"
  user_data = "${data.template_file.user_data.rendered}"
  security_groups =[ "${aws_security_group.ec2_sg.id}" ]
  connection {
     ***
  }
}
Run Code Online (Sandbox Code Playgroud)

userdata.tpl

#! /bin/bash

apt install <**>
Run Code Online (Sandbox Code Playgroud)

在应用terraform时,它没有显示错误.但是文件的内容不会被填充为用户数据.它只是将文件名显示为用户数据. AWS控制台

如何将文件内容作为用户数据获取?

BMW*_*BMW 8

设置模板如下:

template = "${file("${path.module}/userdata.tpl")}"
Run Code Online (Sandbox Code Playgroud)

这里我们${path.module}用来获取模块相对路径.

参考:https://www.terraform.io/docs/modules/create.html