Добавление виртуальной машины Windows в домен с помощью Packer

. Я пытаюсь создать образы Windows для использования в Azure с помощью Packer. В рамках этого процесса мне нужно поместить в образ некоторые файлы, расположенные на существующей виртуальной машине в Azure. Моя идея заключалась в том, чтобы добавить виртуальную машину в домен, чтобы я мог напрямую копировать файлы. Однако до сих пор мне не удалось добавить изображение в домен.

Я попытался запустить сценарий powershell, но это выдает следующее сообщение об ошибке.:

Error uploading ps script containing env vars: Error uploading file to $env:TEMP

Затем я попытался запустить команду «Добавить-Компьютер» непосредственно из PowerShell-provisioner (как с обычным, так и с повышенными правами), но ни один из вариантов не удался. С обычной оболочкой кажется, что Packer просто застрял. После сообщения Provisioning with Powershellничего не происходит. Привилегированная оболочка выдает мне сообщение об ошибке:

(12,8):UserId:
==> azure-arm.xxxxx: At C:\Windows\Temp\packer-elevated-shell-617ab2e4-e084-8ef8-f9f6-0d66a82a0129.ps1:60 char:1

Кто-нибудь знает, как добавить изображение в домен? Или есть другой способ скопировать файлы с существующей виртуальной машины в образ? Или, возможно, лучше скопировать файлы во время развертывания с помощью Terraform?

0
задан 28 October 2021 в 14:37
1 ответ

Мне не удалось решить эту проблему. через Пакер. Тем не менее, я нашел решение, используя azurerm_virtual_machine_extension, где я запускаю скрипт powershell, который делает это, а также некоторые другие задачи:

resource "azurerm_virtual_machine_extension" "vm_extension_install_srv" {
    count = var.app_count

  name                       = "vm_extension_install_srv"
  virtual_machine_id         =     azurerm_windows_virtual_machine.app[count.index].id
  publisher                  = "Microsoft.Compute"
  type                       = "CustomScriptExtension"
  type_handler_version       = "1.8"
  auto_upgrade_minor_version = true

  settings = <<SETTINGS
    {
        "commandToExecute": "powershell.exe -Command \"C:/setup/provision/first_boot.ps1 -index ${count.index  + 1}; exit 0;\""
    }
SETTINGS
}
0
ответ дан 8 November 2021 в 08:10

Теги

Похожие вопросы