[英]Terraform one EC2 instance with two subnets
我需要創建一個 EC2 並將 2 個子網關聯到它。
變量.tf
variable "aws_subnet_id_this" {
description = "Subnet ID"
default = ["subnet-09df122a4faee8882", "subnet-2fcc756f02ddb4b62"]
}
主文件
resource "aws_instance" "test" {
ami = var.ami_id
instance_type = var.ec2_instance_type
subnet_id = var.aws_subnet_id_this
key_name = var.pki_name
vpc_security_group_ids = [aws_security_group.Allow_SSH_in.id]
}
錯誤:
錯誤:屬性值類型不正確
在 main_count_data.tf 第 57 行,在資源“aws_instance”“test”中:57:subnet_id = var.aws_subnet_id_this |---------------- | var.aws_subnet_id_eks 是具有 2 個元素的元組
屬性“subnet_id”的值不合適:需要字符串。
所以我嘗試了這個:
主文件
resource "aws_instance" "prueba" {
ami = var.ami_id
instance_type = var.ec2_instance_type
#subnet_id = var.aws_subnet_id_this
count = 2
subnet_id = "${element(var.aws_subnet_id_this, count.index)}"
key_name = var.pki_name
vpc_security_group_ids = [aws_security_group.Allow_SSH_in.id]
}
}
但是這最后一部分代碼嘗試使用第二個子網創建一個新的 EC2 實例,這不是我所期望的。
總結一下:我需要 1 個 EC2,其中包含 variables.tf 文件中定義的 2 個子網。
我怎樣才能做到這一點?
下面是一個示例,說明如何在不同的子網中創建一個具有兩個 NIC 的實例。 NIC必須在同一個 AZ 中。 所以實例可以在不同的子網中有兩個網卡,只要它們在同一個 AZ 中:
variable "aws_subnet_id_this" {
description = "Subnet ID"
default = ["subnet-09df122a4faee8882", "subnet-2fcc756f02ddb4b62"]
}
resource "aws_network_interface" "nic1" {
subnet_id = var.aws_subnet_id_this[0]
}
resource "aws_network_interface" "nic2" {
subnet_id = var.aws_subnet_id_this[1]
}
resource "aws_instance" "prueba" {
ami = var.ami_id
instance_type = var.ec2_instance_type
key_name = var.pki_name
network_interface {
device_index = 0
network_interface_id = aws_network_interface.nic1.id
}
network_interface {
device_index = 1
network_interface_id = aws_network_interface.nic2.id
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.