Что такое Cloud-Init эквивалент для Windows? - PullRequest
9 голосов
/ 06 октября 2011

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

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

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

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

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

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

Ответы [ 6 ]

14 голосов
/ 17 апреля 2012

Похоже, что EC2Config на предоставляемых Amazon AMI теперь поддерживает «Скрипты пользовательских данных» с обновления 11 апреля 2012 года .

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

ОБНОВЛЕНИЕ: Похоже,Поддерживается пакетный синтаксис cmd.exe, который, в свою очередь, может вызывать PowerShell.В AMI включена новая версия документации EC2Config.Цитируя это:

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

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

ОБНОВЛЕНИЕ 2: Моя интерпретация подтверждается подтверждением Шон из команды AWS

ОБНОВЛЕНИЕ 3: А с AMI за май 2012 года PowerShell поддерживается с помощью тега <powershell/>.

2 голосов
/ 11 ноября 2011

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

Чтобы обойти проблему отсутствия информации о том, когда запускать службу, я просто сделал тип запуска службы «отложенным авто», и это, похоже, решило проблему. В зависимости от того, что вам нужно сделать с системой, которая может или не может работать для вас, однако в моем случае это было все, что я должен был сделать.

1 голос
/ 13 сентября 2013

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

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

1 голос
/ 21 декабря 2011

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

http://cloudinitnet.codeplex.com/

0 голосов
/ 16 мая 2013

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

0 голосов
/ 06 октября 2011

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

Более того, нет простого способа определить, когда экземпляр «готов».Мы должны были сделать это, следя за лог-файлом EC2Config.

...