此代码用于处理地形0.11,没有任何问题。我之前多次使用它来创建AWS EC2实例。
以下是/data/CreateBasionHost.tf文件的内容
data "template_file" "BasionHost_data" {
template = "${file("${path.module}/BasionHost.tpl")}"
}
resource "aws_instance" "BasionHost" {
depends_on = ["aws_vpc_dhcp_options_association.dns_resolver"]
depends_on = ["aws_directory_service_directory.MyActiveDirectory"]
depends_on = ["aws_vpc_dhcp_options.DhcpOptionforAD"]
depends_on = ["aws_iam_instance_profile.BackupInst_profile"]
ami = "${var.CENTOS7_CUSTOMIZED_AMI}"
instance_type = "${var.NAT_INST_TYPE}"
iam_instance_profile = "${aws_iam_instance_profile.BackupInst_profile.name}"
associate_public_ip_address = "true"
source_dest_check = "false"
disable_api_termination = "false"
subnet_id = "${aws_subnet.PublicSubnetB.id}"
availability_zone = "${var.AWS_REGION}b"
vpc_security_group_ids = ["${aws_default_security_group.default.id}"]
key_name = "${var.NAT_INST_KEY_NAME}"
private_ip = "${var.BASIONHOST_PRIVATE_IP}"
user_data = "${data.template_file.BasionHost_data.rendered}"
}
我使用传递pain-yum命令,以便更新Linux服务器。以下是的内容/数据/BasicHost.tpl
#! /bin/bash
yum update -y
ln -s /usr/bin/clear /usr/bin/cls
但是现在这个代码不适用于terraform 0.14。我试着读了这个[Terraform链接](https://www.terraform.io/docs/configuration/functions/templatefile.html?_ga=2.248470019.549632933.1609205994-820700225.1609205994(
terraform网站提到使用templatefile函数。但我不能做到同样,例子也不太清楚。有人能指引我吗?
我试图使用Terraform v0.14.3使用官方的CentOS 7 AMI复制该问题。由于template_file
,不存在任何问题。相反,在我的测试中,问题是由#! /bin/bash
中的空间引起的,这导致用户数据无法执行。因此,解决方案是删除它:
#!/bin/bash
yum update -y
ln -s /usr/bin/clear /usr/bin/cls