教學課程:使用在 Azure 中執行的 VM 調整 Jenkins 部署

重要

許多 Azure 服務都有 Jenkins 外掛程式。截至 2024 年 2 月 29 日,其中部分外掛程式將不支援。 Azure CLI 目前是整合 Jenkins 與 Azure 服務的建議方式。 如需詳細資訊,請參閱適用於 Azure 的 Jenkins 外掛程式一文

本教學課程示範如何在 Azure 中建立 Linux 虛擬機,並將 VM 新增為 Jenkins 的工作節點。

在此教學課程中,您需要:

  • 建立代理程式計算機
  • 將代理程式新增至 Jenkins
  • 建立新的 Jenkins freestyle 作業
  • 在 Azure VM 代理程式上執行作業

必要條件

設定代理程式虛擬機

  1. 使用 az group create 建立 Azure 資源群組。

    az group create --name <resource_group> --location <location>
    
  2. 使用 az vm create 建立虛擬機。

    az vm create --resource-group <resource-group> --name <vm_name> --image UbuntuLTS --admin-username azureuser --admin-password "<password>"
    

    重點︰

    • 您也可以使用下列命令 --ssh-key-value <ssh_path>上傳 SSH 金鑰。
  3. 安裝 JDK。

    1. 使用 SSH 工具登入虛擬機。

      ssh username@123.123.123.123
      
    2. 使用apt安裝 JDK。 您也可以與其他套件管理員工具一起安裝,例如 yum 或 pacman。

      sudo apt-get install -y default-jdk
      
    3. 安裝完成之後,請執行 java -version 以確認 Java 環境。 輸出會包含與 JDK 各部分相關聯的版本號碼。

設定 Jenkins URL

如果您使用 JNLP,則必須設定 Jenkins URL。

  1. 從功能表中,選取 [ 管理 Jenkins]。

  2. 在 [系統設定] 底下,選取 [設定系統]。

  3. 確認 Jenkins URL 已設定為 Jenkins 安裝的 HTTP 位址 - http://<your_host>.<your_domain>:8080/

  4. 選取 [儲存]。

將代理程式新增至 Jenkins

  1. 從功能表中,選取 [ 管理 Jenkins]。

  2. 在 [系統設定] 下,選取 [管理節點和雲端]。

  3. 從功能表中,選取 [ 新增節點]。

  4. 輸入節點名稱的值

  5. 選取 [ 永久代理程式]。

  6. 選取 [確定]。

  7. 指定下欄位的值:

    • 名稱:指定可識別新 Jenkins 安裝內代理程式的唯一名稱。 這個值可能不同於代理程式主機名。 不過,將兩個值設為相同是很方便的。 名稱值允許下列清單中的任何特殊字元: ?*/\%!@#$^&|<>[]:;

    • 遠端根目錄:代理程序必須有 Jenkins 專用的目錄。 指定代理程式上這個目錄的路徑。 最好使用絕對路徑,例如 /home/azureuser/workc:\jenkins。 這應該是代理程式計算機的本機路徑。 不需要從主圖形顯示此路徑。 如果您使用相對路徑,例如 ./jenkins-agent,則路徑會相對於 Launch 方法所提供的工作目錄。

    • 標籤:標籤可用來將語意相關代理程式群組成一個邏輯群組。 例如,您可以針對執行 Linux Ubuntu 散發版本的所有代理程式定義的標籤 UBUNTU

    • 啟動方法:有兩個選項可啟動遠端 Jenkins 節點: 透過 SSH啟動代理程式和透過主機上的命令執行啟動代理程式:

      • 透過 SSH 啟動代理程式:指定下列欄位的值:

        • 主機:VM 公用IP位址或功能變數名稱。 例如,123.123.123.123example.com

        • 認證:選取要用來登入遠端主機的認證。 您也可以選取 [ 新增 ] 按鈕來定義新的認證,然後在建立后選取該新認證。

        • 主機金鑰驗證策略:控制 Jenkins 在連線時如何驗證遠端主機所提供的 SSH 金鑰。

        Node configuration example specifying a launch method of Launch agents via SSH.

      • 透過在主機上執行命令來啟動代理程式:

        • https://<your_jenkins_host_name>/jnlpJars/agent.jar下載 。agent.jar 例如: https://localhost:8443/jnlpJars/agent.jar

        • 上傳 agent.jar 至您的虛擬機

        • 使用 命令 ssh <node_host> java -jar <remote_agentjar_path>啟動 Jenkins。 例如: ssh azureuser@99.99.999.9 java -jar /home/azureuser/agent.jar

        Node configuration example specifying a launch method of Launch agent via execution of command on the master.

  8. 選取 [儲存]。

定義組態之後,Jenkins 會將虛擬機新增為新的工作節點。

Example of virtual machine as new work node

在 Jenkins 中建立作業

  1. 從功能表中,選取 [ 新增專案]。

  2. 輸入 demoproject1 以取得名稱。

  3. 選取 [Freestyle 專案]。

  4. 選取 [確定]。

  5. 在 [一般] 索引標籤中,選擇 [限制專案可以執行的位置],然後在 [卷標表達式] 中輸入 ubuntu 。 您會看到訊息,確認標籤是由在上一個步驟中建立的雲端組態所提供。

    Setting up a new Jenkins job

  6. 在 [ 原始程式碼管理 ] 索引標籤中,選取 [Git ],並將下列 URL 新增至 [存放庫 URL ] 字段: https://github.com/spring-projects/spring-petclinic.git

  7. 在 [建置] 索引標籤中,選取 [新增建置步驟],然後選取 [叫用最上層 Maven 目標]。 在 [目標] 欄位中輸入 package

  8. 選取 [儲存]。

在 Azure VM 代理程式上建置新的作業

  1. 選取您在上一個步驟中建立的作業。

  2. 選取 [ 立即建置]。 新的組建會排入佇列,但在 Azure 訂用帳戶中建立代理程式 VM 之前,才會啟動。

  3. 建置完成後,請移至 主控台輸出。 您會看到組建是在 Azure 代理程式上遠端執行。

    Console output

下一步