azure - Azure 上 Windows Server 2012 R2 数据中心 VM 上适用于 SQL Server 2014 的 Terraform 脚本

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

我正在尝试使用 Terraform 在 Azure 上的 Windows Server 2012 R2 数据中心 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 上启动相同的 SQL Server 2014 SP2 Enterprise,我可以看到 SQL Server 配置选项。

SQL Server 2014 from Azure Portal

与我的虚拟机一起,我在资源组仪表板上找到了此扩展,如下图所示,使用 Portal 启动虚拟机,但如果我使用 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')]"

我收到“请求 URL 无效。”

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

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

是否有任何方法可以使用 Terraform 在 Azure 上的 Windows Server 2012 R2 数据中心 VM 上启动此 SQL Server 2014?

有人之前尝试过吗?

感谢您的帮助

最佳答案

我已经弄清楚了。我需要为此添加 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"
  }

请记住,运行脚本需要相当长的时间!

关于azure - Azure 上 Windows Server 2012 R2 数据中心 VM 上适用于 SQL Server 2014 的 Terraform 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50381871/

相关文章:

azure - 在azure中公开非http端点

azure - 作为资源组所有者时限制标签编辑

java - 如何使用Spring Boot Java应用程序不断从服务总线队列中拉取消息

terraform - 如何使用 terraform local-exec 运行多个命令

azure - 将SSD数据盘添加到Azure经典VM并将PSQL数据库文件移动到其中

javascript - 如何从网站中为 Android 应用程序制作的 Azure Easy Tables 获取数据?

amazon-web-services - terraform 强制销毁/ad ASG,而不是依赖项更改进行更改

数据 template_file 的 Terraform 插值语法错误

加密C盘后Azure VM停止工作?

sql-server - Azure 入站安全规则不适用于修复源端口