我需要将驱动器连接到 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
}
磁盘是从快照创建的,必须保留数据。
如何以正确的顺序连接这些磁盘并分配正确的驱动器号?
答案 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