Terraform Script для SQL Server 2014 в Windows Server 2012 R2 Виртуальный центр обработки данных в Azure - PullRequest
0 голосов
/ 17 мая 2018

Я пытаюсь построить SQL Server 2014 на виртуальной машине Windows Server 2012 R2 Datacenter в Azure, используя Terraform.

Вот так выглядит мой модуль

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

Если я запускаю ту же версию SQL Server 2014 с пакетом обновления 2 (SP2 Enterprise) на Windows Server 2012 R2 с портала Azure, я вижу параметр конфигурации SQL Server.

SQL Server 2014 from Azure 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')]"

Есть ли способ раскрутить этот SQL Server 2014 на виртуальной машине с Windows Server 2012 R2 Datacenter в Azure с помощью Terraform?

Кто-нибудь пробовал раньше?

Спасибо за помощь

1 Ответ

0 голосов
/ 17 мая 2018

Я понял это. Мне нужно добавить 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"
  }

Пожалуйста, помните, что запуск сценария займет довольно много времени!

...