如何使用 Terraform 附加驱动器并将驱动器号分配给 GCP 中的 windows 服务器?

How do I attach drives and assign drive letters to windows servers in GCP using Terraform?

我需要将驱动器附加到 GCP 中的 windows 服务器 VM,这必须在 terraform 中完成。我正在使用 terraform 版本 12。

我们有 3 个数据库服务器需要进入 Terraform。现有服务器的驱动器映射如下:

Data:   E
Log:    F
Backup: G

目前我正在构建的服务器以错误的顺序连接驱动器并且分配了错误的字母:

Log:    D
Backup: E
Data:   F

这是我用来创建和附加卷的代码:

// Create Data Disk
resource "google_compute_disk" "datadisk_instance1" {
  name  = var.data_disk_name_instance1
  type  = var.disk_type
  size  = var.data_disk_size
  zone  = var.zone1
  snapshot  =  var.data_snapshot_name_instance1
  physical_block_size_bytes = 4096
}

// Create Log Disk
resource "google_compute_disk" "logdisk_instance1" {
  name  = var.log_disk_name_instance1
  type  = var.disk_type
  size  = var.log_disk_size
  zone  = var.zone1
  snapshot  =  var.log_snapshot_name_instance1
  physical_block_size_bytes = 4096
}

// Create Backup Disk
resource "google_compute_disk" "backupdisk_instance1" {
  name  = var.backup_disk_name_instance1
  type  = var.disk_type
  size  = var.backup_disk_size
  zone  = var.zone1
  snapshot =  var.backup_snapshot_name_instance1
  physical_block_size_bytes = 4096
}

// Attach Data disk
resource "google_compute_attached_disk" "datadiskattach_instance1" {
  disk = google_compute_disk.datadisk_instance1.id
  instance = google_compute_instance.instance1.id
}
// Attach  Log Disk
resource "google_compute_attached_disk" "logdiskattach_instance1" {
  disk = google_compute_disk.logdisk_instance1.id
  instance = google_compute_instance.instance1.id
}

// Attach Backup disk
resource "google_compute_attached_disk" "backupdiskattach_instance1" {
  disk = google_compute_disk.backupdisk_instance1.id
  instance = google_compute_instance.instance1.id
}

正在从快照创建磁盘,必须保留数据。

如何以正确的顺序附加这些磁盘并分配正确的驱动器号?

在 Azure 中,我们通过 运行 自定义脚本扩展来实现它 - 它基本上是在 VM 中下载 powershell 脚本并执行它。

我不知道 GCP,但快速 google 搜索告诉我 Google Compute 可让您设置启动脚本。 您可以 运行 powershell 作为启动脚本,它将执行磁盘初始化和格式化。

A​​zure 文档记录了 powershell(您可能需要在此基础上构建,通过添加检查,如 - 是否有类型为 RAW 的分区?等) https://docs.microsoft.com/en-us/azure/virtual-machines/windows/attach-disk-ps#initialize-the-disk

Terraform 文档有一个添加启动脚本的简单示例,您可能需要修改语法才能启动它 运行 powershell https://registry.terraform.io/providers/hashicorp/google/latest/docs/resources/compute_instance