我正在尝试在Terraform中连接网络接口设备。我尝试使用下面的代码进行测试,但在创建实例时,AWS在您附加任何内容之前已经创建了一个eni。
所以当你附上一些东西时,你最终会得到第二个eni。我只需要一个主要私有IP,它会产生2个私有IP。
resource "aws_network_interface" "test" {
subnet_id = "${aws_subnet.public_a.id}"
private_ips = ["10.0.0.50"]
security_groups = ["${aws_security_group.web.id}"]
attachment {
instance = "${aws_instance.test.id}"
device_index = 1
}
}
答案 0 :(得分:1)
这样做的方法是在创建EC2实例时在terraform中使用network_interface
参数。您的terraform模板应如下所示:
provider "aws" {
region = "us-east-2"
}
resource "aws_network_interface" "eni1" {
subnet_id = "subnet-1234567"
private_ips = ["172.31.16.17"]
}
resource "aws_instance" "testec2instance" {
ami = "ami-12345678"
instance_type = "t2.micro"
tags {
Name = "test-eni-attach-instance-01"
}
network_interface {
device_index = 0
network_interface_id = "${aws_network_interface.eni1.id}"
}
}
如果您只想为EC2实例指定确切的IP地址,则可以在创建实例时在terraform中使用private_ip参数。