TeamCity系列01:安裝和配置
TeamCity[下文簡稱TC]是JetBrains旗下的一款持續整合[Continuous Integration,簡稱CI]工具,開箱即用。
宣告:本系列所有內容針對Jdk1.8環境。
首先明確一個概念,什麼是CI,CI要達到什麼目的?簡單來說,CI是一種軟體開發實踐,在軟體專案團隊中,每天都可能會有不同的開發人員提交程式碼,共享程式碼庫中的程式碼是否時刻保持可執行狀態,不得而知。那麼,在開發程序中,持續的構建部署共享程式碼庫,就能及時測試程式碼的可執行時態,及早發現問題並解決。
由此可見,在團隊專案中,CI已經是必不可少的一環。
業界的CI工具也有很多,五花齊放,各顯神通,如流行的開源工具Jenkins,以及CircleCI、GitLab CI等,本文不討論各CI工具的優劣,聚焦TC的使用介紹。
TC是一款功能強大且使用者用好的CI工具,具有以下主要功能:
1) 在不同平臺和環境中同時執行並行構建
2) 優化程式碼集成周期並確保永遠不會在儲存庫中獲得損壞的程式碼
3) 通過智慧測試重新排序檢視即時測試結果報告
4) 支援Java和.net:為Java和.NET執行程式碼覆蓋和重複查詢器
5) 自定義構建持續時間,成功率,程式碼質量和自定義指標的統計資訊
Windows下安裝:
請確保系統中已經安裝了maven和git軟體,並正確配置了環境變數。這很重要。
1)下載exe安裝程式:http://www.jetbrains.com/teamcity/download/
2)選擇安裝的功能元件:
Build Agent:構建代理,實際程式碼整合構建的載體,預設和TC服務Server安裝在同一臺伺服器上。TC支援多構建代理,TC Server可以連線不同伺服器上的多個不同構建代理,協同工作。由於當前是在演練環境,請勾選。
Server:TC服務,主要承載TC的核心服務和web介面,請勾選。
同時,勾選Windows Service,安裝windows服務。
3)選擇埠
預設埠是80,建議修改成8111:
4)配置Build Agent的屬性:
如上圖可知:TC服務的web地址是http://localhost:8111,同時構建代理對TC服務的監聽埠是9090,以及代理所在的目錄是C:\Softapp\JetBrains\TeamCity2\buildAgent,即在TC的安裝目錄下:
5)選擇通過系統賬號執行TC服務和Build Agent代理服務
6)開啟服務
也可以通過windows services管理面板手動管理。
Centos7下安裝:
確保已經安裝了git和maven,並配置好了系統環境變數,這很重要。
1)下載tar.gz安裝程式:http://www.jetbrains.com/teamcity/download/,並將安裝包傳送至centos系統,如拷貝至/data/software/目錄中:
下面安裝2018.1.2版本:
2)解壓2018.1.2版本:
tar -xzvf /data/software/TeamCity-2018.1.2.tar.gz
生成TeamCity目錄,開啟目錄,內容如下:
見上圖:
bin:存放TC的可執行檔案,如runAll.sh、startup.sh、shutdown.sh、teamcity-server.sh等;
buildAgent:預設構建代理目錄,存放構建代理的檔案以及執行資訊;
conf:TC配置檔案目錄,如server.xml,可以更換TC的服務埠;
licenses:存放TC的憑證檔案等;
logs:存放執行日誌檔案;
3)啟動服務
runAll.sh指令碼可以同時啟動TC server和Build Agent;如果Build Agent需要單獨啟動的話,可以執行teamcity-server.sh單純啟動TC server,啟停的命令如下:(後臺執行)
- 同時啟動TC server和Build Agent:nohup /data/software/TeamCity/bin/runAll.sh start,對應停止服務命令:/data/software/TeamCity/bin/runAll.sh stop
- 只啟動TC server:nohup /data/software/TeamCity/bin/teamcity-server.sh start,對應停止服務命令:/data/software/TeamCity/bin/teamcity-server.sh stop
建議此處使用runAll.sh指令碼。
TC服務配置:
在web瀏覽器中開啟:http://localhost:8111,如果是遠端centos伺服器,首先開通8111防火牆,通過地址:http://[centos伺服器ip]:8111訪問。
1)配置TC資料儲存目錄Data Directory:
TeamCity資料目錄是TeamCity伺服器用於儲存配置的設定資訊、構建結果和當前操作的檔案資訊的目錄。該目錄是所有配置設定的主儲存,並儲存對TeamCity安裝至關重要的資料。
預設即可,點選Proceed。
2)配置資料庫
TeamCity可以在SQL資料庫中儲存構建歷史記錄,使用者,構建結果和一些執行時資料,以便後續問題排查。
其中,包括HSQLDB內建資料庫以及其他可持久化到硬碟的資料庫,如mysql等。
HSQLDB是預設的內建資料庫,但不建議使用,摘錄TC官網所言:
在第一次TeamCity執行時,預設情況下建議使用基於HSQLDB資料庫引擎的內部資料庫。內部資料庫僅適用於評估目的;它開箱即用,無需額外設定。 但是,我們強烈建議在生產環境中使用外部資料庫作為後端TeamCity資料庫。 外部資料庫通常更可靠並提供更好的效能:內部資料庫可能崩潰並丟失所有資料(例如,在“磁碟空間不足”情況下)。 此外,內部資料庫在大型資料集(例如,超過200Mb的資料庫儲存檔案)上可能變得非常慢。 另請注意,如果您使用內部資料庫,我們的支援不會涵蓋任何效能或資料庫資料丟失問題。 簡而言之,不要將內部HSQLDB資料庫用於生產TeamCity例項。複製程式碼
我們選擇MySQL資料庫:
需要拷貝一個mysql jabc連線的jar到資料目錄的lib/jabc目錄下,或者選擇線上下載。
然後再建立一個空資料庫,執行如下命令:
create database <database-name> collate utf8_bin; create user <user-name> identified by '<password>'; grant all privileges on <database-name>.* to <user-name>; grant process on *.* to <user-name>;複製程式碼
然後在上圖中填入資料庫的連線資訊,點選Proceed。
注意:必須新建一個空資料庫並賦權,否則可能出現如下錯誤:
Found a TeamCity schema when expected an empty database複製程式碼
3)最後一步:建立TC的所有者賬戶資訊
輸入使用者名稱和密碼後,點選Create ccount,完成TC的配置。
好了,本文就到這裡,下一篇講講TC的基本使用。