2013-07-15 29 views
2

我在嘗試使自動縮放比例正確運行Cloud Formation模板時遇到了很多麻煩。我有以下資源:如何在Windows EC2實例中執行UserData內容

"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

VM啓動後,您可以使用WinRM在其上運行遠程命令。下面是一個例子客戶端:

https://github.com/WinRb/WinRM

確保WinRM的是在你的Windows AMI啓用以及正確的端口是安全組中開放。

+1

這並沒有回答的UserData的問題。 – Jason

4

夫婦的事情,尋找...

  1. 驗證CFN工具安裝
  2. 請在C:\ CFN子目錄 - 有一個叫原木漂浮在某處路徑 - 審查。
  3. 查看程序文件\ amazon \ ec2tools - 裏面有一個日誌目錄。檢查以確保它正在運行腳本
  4. 在上面的目錄中有一個名爲腳本的文件夾 - 您應該看到類似於userdata.bat的內容 - 嘗試運行以確認它可行。

疑難解答CloudFormation和Userdata非常耗時 - 而且可能代價高昂 - 因爲每次啓動和停止實例時都會收到一小時的費用。這對亞馬遜來說非常有利。 (請帶上每分鐘定價)

+0

C:\ Program Files文件\亞馬遜\ Ec2ConfigService \日誌\ Ec2ConfigLog.txt是最有用的文件,我發現。它包含腳本的日誌,這些腳本以UserScript.bat/ps1的形式安裝在C:\ Program Files \ Amazon \ Ec2ConfigService \ Scripts下 – palfrey

3

我有一段時間讓腳本運行在我的AMI上。 當我使用標準的Amazon AMI時,它工作正常,但它不適用於我的定製構建AMI。

然後我發現這個鏈接Create a Standard Amazon Machine Image Using Sysprep

總之,我

  1. 我確信終止保護被打開(這使我失去了我所有的工作一次)
  2. 射入一個新的Windows實例
  3. 我通過定製實例做我需要的安裝Windows功能,並安裝我需要的.MSI。
  4. 我打開Windows更新和清除回收站
  5. 我跑EC2ConfigService Settings開始 - >所有程序
  6. 我檢查「啓用的UserData執行下一服務開始時(的SysPrep自動啓用),如<script></script> or <powershell></powershell>「上的常規選項卡。
  7. 確保您設置圖片選項卡上正確的密碼策略。我選擇了隨機。
  8. 點擊應用然後單擊關機使用Sysprep
  9. 當EC2實例終於停了,你可以創建一個從AWS控制檯的圖像。

這個新的AMI能夠正常運行,我的UserData腳本。