溫馨提示×

Linux Jenkins如何實現分布式構建

小樊
46
2025-10-13 20:55:16
欄目: 智能運維

Linux環境下Jenkins實現分布式構建的完整步驟

1. 前置準備:安裝Jenkins Master與Java環境

分布式構建的核心是Jenkins Master(主控節點,負責任務調度)和Slave節點(工作節點,負責執行任務)。首先需要在Master節點安裝Jenkins和Java(所有節點的Java版本需一致,推薦OpenJDK 11+):

# 更新系統并安裝OpenJDK 11
sudo apt update && sudo apt install -y openjdk-11-jdk  # Debian/Ubuntu
sudo yum install -y java-11-openjdk-devel              # CentOS/RHEL

# 下載并安裝Jenkins(以Debian為例)
wget -q -O - https://pkg.jenkins.io/debian/jenkins.io.key | sudo apt-key add -
sudo sh -c 'echo deb http://pkg.jenkins.io/debian-stable binary/ > /etc/apt/sources.list.d/jenkins.list'
sudo apt update && sudo apt install -y jenkins

# 啟動Jenkins服務
sudo systemctl start jenkins && sudo systemctl enable jenkins

訪問http://<master-ip>:8080,按提示完成初始設置(如解鎖密碼、管理員賬號)。

2. 配置Jenkins Master:開啟分布式構建支持

登錄Jenkins Web界面,進入Manage Jenkins → Manage Nodes and Clouds,確認“Nodes”列表為空(初始狀態)。此時Master已具備管理Slave節點的能力,后續需添加Slave節點。

3. 添加Slave節點:生成Agent并配置連接

3.1 在Master上創建Slave節點

點擊Manage Nodes and Clouds → New Node,輸入節點名稱(如slave-node-01),選擇Permanent Agent(永久節點,適合長期穩定運行),點擊“OK”。

3.2 配置Slave節點參數

  • Remote root directory:設置Slave節點的工作目錄(如/home/jenkins/agent,需提前創建并賦權chmod 755 /home/jenkins);
  • Number of executors:設置并行執行任務的數量(如2,表示該節點可同時運行2個任務);
  • Launch method:選擇連接方式(常用Launch agent via SSH,安全且無需手動啟動)。

4. 配置Slave節點連接:SSH方式(推薦)

若選擇“Launch agent via SSH”,需完成以下步驟:

4.1 在Slave節點安裝Java和Jenkins Agent

# 安裝Java(同Master步驟)
sudo yum install -y java-11-openjdk-devel  # CentOS示例

# 下載Jenkins Agent(確保版本與Master一致)
wget https://repo.jenkins-ci.org/public/org/jenkins-ci/main/remoting/latest/remoting.jar -P /home/jenkins/

4.2 在Master上配置SSH憑據

  1. 進入Manage Jenkins → Credentials,點擊“System → Global credentials”;
  2. 點擊“Add Credentials”,選擇“SSH Username with private key”,輸入Slave節點的用戶名(如jenkins)和私鑰(需提前在Slave節點生成:ssh-keygen -t rsa,并將公鑰id_rsa.pub復制到Master的~/.ssh/authorized_keys)。

4.3 完成Slave節點配置

回到Slave節點配置頁面,選擇“SSH Username with private key”,填寫:

  • Username:Slave節點的SSH用戶名(如jenkins);
  • Private Key:選擇“Enter directly”,粘貼Master的私鑰內容;
  • Host:Slave節點的IP地址或域名;
  • Port:SSH端口(默認22);
    點擊“Test Connection”,確認連接成功后保存。

5. 驗證Slave節點狀態

返回Manage Nodes and Clouds,查看Slave節點狀態是否為Idle(空閑)。若狀態為Online,說明連接成功。

6. 配置構建任務:分配給Slave節點

創建或編輯一個構建任務(如“test-pipeline”),在配置頁面進行以下設置:

6.1 指定Slave節點

  • General → Restrict where this project can be run:勾選,輸入Slave節點的標簽(如linux-agent,需在Slave節點配置時設置);
  • 或通過Pipeline腳本指定:
    pipeline {
      agent {
        node {
          label 'linux-agent'  // 匹配Slave節點的標簽
        }
      }
      stages {
        stage('Build') {
          steps {
            sh 'echo "Building on Linux Slave"'
            sh 'uname -a'       // 驗證執行環境
          }
        }
      }
    }
    

6.2 添加構建步驟

根據項目需求添加Shell、Maven、Gradle等步驟(如sh 'mvn clean package')。

7. 啟動構建并監控

點擊“Build Now”,Jenkins會將任務分配給符合條件的Slave節點(如linux-agent)。在Build History中查看任務狀態,點擊“Console Output”可查看Slave節點的執行日志。

注意事項

  • 網絡與權限:確保Master與Slave節點之間的網絡互通(防火墻開放Jenkins端口8080和SSH端口22);
  • 資源分配:根據Slave節點的硬件配置(CPU、內存)調整Executors數量,避免過載;
  • 版本一致性:所有節點的Jenkins、Java、構建工具(如Maven、Gradle)版本需保持一致,防止兼容性問題;
  • 高可用性:建議配置多個Slave節點,通過標簽實現任務負載均衡(如linux-agent-01、linux-agent-02均打linux-agent標簽)。

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