2012-10-30 133 views
4

我想用ec2.reboot_instances([instanceId])重新啓動一些實例和 工作正常,但:如何驗證重新啓動?

  1. 如何驗證重新啓動發生?我認爲launch_time會改變,但看起來像所有的參數保持不變。我寧願做這個檢查沒有SSH或平 - 是否有可能?可能有可能以某種方式使用instance.get_console_output()

  2. 從文檔中不清楚我是否應該在嘗試重新啓動之前添加一些實例狀態檢查。如果實例被終止,請求將被忽略,這很明顯 - 但如果是停止或掛起 - 我應該使用別的東西(開始)?

+0

參考這或許可以解析get_console_output(),但有可能會在您獲得該信息之前發生延遲。我不知道從EC2返回的任何數據(例如狀態或原因)會有幫助。我認爲下面的解決方案(ssh和運行正常運行時間)與您所能做的一樣好。 – garnaat

回答

7

這個shell命令會給你多長時間的系統已經啓動:

ssh hostname uptime 

要自動化它,你將要添加使用ssh公鑰主機上的.ssh/authorized_keys文件。

隨着博託它可能會是這樣的(雖然我沒有用博託):

s = boto.manage.cmdshell.SSHClient(hostname, uname='root') 
s.run('uptime') 

見關於boto manage module