Что такое эквивалент 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. С нетерпением ждем некоторых отзывов.
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, но он работает, как только вы получите все на месте.