0

我正在尝试使用 Terraform 在 Azure 上的 Windows Server 2012 R2 Datacenter VM 上构建 SQL Server 2014。

这就是我的模块的样子

module "ms-sql-vm" {
  source                                 = ".../terraform_module/windows_vm"
  vm_name                                = "ex-sql-vm"
  name_space                             = "${module.randomename}"
  arm_location                           = "centralus"
  vm_resource_group_name                 = "${module....}"
  availability_set_id                    = "${module....}"
  vm_network_interface_ids               = ["${module....}"]
  vm_size                                = "Standard_D2s_v3"
  vm_os_disk_name                        = "example-os-disk-${randomname}"
  vm_os_caching                          = "ReadWrite"
  vm_os_publisher                        = "MicrosoftSQLServer"
  vm_os_offer                            = "SQL2014SP2-WS2012R2"
  vm_os_sku                              = "Enterprise"
  vm_os_version                          = "12.10.0"
  vm_os_disk_size_gb                     = "127"
  vm_data_disk_name                      = "${module.....}"
  vm_data_disk_id                        = "${module.....}"
  vm_managed_disk_type                   = "Standard_LRS"
  vm_data_disk_size_gb                   = "${module.....}"
  vm_data_caching                        = "ReadWrite"
  vm_data_lun                            = 1
  vm_admin_name                          = "exampleusername"
  vm_admin_password                      = "Example12345!!"
  boot_diagnostics_primary_blob_endpoint = "${module......}"
  vm_delete_os_disk_on_termination       = true
  vm_delete_data_disk_on_termination     = true
}

我正在使用这个 - https://www.terraform.io/docs/providers/azurerm/r/virtual_machine.html作为我要构建的基本模块。

上面的脚本为我启动了虚拟机 2012,但不是 SQL Server。如果你看这张图片,在我的脚本执行完成后,我无法对下面上传的图片中的 SQL Server 配置选项进行微调。 windows 2012 vm上的terraform sql server 2014

如果我从 Azure 门户启动 Windows Server 2012 R2 上的 Same SQL Server 2014 SP2 Enterprise,我可以看到 SQL Server 配置选项。

Azure 门户中的 SQL Server 2014

连同我的 VM,我在我的资源组仪表板上找到了这个扩展,如下图所示,用于使用 Portal 启动的 VM,但如果我使用 Terraform 执行此操作,则该扩展不可用。我试图找到扩展名,但找不到该扩展名。 资源组 - SQL 扩展

此扩展的资源类型和名称是

名称:SqlIaasExtension 资源类型:Microsoft.Compute/virtualMachines/extensions

如果我尝试使用此命令查找 SqlIaasExtension -

az vm extension image list-names --publisher Microsoft.Compute/virtualMachines/extensions --query"[?starts_with(name, 'SqlIaasExtension')]"

我收到“请求 URL 无效”。

如果我在下面尝试这个命令,我会得到一个空数组 []:

az vm extension image list-names --publisher Microsoft.Compute --query "[?starts_with(name, 'SqlIaasExtension')]"

有什么方法可以使用 Terraform 在 Azure 上的 Windows Server 2012 R2 Datacenter VM 上启动这个 SQL Server 2014?

之前有人试过吗?

谢谢您的帮助

4

1 回答 1

2

我已经想通了。我需要为此添加 azure_vm_extension

resource "azurerm_virtual_machine_extension" "test" {
  name                 = "SqlIaasExtension"
  location             = "West US"
  resource_group_name  = "${azurerm_resource_group.test.name}"
  virtual_machine_name = "${azurerm_virtual_machine.test.name}"
  publisher            = "Microsoft.SqlServer.Management"
  type                 = "SqlIaaSAgent"
  type_handler_version = "1.2"

  settings = <<SETTINGS
   null
SETTINGS

  tags {
    environment = "Production"
  }

请记住,运行脚本需要很长时间!

于 2018-05-17T18:19:41.633 回答