2014-04-02 137 views
1

我一直在aws控制檯工作了一段時間,並希望啓動一個Windows EC2實例和靴子使用PowerShell和winrm。任何人都可以幫助我this.i做了紅寶石腳本能夠啓動實例,但無法引導它。亞馬遜aws窗口實例啓動使用腳本

+0

我可以使用Ruby腳本reffering網站 – Rohan

+1

你能否解釋一下你的問題詳細展開實例? 你想要什麼? 使用ruby腳本創建一個實例,然後在那個新創建的實例上調用一些腳本? –

回答

0

完成類似於你所問的我可以告訴你,這不是一個非常簡單的過程。如果您使用的是AWS提供的Windows AMI,則需要開發一個用戶數據腳本來爲您創建實例的winrm配置。您可以使用ruby腳本在AWS中創建Windows實例,並在創建過程中傳遞userdata腳本,但userdata腳本本身必須是批處理和/或PowerShell才能在Windows操作系統內執行。

您可以參考此script,該腳本實際上來自Anisble安裝程序,但按照您的要求,WinRM配置創建新的自簽名證書並使用https在缺省安全端口5986上進行連接。不要忘記打開您的安全組,以允許此實例允許TCP 5986入站。

一旦新的AWS實例啓動並且用戶數據腳本已經運行,您將能夠使用「https://:3986/winrm」連接到WinRM和遠程PowerShell會話並使用本地Windows「Administartor」用戶進行身份驗證。密碼是根據您在請求創建實例時提供的證書,每個實例隨機生成的。您可以通過訪問EC2控制檯並提供私鑰來獲取密碼。假設你使用的紅寶石AWS-SDK的寶石,你可以使用像這樣要求的密碼:

# pemPath is the file path of your PEM file 
# instance is an AWS::EC2::Instance 
ec2 = AWS::EC2.new 
encrypted_password = ec2.client.get_password_data(:instance_id => instance.instance_id).password_data 
private_key = OpenSSL::PKey::RSA.new(File.read(pemPath)) 
decoded = Base64.decode64(encrypted_password) 
password = private_key.private_decrypt(decoded)