我是 Terraform 和 AWS 学习 template_file 的新手。我刚刚使用 template_file 构建了如下代码,但在启动 EC2 实例后,我发现 template_file 中的脚本未执行 - 未安装 tcpdump 和 httpd 并且未进行主机名和名称服务器配置。有人可以指出我在这里做错了什么吗?
模板文件:user_data.sh.tpl:
#!/usr/bin/bash sudo yum install -y tcpdump sudo yum update -y sudo yum install -y httpd24 php56 php56-mysqlnd sudo service httpd start sudo hostname www.xyz.com echo "${nameserver}" >> /etc/resolv.conf
模块目录下 application.tf 文件中的资源和数据:
data "template_file" "user_data" { template = "${file("/Users/user1/Documents/Terraform/Code/started/modules/application/user_data.sh.tpl")}" vars { nameserver = "${var.external_nameserver}" } } resource "aws_instance" "app-server" { ami = "ami-b2b55cd5" key_name = "privatekey" instance_type = "${lookup(var.instance_type, var.environment)}" subnet_id = "${var.subnet_id}" vpc_security_group_ids = ["${distinct(concat(var.extra_sgs, aws_security_group.allow_http.*.id))}"] user_data = "${data.template_file.user_data.rendered}" tags { Name = "${var.name}" } }