【问题标题】:How do I attach drives and assign drive letters to windows servers in GCP using Terraform?如何使用 Terraform 在 GCP 中附加驱动器并将驱动器号分配给 Windows 服务器?
【发布时间】:2021-06-27 21:45:15
【问题描述】:

我需要在 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
}

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

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

【问题讨论】:

    标签: terraform terraform-provider-gcp


    【解决方案1】:

    在 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 文档有一个添加启动脚本的简单示例,您可能需要修改语法以使其启动并使用 powershell 运行 https://registry.terraform.io/providers/hashicorp/google/latest/docs/resources/compute_instance

    【讨论】:

    • 好的,谢谢。但是在这种情况下,磁盘正在从快照中恢复,并且必须保留数据。
    • 你通常/手动是怎么做的?相同的步骤可以在 powershell 中编写并在启动时运行吗?
    • 好的,谢谢!我会在这方面工作。我很感激这些信息!
    猜你喜欢
    • 1970-01-01
    • 2023-03-03
    • 1970-01-01
    • 2010-12-18
    • 1970-01-01
    • 1970-01-01
    • 2011-05-22
    • 1970-01-01
    • 2013-01-06
    相关资源
    最近更新 更多