我在尝试使用自动缩放功能正确运行Cloud Formation模板时遇到了很多麻烦。我有以下资源:
"LaunchConfig" : {
"Type" : "AWS::AutoScaling::LaunchConfiguration",
"Properties" : {
"KeyName" : { "Fn::FindInMap" : [ "EnvironmentToKeyName", { "Ref" : "Environment" }, "KeyName" ] },
"ImageId" : { "Fn::FindInMap" : [ "AWSRegionToAMI", { "Ref" : "AWS::Region" }, "AMI" ] },
"SecurityGroups" : [ "neat_spi" ],
"InstanceType" : { "Ref" : "InstanceType" },
"UserData" : { "Fn::Base64" : {
"Fn::Join" : ["", [ "<script>", "call c:\\chef\\boot.bat", { "Ref" : "Environment" }, "</script>"]]
}
}
}
}
但是当机器启动时,它看起来并不像这个脚本一直在运行。我如何确保它运行?或者我如何弄清楚它为什么没有运行?
我无法在任何地方找到任何关于如何运行的记录。
答案 0 :(得分:4)
要寻找的事情......
对CloudFormation和Userdata进行故障排除非常耗时 - 并且成本很高 - 因为每次启动和停止实例时,您都需要支付一小时的费用。对亚马逊来说非常有利的东西。 (请按分钟定价)
答案 1 :(得分:3)
我还有一段时间让脚本在我的AMI上运行。 当我使用标准的Amazon AMI 时,它有效,但它不适用于我的自定义构建AMI。
然后我找到了这个链接Create a Standard Amazon Machine Image Using Sysprep。
总结一下,我
EC2ConfigService Settings
所有计划 <script></script> or <powershell></powershell>
&#34;在常规标签上。这个新的AMI能够正确运行我的UserData脚本。
答案 2 :(得分:0)
VM启动后,您可以使用WinRM在其上运行远程命令。这是一个示例客户端:
https://github.com/WinRb/WinRM
确保在Windows AMI中启用了WinRM,并且在安全组中打开了正确的端口。