17

AWS彈性魔豆 - 無法克隆採用最新平臺eb upgrade在Ruby 2.1到Ruby 2.2

我一直在砸我的頭在這一。早在5月份,AWS宣佈他們的Ruby Elastic Environments現在提供Ruby-2.2(例如ruby-2.2-(passenger-standalone)ruby-2.2-(puma))。我無法將現有的ruby-2.1環境升級到ruby-2.2。看來我必須完全重新創建它們......這看起來很愚蠢?任何人在那裏遇到這個?我只是想念一些簡單的東西?AWS彈性魔豆 - 如何在Ruby 2.1升級現有環境到Ruby 2.2

額外信息

我一直興高采烈地在我分期生產環境中使用ruby-2.1-(passenger-standalone)幾個月。現在我想升級他們到最新的ruby-2.2平臺。 AWS文檔說這非常簡單,事實上他們的一些文檔甚至似乎說明您可以使用eb clone <env-name> --update。這標誌並不在EB CLI 3.4.5存在我使用:(另外的是,Web控制檯有克隆與最新平臺選項菜單項,但它已被禁用。

看來,我所能做的獲得最新的Ruby-2.2實例是從頭開始創建一個全新的環境,這是極其煩人。

所以這裏就是我試過...

$ eb status 
Environment details for: staging 
    Application name: xyz 
    Region: us-west-2 
    Deployed Version: fbe7 
    Environment ID: someId 
    Platform: 64bit Amazon Linux 2015.03 v1.4.3 running Ruby 2.1 (Passenger Standalone) 
    Tier: WebServer-Standard 
    CNAME: bla.bla.bla.elasticbeanstalk.com 
    Updated: 2015-06-26 22:48:59.689000+00:00 
    Status: Ready 
    Health: Green 

大,印證了我m使用Ruby 2.1,所以我們試着升級:

$ eb upgrade 
Environment already on most recent platform version. 

好吧,這是很好的,所以怎麼樣的平臺本身:

$ eb platform select 
It appears you are using Ruby. Is this correct? 
(y/n): y 

Select a platform version. 
1) Ruby 2.2 (Puma) 
2) Ruby 2.2 (Passenger Standalone) 
3) Ruby 2.1 (Puma) 
4) Ruby 2.1 (Passenger Standalone) 
5) Ruby 2.0 (Puma) 
6) Ruby 2.0 (Passenger Standalone) 
7) Ruby 1.9.3 
(default is 1): 2 

所以,現在,這裏是我的平臺設置:

$ eb platform show 
Current default platform: Ruby 2.2 (Passenger Standalone) 
New environments will be running: 64bit Amazon Linux 2015.03 v1.4.3 running Ruby 2.2 (Passenger Standalone) 

Platform info for environment "staging": 
Current: 64bit Amazon Linux 2015.03 v1.4.3 running Ruby 2.1 (Passenger Standalone) 
Latest: 64bit Amazon Linux 2015.03 v1.4.3 running Ruby 2.1 (Passenger Standalone) 

所以新環境將利用Ruby-2.2版本。這很好,但我是否真的必須退休已經配置的Ruby-2.1版本來代替新創建的Ruby-2.1版本?來吧?

+0

對於它的價值,我想幾個月前與Puma建立了一個新的環境,並發現這個事情完全破裂了。當我回到乘客時,它剛剛工作。 –

+0

不知道爲什麼這個問題已經開始在-1票...蹩腳醬。 – Dan

回答

29

我找到了一個解決方案,通過使用aws cli(不是eb cli):

aws elasticbeanstalk update-environment --solution-stack-name "64bit Amazon Linux 2016.03 v2.1.0 running Ruby 2.3 (Puma)" --environment-name "dev-bg-123456" --region "us-east-1" 

CLI可以homebrew安裝自動氣象站:

brew install awscli 
+0

太棒了。感謝分享。我甚至沒有麻煩安裝'awscli',但我會在我的下一個_major_ Ruby版本升級期間嘗試這種技術。 – Dan

+0

不爲我工作,無論如何感謝 – Gavin

+2

嗨@Gavin,對不起,它不適合你。也許有趣的是看到錯誤消息或其他輸出來調試呢? –

1

我對這一挑戰的解決方案是:

  1. 推出一個全新的環境。
  2. 創建Web應用程序或工作者。
  3. 選擇你想要的環境,可能是最新的最好的環境。在我的例子中,使用Ruby-2.2的Passenger。
  4. 我選擇部署示例應用程序,以便新環境成功。
  5. 爲您的新環境選擇其餘選項並啓動。

成功啓動後,我設置了所有的環境變量;例如我所有的數據庫,smtp,RAILS_ENV/RACK_ENV等然後我轉到以前部署的應用程序,並將我的最新質量版本部署到全新的環境中。

有人會同意這比簡單的eb upgrade更多的工作。 L醬。

+0

似乎它是唯一的工作解決方案,真可惜 – Gavin