Azure上的Windows Server 2012 R2 Datacenter VM上的SQL Server 2014的Terraform脚本

时间:2018-05-17 00:55:44

标签: azure terraform azure-virtual-machine terraform-provider-azure

我正在尝试使用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配置选项。 terraform sql server 2014 on windows 2012 vm

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

SQL Server 2014 from Azure Portal

与我的VM一起,我在我的资源组仪表板上找到了这个扩展,如下图所示,使用Portal进行VM调整,但如果我使用Terraform进行此扩展,则该扩展不可用。我试图找到扩展名,但无法找到该扩展名。 Resource group - SQL Extension

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

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

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

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

我收到“请求网址无效。”

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

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

有没有办法在Azure上使用Terraform在Windows Server 2012 R2 Datacenter VM上启动此SQL Server 2014?

有人早点试过吗?

感谢您的帮助

1 个答案:

答案 0 :(得分:1)

我已经弄清楚了。我需要为此

添加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"
  }

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