我正在与亚马逊EC2合作,并且我有一些支持EBS的Windows AMI。 从EBS快照启动新实例时,EC2Config服务为我准备Windows机器。 我知道什么时候EC2Config完成了,因为我可以检查实例控制台输出 – 一旦它说“Windows已经准备就绪”,我知道我很好。
我正在寻找的是从操作系统本身中告诉“Windows已准备就绪”的方法。 我认为可以从操作系统访问的元数据URL会告诉我这一点,但我找不到任何合适的值。
http://169.254.169.254/latest/meta-data/
我的目标是一旦“Windows准备好”就运行configuration脚本。 我的一些configuration任务需要在启动之前确保机器已完全configuration – 特别是如果EC2Config正在重命名计算机并重新启动。 我可以使用EC2工具或C#编写一些东西,但这需要我在我的AMI上使用我的AWS密钥(我不想这么做)。 理想情况下,我想看一下机器本身的东西,告诉我什么时候可以开始configuration – 像EventLog条目,看文本文件,检查元数据URL等。
侧面的问题:我可以使用一个很好的文章,了解捆绑/解包过程对EBS机器的作用。
EC2Config默认configuration为在首次启动时重命名主机。 在Windows上重命名主机需要重新启动,因此每个实例首次启动后将重新启动一次。 如果不使用实例的内部DNS,则可以禁用主机的重命名。 更多细节在这里:
Windowsconfiguration服务: http : //docs.amazonwebservices.com/AWSEC2/latest/UserGuide/appendix-windows-config.html
EC2Config服务在实例中也有自己的日志文件:
C:\ Program Files \ Amazon \ Ec2ConfigService \ Logs \ Ec2ConfigLog.txt
此文件应具有您在Amazon控制台输出中看到的EC2Config服务相关详细信息。 这是我的一个实例的一个片段:
=====在新线程中启动Ec2RebootInstance =======
Ec2InitializeDrives:find磁盘:\。\ PHYSICALDRIVE0
检查任何设备名称更改的当前卷
C:使用卷名装入
打开COM端口句柄写入控制台
Ec2RebootInstance:等待所有线程完成
Ec2InitializeDrives:初始化完成。 插件正在退出…
Ec2RebootInstance:检查是否有线程请求重启
Ec2RebootInstance:Windows准备使用
发送活动窗口已准备好供所有人使用
Ec2RebootInstance:监视重新启动请求。