jenkins 介紹
jenkins 介紹
jenkins 是一個基于 java 開發的在自動化伺服器,是一款開源 CI&CD 軟體,用于自動化各種任務,包括建構、測試和部署軟體。
特性:
- 易于安裝
- 易于配置
- 內建 RSS/Email,通過 RSS 釋出建構結果或通過 email 通知
- 生成 Junit/TestNG 測試報告
- 支援分布式建構,讓多台計算機一起建構
- 檔案識别,能跟蹤哪次建構了哪些包
- 插件支援,大量官方插件以及可自定義插件
jenkins 搭建
war 部署
下載下傳最新的 jenkins war 包 下載下傳位址
兩種啟動方法:
-
, 然後通過 8080 端口通路java -jar jenkins.war
- 将 war 包放到 tomcat 的 webapps 目錄下,然後啟動 tomcat,通過本機域名/jenkins通路
apt 安裝
對于 Debian/Ubuntu 系統,通過 apt 安裝
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-get update
sudo apt-get install jenkins
安裝軟體包會自動完成以下内容:
- 将 Jenkins 設定為啟動時啟動的守護程序。檢視/etc/init.d/jenkins擷取更多細節
- 建立一個’jenkins’使用者來運作此服務
-
直接将控制台日志輸出到檔案/var/log/jenkins/jenkins.log。如果您正在- 解決 Jenkins 問題,請檢查此檔案
/etc/default/jenkins為啟動填充配置參數,例如 JENKINS_HOME
- 将 Jenkins 設定為在端口 8080 上進行監聽。
Docker 部署’
docker run \
-u root \
--rm \
-d \
-p 8080:8080 \
-p 50000:50000 \
-v jenkins-data:/var/jenkins_home \
-v /var/run/docker.sock:/var/run/docker.sock \
jenkinsci/blueocean
官方推薦使用 jenkinsci/blueocean 鏡像,該鏡像包含目前的長期支援 (LTS) 的 Jenkins 版本 (可以投入使用) ,捆綁了所有 Blue Ocean 插件和功能,不需要單獨安裝 Blue Ocean 插件。
也可以使用 jenkins tls 版本 jenkins/jenkins:tls
因為需要擷取登入密碼,是以必須先在本機建立/var/jenkins_home作 jenkins 的 volume,即 jenkins 的預設存放密碼的目錄。
若需要配置 jdk、maven 等目錄,要作 volume 映射。
,需要添加幾項參數:
docker run -u root -d \
-p 8080:8080 -p 50000:50000 \
-v /var/run/docker.sock:/var/run/docker.sock \
-v /usr/lib/jvm/java-8-openjdk-amd64:/usr/lib/jvm/java-8-openjdk-amd64 \
-v /var/jenkins_home:/var/jenkins_home \
--name jenkins \
jenkinsci/blueocean
需要修改/var/jenkins_home的權限,使目前使用者能有管理權限(所屬人),這樣才能檢視 secrets 下的 initialAdminPassword 檔案。secrets目錄的預設權限為:700
配置系統
配置發件人位址
進入配置系統(Configure System) -> Jenkins Location 配置
![](https://img.laitimes.com/img/_0nNw4CM6IyYiwiM6ICdiwiIyVGduV2YfNWawNCM38FdsYkRGZkRG9lcvx2bjxiNx8VZ6l2cs0TPB1ENNpWTzUEVPpHOsJGcohVYsR2MMBjVtJWd0ckW65UbM5WOHJWa5kHT20ESjBjUIF2X0hXZ0xCMx81dvRWYoNHLrdEZwZ1Rh5WNXp1bwNjW1ZUba9VZwlHdssmch1mclRXY39CXldWYtlWPzNXZj9mcw1ycz9WL49zZuBnL3MjMxEzMwkDM5ATMxAjMwIzLc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)
環境變量
Global properties 中可配置常用變量例如
GO_VERSION
,
JDK_VERSION
,
DB_PATH
等,可在日志和說明資訊中引用