Что такое эквивалент Cloud-Init для Windows?

кажется, что процесс загрузки акций немного не хватает на Windows.

Linux имеет cloud-init, который будет устанавливать пакеты, хранить файлы и запускать скрипт bash из пользовательских данных.

Windows имеет ec2config, но в настоящее время нет поддержки для запуска сценария cmd или powershell, когда система "готова" - это означает, что все начальные перезагрузки завершены.

кажется, есть сторонние варианты. Например, RightScale имеет агент RightLink который выполняет эту функцию.

доступны ли опции с открытым исходным кодом? Есть ли планы добавить эту функцию в Ec2Config? Должен ли я построить это сам?

Я что-то пропустила?

6 ответов


похоже, что EC2Config на Amazon-предоставленной AMIs теперь поддерживает "скрипты пользовательских данных" с обновления 11-апреля-2012.

документация еще не обновлена, поэтому трудно сказать, поддерживает ли она PowerShell или просто cmd.исполняемые скрипты. Я опубликовал вопрос на форумах AWS чтобы попытаться получить более подробную информацию, и будет обновляться здесь, когда я узнаю больше.

обновление: похоже на cmd.синтаксис пакета exe поддерживается, который, в свою очередь, может вызывать PowerShell. В AMI включена новая версия документации EC2Config. Цитата из него:

[EC2Config] будет читать в пользовательских данных, указанных для экземпляра, а затем проверить, если он содержит теги <script> и </script>. Если он находит оба, то он будет принимать информацию между этими двумя тегами и сохранить его в пакетном файле, расположенном в папке настроек этого приложения. Затем выполните пакетный файл в запуск экземпляра.

пакетный файл будет создан и запущен при первом запуске экземпляра, после sysprep. Если вы хотите, чтобы пакетный файл был создан и выполнен снова, установите состояние плагина Ec2HandleUserdata включенным.

обновление 2: моя интерпретация подтверждается by Шон из команды AWS

обновление 3: и по состоянию на май-2012 масс, PowerShell поддерживается с помощью <powershell/> тег.


Я должен был построить один себе, однако это было очень легко. Просто сделал службу, которая читает пользовательские данные при запуске и выполняет файл как сценарий powershell.

чтобы обойти проблему не зная, когда начать службу, я просто сделал Тип запуска службы как "delayed-auto", и это, казалось, исправить проблему. В зависимости от того, что вам нужно сделать с системой, которая может или не может работать на вас, однако в моем случае это все, что мне нужно было сделать.


Я добавил новый проект codeplex, который уже имеет этот инструмент, построенный для windows. С нетерпением ждем некоторых отзывов.

http://cloudinitnet.codeplex.com/


Cloudbase.он открыл службу python windows, которую они называют cloudbase-init, которая следует за источниками данных configdrive и HTTP. http://www.cloudbase.it/cloud-init-for-windows-instances/

github здесь https://github.com/stackforge/cloudbase-init/


мы должны были построить его сами; мы сделали это с помощью таможенной службы и построили наш собственный AMIs. В настоящее время в EC2Config нет положения для этого.

еще лучше, нет простого способа определить, когда экземпляр "готов". Мы должны были сделать это размытая лог EC2Config.


недавно я нашел nssm (at nssm.cc) который легко обертывает простой пакетный файл (или почти все остальное) в качестве службы. Затем можно использовать sc config servic1 depend= service0 для принудительного запуска пакетного файла в определенной точке последовательности инициализации службы. Я использую его между ex2config и sql express для создания папки на d, например. Вам нужно будет использовать средство services, чтобы запустить его как сетевые службы и изменить свойство AppExit, чтобы игнорировать использование regedit, но он работает, как только вы получите все на месте.