Windows的Cloud Init等价物是什么?

Windows的Cloud Init等价物是什么?,windows,amazon-ec2,bootstrapping,cloud-init,Windows,Amazon Ec2,Bootstrapping,Cloud Init,Windows上似乎缺少股票引导过程 Linux具有cloud init,它将安装软件包、存储文件并从用户数据运行bash脚本 Windows有ec2config,但目前不支持在系统“就绪”时运行cmd或powershell脚本——这意味着所有初始重新启动都已完成 似乎有第三方的选择。例如,RightScale具有执行此功能的RightLink代理 有开源选项吗? 是否有计划将此功能添加到Ec2Config? 我必须自己建造这个吗 我错过了什么吗?我们必须自己建造;我们通过定制服务实现了这一点,

Windows上似乎缺少股票引导过程

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

Windows有ec2config,但目前不支持在系统“就绪”时运行cmd或powershell脚本——这意味着所有初始重新启动都已完成

似乎有第三方的选择。例如,RightScale具有执行此功能的RightLink代理

有开源选项吗? 是否有计划将此功能添加到Ec2Config? 我必须自己建造这个吗


我错过了什么吗?

我们必须自己建造;我们通过定制服务实现了这一点,并建立了自己的AMI。EC2Config中目前没有这样做的规定


更好的是,没有简单的方法来确定实例何时“准备就绪”。我们必须通过跟踪EC2Config的日志文件来完成这项工作。

我必须自己构建一个日志文件,但这非常简单。刚创建了一个服务,在启动时读取用户数据,并将文件作为powershell脚本执行


为了解决不知道何时启动服务的问题,我将服务启动类型设置为“延迟自动”,这似乎解决了问题。取决于您需要对系统执行哪些操作,这些操作可能适用于您,也可能不适用于您,但就我而言,这就是我所要做的。

我添加了一个新的codeplex项目,该项目已经为windows构建了此工具。期待一些反馈


看起来,亚马逊提供的AMIs上的EC2Config现在支持截至的“用户数据脚本”

文档尚未更新,因此很难说它是支持PowerShell还是只支持cmd.exe脚本。我必须尝试获得更多的细节,当我了解更多时,我会在这里更新

更新:似乎支持cmd.exe批处理语法,这反过来又可以调用PowerShell。AMI中包含了新版本的EC2Config文档。引述:

[EC2Config]将读入为实例指定的用户数据,然后检查它是否包含标签
。如果它同时找到了这两个标记,那么它将获取这两个标记之间的信息,并将其保存到位于此应用程序的“设置”文件夹中的批处理文件中。然后,它将在实例启动期间执行批处理文件

批处理文件仅在sysprep之后第一次启动实例时创建和执行。如果要创建并再次执行批处理文件,请将Ec2HandleUserdata插件状态设置为Enabled

更新2:我的解释


更新3:自2012年5月AMIs开始,PowerShell使用
标签得到支持。

我最近发现nssm(位于nssm.cc)可以轻松地将简单的批处理文件(或几乎任何其他文件)打包为服务。然后,您可以使用sc config servic1 depend=service0强制批处理文件在服务初始化序列中的特定点运行。例如,我在ex2config和sqlexpress之间使用它在d上创建一个文件夹。您必须使用服务工具使其作为网络服务运行,并使用regedit将AppExit属性更改为忽略,但一旦您将其全部就绪,它就会工作。

Cloudbase。它已经开源了一个python windows服务,他们称之为Cloudbase init,它遵循configdrive和HTTP数据源。

这里是github

直接删除Ec2Config并用定制服务协调引导过程怎么样?Ec2Config并没有做那么多。您不需要Ec2Config;我们在引导时根本不“使用”它,除了:我们认为能够最终确定实例是否真正准备就绪的唯一方法是在Ec2ConfigLog.txt文件中查找“Windows已准备好使用”。如果你真的想知道实例何时完成设置和重新启动,这是一个令人恼火的问题。Ec2Config会自动执行一些启动任务。没有必要重新发明轮子。例如,格式化临时卷和重命名机器(如果需要)。希望未来版本的Ec2Config会添加一个“就绪”事件挂钩来简化这个过程。我一直在使用这个工具,报告问题,等等——这是一个很棒的工具。我想过渡到这个工具,尤其是对于个人项目。看起来很有趣。如果你有任何问题,可以在这个网站(我想)或codeplex网站上与我联系,如果你有任何问题,我将非常乐意帮助你。有人能澄清CloudInit.NET和EC2Config与UserData之间的关系吗?如果OP正在倾听,我认为此时此刻这个答案应该被标记为被接受的答案。