Запустите сценарий на виртуальной машине Windows Azure после запуска во время сборки упаковщика, чтобы настроить WinRM и брандмауэр.

Предыстория: очевидно, у Packer есть серьезные проблемы с настройкой WinRM на виртуальных машинах Azure, созданных изMicrosoft Windows Serverиздатель. Это только одна из нескольких проблем и тем, которые я нашел по этому поводу, и она возникла несколько лет назад. Из-за этого я не могу подключиться к экземпляру с помощью Packer, чтобы предоставить и подготовить наши собственные образы Windows для использования в нашей компании. Я пробовал менять таймауты, пробовал разные размеры виртуальных машин, ничего не работает. Шаблон ARM Packer — это просто мусор при настройке WinRM. И они не хотят решать проблему. В предложении предоставить способ запуска сценария в Azure так же, как пользовательские данные AWS, глупое «решение» Hashicorp состоит в том, чтобы «подготовить собственный образ для обработки сценария с пользовательскими данными, чтобы вы могли подготовить собственный образ с помощью упаковщика». ". Они даже предполагают, что это невозможно сделать с помощью их кода, что совершенно неверно.

Я уже делаю это сам в AWS, настраивая для запуска сценарий пользовательских данных, который настраивает WinRM и брандмауэр. Мне удалось обнаружить, что в Azure есть аналогичная функция, называемая custom-data , и хотя я могу установить ее с помощью исходного кода, по какой-то «прекрасной» причине Windows не имеет возможности запустить ее, только Linux может это сделать через cloud-init. Я могу запустить то, что мне нужно, используяInvoke-AzVMRunCommand(независимо от того, являются ли это пользовательскими данными или нет, это РЕШАЕТ ПРОБЛЕМУ! УРА! За исключением того, что Packer не (который я могу найти) предоставляет способ запуска команд «предварительного подключения» из компоновщика, у вас есть эта опция только после того, как вы нажмете на поставщика. Мой код поставщика не будет работать, пока не будет установлено соединение с WinRM. Курица, знакомьтесь, яйцо (или наоборот?)

Поэтому я не могу автоматизировать это с Packer в его текущем состоянии, если только я что-то не упускаю. Тем не менее, я не могу использовать здесь другой инструмент для построения имиджа из-за внутренней политики и процедур. Прошу прощения, если этот фон покажется немного резким, я очень устал и расстроен этой проблемой.


Вопрос: есть ли какие-либо идеи, которые не предполагают создание промежуточного пользовательского образа с помощью какого-либо другого процесса, который позволит мне запустить сценарий во время подготовки к виртуальной машине Windows Azure? Существуют ли альтернативные сборщики Azure для использования с Packer, которые могут помочь? Или, возможно, издатель Azure, публикующий образы Windows, которые уже имеют возможность запускать пользовательские данные при запуске? Или, может быть, есть какой-то трюк Пакера, который я здесь еще не рассмотрел? Если бы я мог просто запустить команду Azure CLI из компоновщика после создания виртуальной машины, я мог бы решить эту проблему быстро.

Мои другие мысли - разветвитьazure-armbuilder и добавить необходимые мне возможности или полностью написать своего собственного провайдера. Первое решение может быть осуществимо, и я мог бы вернуть код (если Hashicorp не отклонит его, потому что «это не их путь»), но последнее кажется неуклюжим в данной ситуации. Кроме того, я не знаю го, поэтому мне придется его освоить, а он... отличается от многих. В любом случае я бы хотел избежать разработки собственного кода решения, если реальное решение для этого сценария уже существует.

Заранее большое спасибо за рассмотрение этого вопроса.

0 ответов

Другие вопросы по тегам