我如何创建灵活的EC2 Windows 2008启动脚本?

Pat*_*ody 4 amazon-ec2 windows-server-2008

如果你看一下Linux生态系统(尤其是Ubuntu和Alestic EC2映像),有一种常见的技术,即预先配置虚拟机以查看EC2用户数据并将其用作启动脚本.这种方法的好处在于您可以编写一个引导脚本来进一步配置您的机器,这样您就可以避免每次在机器上运行的软件发生变化时都生成新映像.

我想为Windows做同样的事情,但考虑到我是Mac和Linux的人,我有点迷失在哪里开始.我的要求是:

  • 这必须在Windows Server 2008上运行
  • 引导程序脚本需要在机器启动时启动,通过下拉内容来读取用户数据文件http://169.254.169.254/1.0/user-data
  • 然后,bootstap脚本需要运行该文件的内容,就好像它是一个脚本一样
  • 嵌入在用户数据中的脚本需要以能够访问桌面环境的方式运行(即:它可以启动浏览器等).

我不太确定服务在Windows中是如何工作的,或者如果我需要启用自动登录,那么任何建议都会受到赞赏.最终目标是运行一个Java程序,启动一些自定义软件,然后启动Web浏览器(IE,Firefox等),并能够截取屏幕截图.

屏幕截图部分很有趣,因为在过去我尝试过这种方法时,除了黑屏之外我唯一的方法就是让UltraVNC或RealVNC作为服务启动,尽管我不知道为什么会有所帮助.

我正在寻找三个具体问题的答案,以及任何一般性建议:

  1. 我应该关注"Startup"文件夹中的Windows服务或自动登录+ bat文件吗?
  2. 如果我使用的是Windows服务,为确保桌面访问和/或屏幕截图可用,我需要做些什么特别的事情吗?
  3. 您是否建议使用常用Linux命令的任何工具,如curl或wget?上次我使用Windows时我经常使用Cygwin,但是有什么比较适合在这里使用吗?

Uri*_*ter 6

我没有尝试在EC2中的Windows实例上自动登录,但这关于如何启用它的支持文档.

我们使用已安装自定义Windows"安装"服务的自定义AMI启动Windows实例.引导程序安装程序在启动时从用户数据中读取URL.URL指向存储在S3中的ZIP文件.安装程序然后下载,解压缩并执行实际的应用程序安装程序 - 在我们的示例中是一个简单的CMD fie.

这种设置允许我们拥有一个基础AMI,然后能够轻松覆盖15种以上的不同应用程序配置(无需重建AMI).如果您只有一个应用程序配置,这可能对您的情况来说太过分了.

我们遇到的唯一问题是我们的安装程序服务提前启动 - 将服务启动模式更改为"自动延迟"修复了该问题.

我们用Java编写了我们的引导程序安装程序,通过YAJSW启动,因为我们对它很满意.如果你只是想要一些简单的Unix工具,大多数都是为Windows预编译的,例如wget.

对于完全不同的东西,您可以尝试PsExec在引导后配置实例.