簡體   English   中英

使用ruby創建ec2實例並連接到創建的機器

[英]Create ec2 instance with ruby and connect to the created machine

使用instances.create創建實例后,需要連接到計算機並執行一些操作。 問題是-知道創建完成並且可以連接到機器的最佳方法是什么?

創建后機器的狀態就在“運行中”,那么我怎么知道機器何時完成初始化並且可以通過ssh進入呢?

我看到了一個現有的代碼,該代碼通過每X秒ssh來完成,如果它超時,則表示該計算機仍在初始化。

我正在尋找一種更優雅的方式。

創建實例后,您將獲得實例ID。 因此,使用該實例ID來檢查“實例狀態” 每個實例必須經過2個status checks系統狀態檢查實例狀態檢查。

我觀察到,一旦這兩項檢查都通過,實例就可以登錄了。

ruby sdk中提取此數據的相應方法為describe_instance_status

我也在尋找類似的解決方案,並且在AWS Ruby SDK上找到了一個測試,該測試就可以做到: https : //github.com/aws/aws-sdk-ruby/blob/master/samples/ec2/run_instance。 RB

begin
  Net::SSH.start(instance.ip_address, "ec2-user",
                 :key_data => [key_pair.private_key]) do |ssh|
  puts "Running 'uname -a' on the instance yields:"
  puts ssh.exec!("uname -a")
end
rescue SystemCallError, Timeout::Error => e
  # port 22 might not be available immediately after the instance finished
  launching
  sleep 1
  retry
end

它可能不是最干凈的解決方案,但卻是亞馬遜采用的解決方案。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM