簡體   English   中英

使用Bamboo在遠程Windows服務器上構建和部署

[英]Building and deploying on a remote windows server using Bamboo

我希望人們可以通過我的Bamboo查詢向我指出正確的方向。

我所在的公司有一個運行相當成功的現有Bamboo CI服務器(盡管是舊版本 - 2.6),我需要設置一個新版本。 幾乎完成了之前所有Bamboo工作的兩個人現在已經離開了,所以我內心沒有任何人可以求助於建議。

我希望我能描述一下手動過程,然后讓某人建議自動化這個過程的最佳方法。

手動進程(所有在Windows部署服務器上):

  1. 在六個單獨的工作目錄上運行“svn update --force”,這些目錄又使用兩個單獨的Subversion存儲庫
  2. 在所有六個目錄上運行“mvn clean install”,其中一個目錄需要傳入額外的-Duser.timezone參數,有時需要運行兩到三次才能成功構建
  3. 運行“DeployLocal.bat”批處理文件
  4. 通過執行“bin \\ run.bat”啟動文件啟動兩個JBOSS實例

批處理文件本身可以分為幾個步驟:

  1. 做一些項目的Maven構建(是的,在上面之后是多余的)
  2. 將一些構建子目錄復制到部署服務器位置
  3. 為部署服務器設置自簽名SSL證書和密鑰庫
  4. 將更多文件復制到部署服務器目錄中的正確位置

我不確定這最適合我們的Bamboo服務器。 我開始創建一個新的計划,但當它詢問使用哪個存儲庫時(我們使用的是兩個服務器和六個存儲庫),我開始變得非常困惑!

如果我理解正確 - 我可能沒有 - 我認為正常的做法是在Bamboo服務器上進行所有構建,然后在調用一些遠程啟動命令之前將文件移動到服務器上的正確位置。 這是我需要做的嗎?

即使有人能指出我對Bamboo的良好指導,我也會非常感激。 如果有人能夠簡單地解釋這些概念,讓我明白我需要學習什么才能實現,那就更好了!

建議非常感謝:)

好吧,我沒有很多使用Windows運行Bamboo的經驗,但我會給出一個鏡頭:)請允許我首先指導您使用版本2.6的Bamboo管理員指南:

https://confluence.atlassian.com/display/BAMBOO026/Bamboo+Administrator%27s+Guide

查看有關計划代理的部分。

使用Bamboo的版本,計划基本上由腳本組成。 它可以是Ant腳本或Maven腳本,也可以是批處理或bash腳本。 但你只得到一個。 更高版本的Bamboo允許您運行多個腳本 - 您應該考慮升級。

但是,如果絕對無法升級,則需要編寫一個單一的整體腳本來運行每個maven任務,然后運行DeployLocal.bat文件,然后啟動兩個JBoss實例。 (Bamboo為您處理源代碼檢查位。)然后,您必須在Bamboo中配置您的計划以運行腳本

那么,讓我們談談策略吧!


+我是否在Bamboo服務器上構建我的代碼,並將其復制到遠程Windows服務器? 或者我是否在遠程Windows服務器上構建它?

首先,您應確定您的Bamboo許可證是否支持遠程代理 登錄到Bamboo,然后單擊“管理”。 然后向下滾動到左側邊距的“系統”菜單。 單擊“許可證詳細信息”。 “支持的遠程代理數”下的值是否大於0?

如果是這樣的話:耶! 您可以在Windows部署服務器上安裝遠程代理 ,並使用功能將計划配置為在該遠程代理上運行。 這意味着當您在Bamboo中運行計划時,所有源代碼檢出/構建/腳本都將在Windows部署服務器上運行。 你剛剛為自己省下了大量的工作!

如果不是:您必須在Bamboo服務器上構建代碼,然后將其傳輸到部署服務器。 你需要弄清楚如何做以下事情:

  1. 如何將文件從Bamboo服務器傳輸到Windows服務器。 您可能會考慮的一件事是將NFS文件共享一台服務器並將其安裝在另一台服務器上。 或者在任一台計算機上設置FTP服務器。

  2. 如何在Bamboo服務器上執行Windows服務器上的命令,這樣就可以運行DeployLocal.bat文件並啟動JBoss。 在Unix環境中,這對ssh來說相當容易。 在Windows中 - 呃 - 也許你應該咨詢一些Windows偷看? 我以前能夠成功地使用MobaSSH服務器在Windows機器上遠程運行批處理文件,但是如果您的Bamboo機器是Unix,MobaSSH真的才有意義。

  3. 如何在構建之后打包代碼,以便可以將其從Bamboo服務器復制到Windows服務器。 這可以像壓縮maven構建的輸出並在Windows服務器上解壓縮一樣簡單。

  4. 如何將它們組合在一起:編寫一個腳本來構建,打包,傳輸和解壓縮代碼,然后遠程運行DeployLocal.bat和jboss腳本。


+如何讓我的Bamboo計划檢查多個存儲庫中的代碼?

不幸的是,Bamboo 3.3是第一個允許作業從多個存儲庫中檢出源代碼的版本。 這里有三個選項,從最好到最差排序:

  1. 升級到更新版本的Bamboo 可能是一個痛苦的過程,因為你遠遠落后,但可能值得努力。 有人最終必須升級它 - 現在比以后更好。

  2. svn:externals 在其中一個subversion存儲庫中創建一個新目錄,並在其上設置svn:externals屬性,並引用您需要Bamboo檢出的六個存儲庫中的每一個。 配置Bamboo以檢查新目錄 - 瞧,每個svn存儲庫都將自動檢出。

  3. 想出一些其他的hack來解決這個限制,例如編寫一個腳本,為每個存儲庫運行一次svn客戶端。


+這可能需要一段時間才能開始工作。

是。 您應該檢查您的同事已經設置的所有計划的配置和腳本 - 他們可能已經為您完成了所有或大部分工作。

如果您的(或其他開發人員)計划不支持遠程代理,則解決方法是使用tomcat管理器 (當然,請加強它):

  • 你的竹子服務器上的svn或git checkout也是如此,無論是在linux還是windows上
  • mvn在同一台服務器上安裝干凈
  • 使用竹子工作通過scp復制工件
  • 使用tomcat管理器部署戰爭
  • 對於本地Windows服務器上的其他批處理文件,它們可以由powershell腳本或任務sheduler觸發

暫無
暫無

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

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