Невозможно автоматически отобразить общий ресурс хранилища Azure с помощью расширений terraform и Azure VM на Windows VM - PullRequest
1 голос
/ 18 марта 2019

Постановка задачи Я пытаюсь автоматически сопоставить общий файловый ресурс Azure с виртуальными машинами Windows, используя расширение виртуальной машины Azure. Расширение виртуальной машины успешно установлено, команда выполняется, но при входе в виртуальную машину я вижу, что мой диск отключен.

При попытке доступа к нему я получаю неверное имя пользователя или пароль. Однако выполнение сценария PowerShell на компьютере правильно сопоставляет сетевой диск, и я могу получить к нему доступ.

Код

resource "azurerm_virtual_machine_extension" "test" {
  # Custom VM extension documentation https://docs.microsoft.com/en-us/azure/virtual-machines/extensions/custom-script-windows
  # additional documentation http://teknews.cloud/bootstrapping-azure-vms-with-terraform/, https://github.com/terraform-providers/terraform-provider-azurerm/issues/728
  name = "network_share"
  location = "${azurerm_resource_group.main.location}"
  resource_group_name = "${azurerm_resource_group.main.name}"
  #virtual_machine_name = "${azurerm_virtual_machine.vm.name}"
  virtual_machine_name = "${element(azurerm_virtual_machine.vm.*.name, count.index)}"
  publisher = "Microsoft.Compute"
  type = "CustomScriptExtension"
  type_handler_version = "1.9"
  count = "${var.vm_count}"

  settings = <<SETTINGS
  {
      "commandToExecute": "powershell -command \"[System.Text.Encoding]::UTF8.GetString([System.Convert]::FromBase64String('${base64encode(data.template_file.net_fileshare_script.rendered)}')) | Out-File -filepath net_fileshare_script.ps1\" && powershell -File net_fileshare_script.ps1"
  }
  SETTINGS

  depends_on = ["azurerm_virtual_machine.vm"]
}

data "template_file" "net_fileshare_script" {
  template = "${file("./scripts/net_fileshare_script.ps1")}"
}

1 Ответ

0 голосов
/ 20 марта 2019

Я обнаружил, что скрипт работает как есть.Проблема заключается в том, что учетные данные для общего хранилища недоступны удаленному пользователю после входа в систему.

После входа в систему удаленного пользователя выполнение этой команды Invoke-Expression -Command "cmdkey /add:storageaccount.file.core.windows.net /user:AZURE\storageaccount /pass:storagekey" делает общий доступ к хранилищу доступным для удаленного пользователя.account.

NB. Можно ли сделать учетные данные доступными для нескольких учетных записей пользователей с помощью одноразового сценария?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...