溫馨提示×

Debian Jenkins如何進行分布式構建

小樊
41
2025-10-16 23:01:09
欄目: 智能運維

Debian系統下Jenkins分布式構建實施指南

一、前置準備

在開始配置前,需確保以下條件滿足:

  • 節點規劃:至少1臺主節點(Master)(負責任務調度、管理)和1臺工作節點(Slave)(負責實際構建執行);可根據負載需求擴展工作節點數量。
  • 系統要求:所有節點均為Debian系統(推薦Debian 11及以上穩定版),安裝OpenJDK 11或Oracle JDK 8+(通過java -version驗證)。
  • 網絡連通:主節點與工作節點之間需開放Jenkins默認端口(8080)JNLP/SSH端口(默認JNLP為49187,SSH為22),確保能互相訪問。

二、安裝Jenkins

在所有節點上通過Debian包管理器安裝Jenkins:

# 添加Jenkins官方倉庫密鑰和源
curl -fsSL https://pkg.jenkins.io/debian-stable/jenkins.io.key | sudo tee /usr/share/keyrings/jenkins-keyring.asc > /dev/null
echo "deb [signed-by=/usr/share/keyrings/jenkins-keyring.asc] https://pkg.jenkins.io/debian-stable binary/" | sudo tee /etc/apt/sources.list.d/jenkins.list > /dev/null

# 更新軟件包索引并安裝Jenkins
sudo apt update
sudo apt install -y jenkins

# 啟動Jenkins服務并設置開機自啟
sudo systemctl start jenkins
sudo systemctl enable jenkins

# 查看初始管理員密碼(用于首次登錄)
sudo cat /var/lib/jenkins/secrets/initialadminpassword

訪問http://<節點IP>:8080,輸入初始密碼完成初始配置(如設置管理員賬號、安裝推薦插件)。

三、配置Jenkins主節點

  1. 進入管理界面:登錄Jenkins后,點擊左側導航欄Manage Jenkins。
  2. 配置系統設置
    • 選擇Manage Nodes and Clouds,確認主節點(默認名為master)的狀態為“Idle”(空閑)。
    • 點擊頂部Configure System,找到Distributed build部分,確?!癊nable distributed build”選項已勾選(默認開啟)。
  3. 設置主節點URL(可選但推薦):
    • 編輯/etc/default/jenkins文件,添加或修改以下內容:
      JENKINS_URL="http://<主節點IP>:8080"
      
    • 重啟Jenkins服務使配置生效:
      sudo systemctl restart jenkins
      

四、添加并配置工作節點

方法1:通過Jenkins界面手動添加(推薦)

  1. 生成JNLP啟動文件

    • 在主節點的Manage Nodes and Clouds頁面,點擊New Node。
    • 輸入節點名稱(如slave1),選擇Permanent Agent,點擊OK。
    • 配置節點參數:
      • Remote root directory:設置工作節點的Jenkins工作目錄(如/var/lib/jenkins,需提前創建并賦權:sudo mkdir -p /var/lib/jenkins && sudo chown -R jenkins:jenkins /var/lib/jenkins)。
      • Launch method:選擇Launch agent via Java Web Start(適用于簡單環境)。
    • 點擊Save,Jenkins會生成一個JNLP啟動鏈接(如http://<主節點IP>:8080/computer/slave1/slave-agent.jnlp)。
  2. 啟動工作節點

    • 在工作節點上打開終端,運行以下命令啟動代理:
      java -jar agent.jar -jnlpUrl http://<主節點IP>:8080/computer/slave1/slave-agent.jnlp -secret <節點密鑰> -workDir "/var/lib/jenkins"
      
      (注:<節點密鑰>可在主節點節點配置頁面的“Secret”字段獲?。?/li>
  3. 驗證連接

    • 返回主節點的Manage Nodes and Clouds頁面,若工作節點狀態顯示為“Idle”,則表示連接成功。

方法2:通過SSH連接(適用于安全環境)

  1. 準備工作節點

    • 在工作節點上安裝JDK(同主節點要求)。
    • 創建Jenkins專用用戶并設置密碼:
      sudo useradd -m jenkins_slave
      sudo passwd jenkins_slave
      
    • 開啟sshd服務(默認開啟):
      sudo systemctl start sshd
      sudo systemctl enable sshd
      
  2. 配置主節點SSH密鑰

    • 在主節點上生成SSH密鑰(若未生成):
      ssh-keygen -t rsa -b 4096
      
    • 將公鑰復制到工作節點:
      ssh-copy-id jenkins_slave@<工作節點IP>
      
  3. 添加SSH工作節點

    • 在主節點的New Node頁面,輸入節點名稱,選擇Permanent Agent。
    • 配置Launch methodLaunch agent via SSH,填寫工作節點信息:
      • Host:工作節點IP。
      • Credentials:選擇“SSH Username with private key”,添加主節點的SSH私鑰。
    • 點擊Save,Jenkins會自動通過SSH連接工作節點。

五、分配分布式構建任務

  1. 創建任務

    • 點擊左側New Item,輸入任務名稱(如distributed-demo),選擇Freestyle project(或其他類型,如Pipeline),點擊OK。
  2. 配置任務

    • General tab中,勾選Restrict where this project can be run,輸入工作節點的標簽(如linux,需在工作節點配置中設置)或節點名稱(如slave1)。
    • Build tab中,添加構建步驟(如Execute shell,輸入echo "Running on $(hostname)")。
  3. 保存并運行

    • 點擊Save,然后點擊Build Now。
    • Build History中查看任務進度,點擊構建編號可查看控制臺輸出,確認任務在工作節點上執行。

六、驗證與維護

  1. 驗證分布式構建

    • 在工作節點的/var/lib/jenkins目錄下,應能看到任務的構建產物(如日志文件、生成的安裝包)。
    • 主節點的Build Executor Status頁面,應顯示工作節點正在執行任務。
  2. 維護工作節點

    • 重啟代理:在工作節點上停止agent.jar進程(ps -ef | grep agent.jar,然后kill -9 <PID>),重新運行啟動命令。
    • 刪除節點:在主節點的Manage Nodes and Clouds頁面,選中節點后點擊Delete。
    • 監控狀態:通過主節點的Manage Jenkins > System Information,查看節點連接狀態和資源使用情況。

注意事項

  • 標簽策略:為工作節點設置清晰的標簽(如ubuntu、docker、windows),便于任務按環境分配。
  • 資源分配:根據任務負載調整工作節點的執行器數量(在節點配置的“# of executors”中設置),避免資源耗盡。
  • 安全配置:若通過SSH連接,建議使用密鑰認證而非密碼;若通過JNLP連接,建議配置防火墻限制訪問IP。
  • 高可用性:可部署多個主節點組成集群(需配合Jenkins HA插件),提升系統可靠性。

0
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女