創建 Jenkins 節點(Node)

丁叮盯町
Oct 10, 2023

--

創建 Jenkins Node 有許多好處,不但可以分擔 Jenkins server 的工作,當某些任務需要在特殊的 OS 上執行時,如果有建立不同作業系統的 Node,就可以分派到安裝該 OS 的節點上執行。

關於如何在 Azure 建立 Linux VM 並安裝 Jenkins,可以參考這篇。在 Jenkins 我們直接從資訊主頁 > 管理 Jenkins > System Configuration > Nodes 進入節點管理。

在節點管理頁面直接按「+ New Node」按鈕就可以看到下面的設定頁面。填入節點名稱,類型選擇 Permanent Agent 後按下「建立」按鈕。

接下來這個畫面直接「儲存」就可以了。

回到主頁後,就可以看到新增的 Node了。紅色的 X 代表該節點目前是離線狀態。

點擊節點的名稱,正常應該會看到這樣的畫面(如果不是,可以參考文末的錯誤排除)。在 Jenkins,Agent 和 Node 是同件事情。按照頁面的說明,在 Agent 機器上執行頁面上的 command 就可以完成 Agent 的設定。

我在我的 Windows 10 電腦上安裝了 JDK,並且設定好了環境變數。接下來就可以來設定 Agent了。打開終端機,輸入以下 Command。這邊注意一下,在 -workDir 參數後面要給一個工作路徑。

curl.exe -sO http://20.187.64.216:8080/jnlpJars/agent.jar
java -jar agent.jar -jnlpUrl http://20.187.64.216:8080/computer/MacBookAir/jenkins-agent.jnlp -secret e2818800b852602e521a42ad88931ba722c7d3a40220d99387d6dca1da563961 -workDir C:\workDir

如果在終端機看到「INFO: Connected」就代表成功了,如果失敗可以參考文末的錯誤排除。回到節點設定頁面,就可以看到紅色X不見了。

錯誤排除

如果在創建節點時看見下圖這樣的錯誤,需要改 Jenkins 的TCP port 設定。

進入 Jenkins 資訊主頁 > 管理 Jenkins > Security,將 TCP port for inbound agent 改為「隨機」即可。

如果在 Agent 機器上輸入 command 看到如下的錯誤,代表必須修改 Azure 主機的網路設定。

java.io.IOException: http://jenkins:8080/ provided port:38481 is not reachable

進入虛擬主機的網路設定 > 新增輸入連接埠規則,按照下圖的設定並儲存即可。目的地連接埠範圍請根據錯誤訊息的 port Number。

--

--

丁叮盯町
0 Followers

單純的程序猿,想寫些什麼記錄生活、記錄所學