Windows的Cloud-Init等价物是什么?

似乎股票的引导过程在Windows上有点欠缺。

Linux有一个cloud-init,它将安装软件包,存储文件,并从用户数据运行一个bash脚本。

Windows有ec2config,但是当系统“准备就绪”时,目前不支持运行cmd或powershell脚本 – 这意味着所有的初始重新启动都完成了。

似乎有第三方的select。 例如,RightScale具有执行此function的RightLink代理。

有开源选项吗? 有没有计划将这个function添加到Ec2Config? 我必须build立这个我自己?

我错过了什么吗?

Solutions Collecting From Web of "Windows的Cloud-Init等价物是什么?"

看来,亚马逊提供的AMI上的EC2Config现在支持截至2012年4月11日更新的 “用户数据脚本”。

该文档还没有更新,所以很难说它是否支持PowerShell或只是cmd.exe脚本。 我已经在AWS论坛上发布了一个问题,以获得更多的细节,并且在了解更多信息时会在这里更新。

更新:它看起来像cmd.exe批处理语法是支持,它可以反过来调用PowerShell。 AMI上有一个新版本的EC2Config文档。 引用它:

[EC2Config]将读取为实例指定的用户数据,然后检查它是否包含<script></script>标记。 如果找到两者,则会将这两个标签之间的信息保存到位于此应用程序的Settings文件夹中的批处理文件中。 然后它将在实例启动期间执行批处理文件。

该批处理文件将只在sysprep之后首次启动实例时创建和执行。 如果您希望再次创建并执行批处理文件,请将Ec2HandleUserdata插件状态设置为“已启用”。

更新2:我的解释由AWS小组的Shon 确认

更新3:截至2012年5月的AMI,使用<powershell/>标记支持PowerShell。

我不得不自己建造一个,但是这很容易。 刚启动时读取用户数据的服务,并将其作为PowerShell脚本执行。

为了解决不知道什么时候启动服务的问题,我只是将服务启动类型设置为“延迟自动”,似乎解决了这个问题。 取决于你需要做什么系统,可能会或可能不会为你工作,但在我的情况下,这是我所要做的。

我添加了一个新的codeplex项目,已经有这个工具建立的Windows。 期待一些反馈。

http://cloudinitnet.codeplex.com/

我们必须自己建造 我们用自定义服务做了它,并且建立了我们自己的AMIs。 EC2Config目前没有提供这样的设置。

更好的是,没有简单的方法来确定实例何时“准备就绪”。 我们必须通过拖拽EC2Config的日志文件来实现。

我最近找到了nssm(在nssm.cc),它很容易将一个简单的批处理文件(或者其他任何东西)作为一个服务包装起来。 那么你可以通过sc config servic1 depend = service0来强制批处理文件在服务初始化序列中的特定位置运行。 例如,我在ex2config和sql express之间使用它来在d上创建一个文件夹。 您将不得不使用服务工具使其作为网络服务运行,并使用注册表编辑器将AppExit属性更改为忽略,但一旦完成就可以运行。

Cloudbase.it已经打开了一个python windows服务,他们调用了cloudbase-init,它跟在configdrive和HTTP数据源之后。 http://www.cloudbase.it/cloud-init-for-windows-instances/

github在这里https://github.com/stackforge/cloudbase-init/