2014-02-06 133 views
5

我正在使用Atlassian Bamboo on Demand進行持續集成,並且它非常棒。使用Bamboo連續部署到Azure

現在我正在嘗試使用「部署」功能,問題是我正在使用Azure(ftp,publish,git,mercurial ...我真的不在乎如何),我可以'找到一個可以執行它的「任務」。

有沒有人做到這一點?

+0

我不確定我們是否要求同樣的事情,但我正在尋找這個解決方案:http://stackoverflow.com/questions/23555024/build-bamboo-from-bitbucket-deploy-to- Azure的雲。 – roadsunknown

回答

3

我從竹子自動部署到AWS,但概念幾乎相同。

Bamboo沒有針對部署到公有云的特定選項,因此您必須構建或調用現有的部署工具。在這一天結束的時候,竹部署爲您提供元數據,其中構建已部署到哪個環境,以及誰可以部署的安全性,但是您必須完成實際的部署工作。 Bamboo爲您提供了一個完全可擴展的引擎,用於通過腳本控制「如何」。部署引擎基本上是一部分任務的CI引擎的削減版本。

我決定構建我們的部署工具,因爲它開始時相當簡單,而且價格合理,因爲這會隨着時間的推移而經常使用和改進。 Bamboo爲我提供了授權和訪問控制,而且我的腳本使我能夠對我的部署進行細粒度控制。

我假設你在像我這樣的Windows映像上運行一個竹代理。所以powershell scripts是你的朋友。如果你在linux下運行,你會想要用bash來做同樣的事情。

我有一個powershell腳本通過控制器/代理模型控制我的部署。

控制器腳本是源代碼管理的,並在mercurial repo中維護。這由存儲庫任務拉取。

該代理程序是一個powershell腳本,由具有自定義身份驗證機制的簡單webapi rest服務包裝。在ec2中設置應用服務器實例時設置代理。我們使用puppet進行服務器配置。

控制器確實爲部署

  • 連接到VPC
  • 使用EC2
  • 選擇所述第一節點和發送節點的「升級數據庫確定我的網頁場中的可用節點以下「命令
  • 然後進行到發送‘升級應用服務器’命令到每個節點

釷e進行部署的邏輯被參數化,因此可以將其重新用於部署到不同的環境。我使用竹deploy variables來管理不同環境的飼養參數。

DEV是自動部署的,測試,分期和產品都是手動點擊部署,它們被鎖定到特定用戶。

我考慮過的一個選項,但沒有投入時間看作爲aws elastic beanstalk作爲部署工具。它具有豐富的部署API。在Azure方面,它看起來像web deploy支持部署到Azure IIS站點。