如何使用 Terraform 在 GCP 中为 Windows 服务器附加驱动器和分配驱动器号?

时间:2021-03-31 21:03:23

标签: terraform terraform-provider-gcp

我需要将驱动器连接到 GCP 中的 Windows 服务器虚拟机,这必须在 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
}

磁盘是从快照创建的,必须保留数据。

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

1 个答案:

答案 0 :(得分:2)

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

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

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

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