3
我正在使用Rubber Gem在Amazon ec2上進行部署。 它部署和配置Ubuntu的實例,但我需要在服務器上安裝額外的模塊(不是紅寶石模塊)。我如何在部署過程中使用橡膠運行其他腳本?
代碼示例將不勝感激,因爲這是我第一次做這種事情。如何使用橡膠寶石運行其他腳本?
我正在使用Rubber Gem在Amazon ec2上進行部署。 它部署和配置Ubuntu的實例,但我需要在服務器上安裝額外的模塊(不是紅寶石模塊)。我如何在部署過程中使用橡膠運行其他腳本?
代碼示例將不勝感激,因爲這是我第一次做這種事情。如何使用橡膠寶石運行其他腳本?
我有一個想要在所有EC2實例上安裝NewRelic服務器監視器的類似問題。我最終創建了一個新角色('newrelic')並將其添加到我的所有服務器中。
製作一個自定義的角色很簡單:
config/rubber/deploy-[rolename].rb
(通過複製現有)本所要求的
:install
,:bootstrap
和:start/:stop/:restart
任務您的模塊config/rubber/rubber-[rolename].rb
config/rubber/role/[rolename]
目錄,並添加任何所需的文件(如[rolename]-upstart.conf
)cap rubber:add_role
最簡單的方法是複製現有角色並調整它以完成自己想要的任務。
評委仍然不知道自定義角色是否是正確的方式。這對於newrelic是有意義的,因爲它安裝了需要監控的守護進程,但是對於大多數自定義配置來說,它感覺非常重量級。
我只想運行一個簡單的腳本。我在deploy-setup.rb中放置了幾個腳本,但它們都在代碼上傳之前運行在rubber:install_packages之後。我需要在一切完成後運行腳本,所以我想我需要知道的是最後一個正在運行的任務,然後指定它,但我不知道它是什麼 – 2012-04-28 18:31:56
想通了,你需要做的就是聲明一個任務然後使用before/after機制在部署之後放置它:update_code,但是我在另一個地方也使用了你的建議,所以謝謝:) – 2012-05-03 14:15:29