iT邦幫忙

2021 iThome 鐵人賽

DAY 3
0
DevOps

DevOps 萌新的 TeamCity 極速上手寶典系列 第 3

第三天:以軟體包安裝 TeamCity

在對 CI/CD 有基本瞭解後,接下來就要把我們的主角 TeamCity 安裝起來。TeamCity 提供 3 種安裝方式,在接下的幾天會逐一介紹,讀者可以依據自己的條件與需求選擇一個最適合的方式。首先介紹的第一種方式就是直接下載官方軟體包,搭配 JDK 直接啟動。

先建立一個 JDK 8 執行環境

由於整個 TeamCity 軟體都是用 Java/Kotlin 打造的,官方也將整個系統封裝成 Jar 檔,所以在安裝 TeamCity 前要先有 JVM 運行環境。以 TeamCity 來說,其綁定的 JDK 版本是 8,請務必使用正確的 JDK 版本才不會發生預期外的錯誤。以下分兩個主流作業系統說明如何建立 JDK 8 的執行環境:

在 Unix-like 作業系統上安裝 JDK 8

在 JVM 上開發程式時,通常你不會只用一套 JDK 版本,加上我想減少記憶負擔,想用同一種方式在 macOS 及 Linux 上建立 JDK 8 的執行環境,所以我強烈推薦大家使用 SDKMAN

SDKMAN 是一個 SDK 管理器,可以協助我們安裝幾乎所有 JVM 開發者會需要用到的 SDK,像是 JDK、Kotlin Compiler、Gradle…等,若有更新時還可以一鍵下載,需要安裝多個不同版本的 JDK 也沒問題,可以透過指令去切換環境裡的 JDK,甚至還可以幫我們更新 PATH 設定,非常方便!

安裝 SDKMAN 很簡單,只要將官網上的指令貼在終端機並執行即可:

$ curl -s "https://get.sdkman.io" | bash

SDKMAN 是用 Bash Script 實作,沒有相依其他工具,安裝起來完全無痛。安裝好後重新載入就可以用 $ sdk version 指令來驗證安裝是否成功。

緊接著安裝 JDK,首先要取得 JDK 8 的 Identifier,先用 list 指令查詢:

$ sdk list java # 取得所有 JDK 清單
================================================================================
Available Java Versions
================================================================================
 Vendor        | Use | Version      | Dist    | Status     | Identifier
--------------------------------------------------------------------------------
 AdoptOpenJDK  |     | 8.0.292.j9   | adpt    |            | 8.0.292.j9-adpt
               |     | 8.0.292.hs   | adpt    |            | 8.0.292.hs-adpt
               |     | 8.0.242.hs   | adpt    |            | 8.0.242.hs-adpt
 Corretto      |     | 8.302.08.1   | amzn    |            | 8.302.08.1-amzn
 Zulu          |     | 8.0.302      | zulu    |            | 8.0.302-zulu
               |     | 8.0.302.fx   | zulu    |            | 8.0.302.fx-zulu
# 為節省版面部份輸出已被精簡

從上面的畫面可以看到,JDK 8 也有很多版本,每一個版本對應到的 Identifier 都不一樣。假設我想安裝 AdoptOpenJDK8.0.292.hs 這個版本,對應到的 Identifier 就是 8.0.292.hs-adpt。把這個字串記下來,再用 install 指令安裝:

$ sdk install java 8.0.292.hs-adpt

SDKMAN 就會到網路上把 AdoptOpenJDK 8.0.292.hs 抓下來安裝,也會在安裝結束前詢問要不要將這個版本的 JDK 做為系統預設 Shell 環境的 JDK。假如你安裝的這台主機就只跑 TeamCity 的話就直接按 Y 設成預設吧!假如不是的話,之後在啟動 TeamCity 之前,記得要先將環境切成 JDK 8。

$ sdk use java 8.0.292.hs-adpt

在 Windows 作業系統上安裝 JDK 8

假如是 Windows 作業系統的話,我會推薦使用 Scoop 這個套件管理系統。你可以把 Scoop 想成是 Windows 版本 apt,許多 CLI 套件都可以用它來安裝。安裝 Scoop 的方式很簡單,直接把官網的幾行指令貼在 PowerShell 裡即可:

Invoke-Expression (New-Object System.Net.WebClient).DownloadString('https://get.scoop.sh')
# 假如有 Policy 警告,則再補這一行
Set-ExecutionPolicy RemoteSigned -scope CurrentUser

接著要讓 Scoop 取得所有 JDK 清單(在 Scoop 叫 Bucket),在 PowerShell 裡輸入:

$ scoop bucket add java

至於要安裝的 JDK 版本名稱可以參考 Bucket 的 Repository ,以我們的例子來說,我想安裝 adopt8-upstream 這個版本,就在 PowerShell 裡輸入:

$ scoop install adopt8-upstream 

假如有安裝多個版本,別忘了在啟動 TeamCity 前切換到 JDK 8 喔!

$ scoop reset adopt8-upstream

安裝 TeamCity

環境準備好後,接著請到 TeamCity 官網下載頁 下載軟體包,版本請統一選擇 Linux (.tar.gz) 即可。

下載後,請將這個 .tar.gz 的壓縮檔解開,並將資料夾放到你想要的位置(比方說在 Unix-like 作業系統上的 /opt 底下、在 Windows 作業系統上的 C:\Apps)。完成後開啟終端機,將工作目錄切換到 TeamCity 資料夾,進入底下 bin 資料夾後執行 runAll 腳本。

# Unix-like 執行 Bash 腳本
$ bash .../bin/runAll.sh start
# Windows 執行 bat 腳本
$ .\...\bin\runAll.bat start

runAll 腳本是 TeamCity 預先準備好單一啟動指令,所有啟動的複雜步驟都已經先準備好了,若看到終端機裡回應啟動完成就代表 TeamCity 已經準備好第一次的啟動設定,我們後續會再詳細說明首次啟動設定要做的動作。若要將 TeamCity 關閉,則將剛剛的指令從 start 換成 stop 即可。

適用情境

本篇文章使用的安裝方式,比較適合以下幾種情境:

  1. 熟悉 JVM,對手動安裝 JDK 不排斥
  2. 擁有整台主機的控制權,需要客製化設定時有足夠權限
  3. 本機測試用,沒有要對外上線服務

參考資料


上一篇
第二天:什麼是 CI/CD?
下一篇
第四天:以 Docker 運行 TeamCity
系列文
DevOps 萌新的 TeamCity 極速上手寶典31

尚未有邦友留言

立即登入留言