Terraform remote-exec возвращает ошибку 401 в конце - PullRequest
0 голосов
/ 06 мая 2019

Я пытаюсь использовать Terraform для создания виртуальной машины Windows 10 и использовать функцию «инициатора» для отправки и выполнения сценариев конфигурации на новой виртуальной машине.Кажется, это работает нормально, так как у меня правильно настроен winrm, и поставщик подключается как недавно созданная локальная учетная запись администратора.Это довольно обширная конфигурация, и ее запуск занимает довольно много времени (около 30 минут на весь процесс от начала до конца).Последний шаг в сценарии - запустить Sysprep для генерации виртуальной машины, чтобы его можно было использовать для создания управляемого образа Azure (из которого мы создадим виртуальные машины для фактически требуемой работы).Кажется, что все шаги конфигурации успешно выполняются, но Terraform завершается с ошибкой HTTP 401:

Error: Error applying plan: 1 error(s) occurred: * azurerm_virtual_machine.newimage: error executing "C:/Temp/terraform_467018566.cmd": http response error: 401 - invalid content type

Насколько я могу судить, все сработало, поэтому я не уверен, что вызываетстатус выхода.Может ли это быть из-за того, что виртуальная машина закрывается после запуска Sysprep, Terraform (или, возможно, winrm) думает, что что-то пошло не так?Это последняя команда в скрипте, которую запускает remote-exec:

%WINDIR%\system32\sysprep\sysprep.exe /generalize /shutdown /oobe

Ответы [ 2 ]

0 голосов
/ 08 мая 2019

Мне не удалось найти ни одного документально подтвержденного подтверждения того, что это именно то, что происходит, но на данный момент это мое лучшее предположение. Обходной путь, который я собираюсь попробовать, состоит в том, чтобы сделать последний шаг скрипта, запускаемого remote-exec, чтобы вместо этого запланировать выполнение задачи, скажем, через 15-30 секунд, чтобы выполнить шаг Sysprep / shutdown, который, как мы надеемся, позволит Terraform увидеть, что процесс инициатора завершился успешно.

0 голосов
/ 07 мая 2019

Я согласен с вашим мнением. Я думаю, что Terraform Remote-Exec работает и нуждается в ответе от виртуальной машины. Когда команда сценария завершает работу виртуальной машины, она не отвечает. Итак, Terraform Remote-Exec завершает работу с ошибкой 401.

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