建置Jenkins 分散式架構( Master+Slave )

建置Jenkins 分散式架構( Master+Slave )

Docker Version: 25.0.3

Jenkins Version : 2.458

因公司業務擴增以往單台Jenkins已不堪負載,所以打算換上方案 來因應CI/CD 以下是這次要運行的yaml,而本次測試在本地運行兩個容器分別為Master(jenkins)和Slave(jenkins-slave),並且創建docker network devopsNet 將兩者綁定。

version: "3.7" 
services: 
  jenkins: 
    image: jenkins/jenkins 
    container_name: jenkins # 指定容器名稱 
    restart: always 
    ports: 
      - 9000:8080 
    networks: 
      - devopsNet 
  jenkins-slave: 
    image: jenkins/jenkins 
    container_name: jenkins-slave # 指定容器名稱 
    restart: always 
    ports: 
      - 9001:8080 
    networks: 
      - devopsNet 
networks: 
  devopsNet:

運行起來後 在 /var/jenkins_home/secrets/initialAdminPassword 可以看到密碼

到 主頁 -> 管理Jenkins -> Nodes ,選擇 New Node 創建slave 並且填入配置檔。

*** 因為容器的關係 預設使用的user 是 jenkins 所以只有特定資料夾有權限 ,這邊的路徑就使用 /var/jenkins_home/workspace

創建完成後 點選剛剛創建的slave-1,會看到各個平台的連線方式。而大概的步驟就是 先下載 master 的 agent.jar 檔,之後再透過java 連線到master 即可完成 Jenkins 主從節點部署