mt_*_*100 2 amazon-web-services terraform terraform-provider-aws
我将 Terraform 与 AWS 结合使用,并且能够使用 aws_storagegateway_gateway 资源创建 AWS Storage Gateway 文件网关。
网关将创建,状态将为“在线”,但控制台中尚未添加缓存磁盘,这是正常的,因为必须在创建网关后完成。该虚拟机确实有一个磁盘,并且可以在控制台中添加它,并且在控制台中执行此操作效果很好。
但是,一旦创建了网关,我就尝试使用 Terraform 添加磁盘,但似乎无法让代码工作,或者很可能不明白如何让它工作。
尝试使用 aws_storagegateway_cache 资源,但我在 disk_id 上收到错误,并且不知道如何让它从网关创建的代码中返回。
有人可能有一个工作示例,说明如何在创建网关后使用 Terraform 添加缓存磁盘,或者知道如何获取 disk_id 以便我可以添加它?
添加代码
provider "aws" {
access_key = "${var.access-key}"
secret_key = "${var.secret-key}"
token = "${var.token}"
region = "${var.region}"
}
resource "aws_storagegateway_gateway" "hmsgw" {
gateway_ip_address = "${var.gateway-ip-address}"
gateway_name = "${var.gateway-name}"
gateway_timezone = "${var.gateway-timezone}"
gateway_type = "${var.gateway-type}"
smb_active_directory_settings {
domain_name = "${var.domain-name}"
username = "${var.username}"
password = "${var.password}"
}
}
resource "aws_storagegateway_cache" "sgwdisk" {
disk_id = "SCSI"
gateway_arn = "${aws_storagegateway_gateway.hmsgw.arn}"
}
output "gatewayid" {
value = "${aws_storagegateway_gateway.hmsgw.arn}"
}
Run Code Online (Sandbox Code Playgroud)
我得到的错误是:
我尝试像上面那样对 disk_id 进行硬编码或使用变量。关于变量,我不知道它是否返回或存在,因此这可能是问题,这是新问题。
小智 5
在创建资源“aws_storagegateway_cache”之前,使用 data 获取磁盘 id。我正在使用下面的脚本,它工作得很好。
variable "upload_disk_path" {
default = "/dev/sdb"
}
data "aws_storagegateway_local_disk" "upload_disk" {
disk_path = "${var.upload_disk_path}"
gateway_arn = "${aws_storagegateway_gateway.this.arn}"
}
resource "aws_storagegateway_upload_buffer" "stg_upload_buffer" {
disk_id = "${data.aws_storagegateway_local_disk.upload_disk.disk_id}"
gateway_arn = "${aws_storagegateway_gateway.this.arn}"
}
Run Code Online (Sandbox Code Playgroud)
如果您使用两个磁盘(一个用于上传,一个用于缓存),请使用相同的代码,但设置默认值cache_disk_path =“/dev/sdc”
| 归档时间: |
|
| 查看次数: |
1664 次 |
| 最近记录: |