Terraform/阿里云:创建多数据盘ECS实例
Terraform / alicloud : create an ECS instance with multiple data disks
我正在尝试使用 terraform 创建多个 ecs 实例。实际上我希望每个ecs实例都有多个数据盘。所以一个磁盘用于 OS 和 2 个其他数据磁盘。
代码片段应如下所示:
resource "alicloud_instance" "node" {
image_id = data.alicloud_images.nodes.id
instance_type = var.instance_type_controller
internet_max_bandwidth_out = 100
security_groups = alicloud_security_group.cluster.id
key_name = var.key_pair
count = 1
system_disk_size = 80
data_disks = [
{
name = "/dev/xvdb"
size = 200
delete_with_instance = true
},
{
name = "/dev/xvdc"
size = 100
delete_with_instance = true
}
]
}
唯一的问题是我有一条消息错误告诉我
An argument named "data_disks" is not expected here. Did you mean to define a
block of type "data_disks"?
我检查了 documentation 并且我很确定 data_disks
是 list(map(string))
类型所以我写的应该有效但只有当我将它设置为
data_disks {
name = "/dev/xvdb"
size = 200
delete_with_instance = true
}
但是我的 ECS 实例需要连接多个数据磁盘...我是否遗漏了什么?
我正在使用以下 terraform/provider 版本:
Terraform v0.13.0
+ provider registry.terraform.io/hashicorp/alicloud v1.94.0
+ provider registry.terraform.io/hashicorp/random v2.3.0
+ provider registry.terraform.io/hashicorp/template v2.1.2
正如@ydaetskcoR 评论的那样。解决方案是有多个 data_disks
块。所以像这样:
resource "alicloud_instance" "node" {
image_id = data.alicloud_images.nodes.id
instance_type = var.instance_type_controller
internet_max_bandwidth_out = 100
security_groups = alicloud_security_group.cluster.id
key_name = var.key_pair
count = 1
system_disk_size = 80
data_disks {
name = "/dev/xvdb"
size = 200
delete_with_instance = true
}
data_disks {
name = "/dev/xvdc"
size = 100
delete_with_instance = true
}
}
我正在尝试使用 terraform 创建多个 ecs 实例。实际上我希望每个ecs实例都有多个数据盘。所以一个磁盘用于 OS 和 2 个其他数据磁盘。
代码片段应如下所示:
resource "alicloud_instance" "node" {
image_id = data.alicloud_images.nodes.id
instance_type = var.instance_type_controller
internet_max_bandwidth_out = 100
security_groups = alicloud_security_group.cluster.id
key_name = var.key_pair
count = 1
system_disk_size = 80
data_disks = [
{
name = "/dev/xvdb"
size = 200
delete_with_instance = true
},
{
name = "/dev/xvdc"
size = 100
delete_with_instance = true
}
]
}
唯一的问题是我有一条消息错误告诉我
An argument named "data_disks" is not expected here. Did you mean to define a
block of type "data_disks"?
我检查了 documentation 并且我很确定 data_disks
是 list(map(string))
类型所以我写的应该有效但只有当我将它设置为
data_disks {
name = "/dev/xvdb"
size = 200
delete_with_instance = true
}
但是我的 ECS 实例需要连接多个数据磁盘...我是否遗漏了什么?
我正在使用以下 terraform/provider 版本:
Terraform v0.13.0
+ provider registry.terraform.io/hashicorp/alicloud v1.94.0
+ provider registry.terraform.io/hashicorp/random v2.3.0
+ provider registry.terraform.io/hashicorp/template v2.1.2
正如@ydaetskcoR 评论的那样。解决方案是有多个 data_disks
块。所以像这样:
resource "alicloud_instance" "node" {
image_id = data.alicloud_images.nodes.id
instance_type = var.instance_type_controller
internet_max_bandwidth_out = 100
security_groups = alicloud_security_group.cluster.id
key_name = var.key_pair
count = 1
system_disk_size = 80
data_disks {
name = "/dev/xvdb"
size = 200
delete_with_instance = true
}
data_disks {
name = "/dev/xvdc"
size = 100
delete_with_instance = true
}
}