持續(xù)集成
????持續(xù)集成(Continuous integration,簡稱 CI)大師Martin Fowler對持續(xù)集成是這樣定義的:持續(xù)集成是一種軟件開發(fā)實踐,即團隊開發(fā)成員經(jīng)常集成他們的工作,通常每個開發(fā)成員每天至少集成一次,也就意味著每天可能會發(fā)生多次集成。每次集成都通過自動化的構(gòu)建(包括編譯,發(fā)布,自動化測試)來驗證,從而盡快地發(fā)現(xiàn)集成錯誤。
Jenkins簡介
????Jenkins 是一個基于java開發(fā)的開源的跨平臺持續(xù)集成工具,具有自動化構(gòu)建、測試和部署項目等功能。Jenkins不僅支持web形式的可視化的管理頁面,也支持插件,使得Jenkins可以集成很多插件(這些開源插件涵蓋了系統(tǒng)版本控制、構(gòu)建工具、代碼質(zhì)量度量、構(gòu)建通知、外部系統(tǒng)集成等),可更好的持續(xù)集成工程項目。Jenkins支持主流操作系統(tǒng)的安裝程序,也可以通過本機系統(tǒng)軟件包Docker進行安裝,甚至提供了任何安裝了Java運行時環(huán)境(JRE)的機器都可以獨立運行的war包。
安裝Jenkins的前期準(zhǔn)備(基于Centos7)
安裝Java運行環(huán)境(可以是JRE或者JDK)
????Jenkins是一個基于Java的Web應(yīng)用程序,所以需要安裝Java運行環(huán)境。
- 下載JDK到當(dāng)前目錄下
wget --no-check-certificate --no-cookies --header "Cookie: oraclelicense=accept-securebackup-cookie" http://download.oracle.com/otn-pub/java/jdk/8u172-b11/a58eab1ec242421181065cdc37240b08/jdk-8u172-linux-x64.tar.gz
打開JDK官網(wǎng),選擇接受用戶協(xié)議,然后右鍵就可以復(fù)制下載鏈接(注意:http包括以后的才是下載鏈接,前面的是命令參數(shù))。 - 解壓
tar -zxvf jdk-8u172-linux-x64.tar.gz - 配置環(huán)境變量
命令vim /etc/profile編輯環(huán)境配置文件,在profile文件配置JDK安裝目錄和JRE安裝目錄。
保存退出?export JAVA_HOME=JDK安裝目錄 export JRE_HOME=JRE安裝目錄 PATH=$PATH:$HOME/bin:$JAVA_HOME/bin:wq,?然后讓配置生效?source /etc/profile?
安裝代碼管理工具
yum install git 下載最新的git
安裝構(gòu)建工具
- 下載maven
wget http://mirror.bit.edu.cn/apache/maven/maven-3/3.5.4/binaries/apache-maven-3.5.4-bin.tar.gz - 解壓
tar -zxvf apache-maven-3.5.4-bin.tar.gz - 配置環(huán)境變量
命令vim /etc/profile編輯環(huán)境配置文件,在profile文件配置maven安裝目錄。
保存退出?export MAVEN_HOME=maven安裝目錄 PATH=$PATH:$MAVEN_HOME/bin:wq,?然后讓配置生效?source /etc/profile?
安裝運行Jenkins(版本2.1)
????Jenkins官網(wǎng)有兩條生產(chǎn)線(LTS長期支持和Weekly),可以根據(jù)需求選擇。
- LTS(長期支持):從正規(guī)版本的每12周中選擇一次作為當(dāng)時的穩(wěn)定版本
- Weekly:每周發(fā)布一個新版本,為用戶和插件開發(fā)人員提供錯誤修復(fù)和功能
下載安裝
- 下載安裝
sudo wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo #配置yum 源
sudo rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key #導(dǎo)入公鑰
yum install jenkins #下載安裝jenkins
用yum命令安裝jenkins會有一些默認(rèn)配置
- 在
/etc/init.d目錄下新建一個jenkins的服務(wù)啟動腳本(文件名為jenkins),用于開機啟動。 - 默認(rèn)的日志文件在
/var/log/jenkins/jenkins.log - 配置文件在
/etc/sysconfig/jenkins - 默認(rèn)端口是8080(在配置文件中可以配置)
- war包放在
/usr/lib/jenkins/
運行
Jenkins 的啟動和停止
- 啟動
systemctl start jenkins.service - 重啟
systemctl restart jenkins.service - 停止
systemctl stop jenkins.service
????第一次啟動的時候可能會出現(xiàn)的問題。通過命令?systemctl status -l jenkins.service?查看錯誤信息。
● jenkins.service - LSB: Jenkins Automation Server
Loaded: loaded (/etc/rc.d/init.d/jenkins; bad; vendor preset: disabled)
Active: failed (Result: exit-code) since Fri 2018-07-13 11:08:31 CST; 4min 56s ago
Docs: man:systemd-sysv-generator(8)
Process: 8771 ExecStart=/etc/rc.d/init.d/jenkins start (code=exited, status=1/FAILURE)
Jul 13 11:08:31 chidean.novalocal systemd[1]: Starting LSB: Jenkins Automation Server...
Jul 13 11:08:31 chidean.novalocal runuser[8776]: pam_unix(runuser:session): session opened for user jenkins by (uid=0)
Jul 13 11:08:31 chidean.novalocal jenkins[8771]: Starting Jenkins bash: /usr/bin/java: No such file or directory
Jul 13 11:08:31 chidean.novalocal runuser[8776]: pam_unix(runuser:session): session closed for user jenkins
Jul 13 11:08:31 chidean.novalocal jenkins[8771]: [FAILED]
Jul 13 11:08:31 chidean.novalocal systemd[1]: jenkins.service: control process exited, code=exited status=1
Jul 13 11:08:31 chidean.novalocal systemd[1]: Failed to start LSB: Jenkins Automation Server.
Jul 13 11:08:31 chidean.novalocal systemd[1]: Unit jenkins.service entered failed state.
Jul 13 11:08:31 chidean.novalocal systemd[1]: jenkins.service failed.
這個錯誤可能是由于端口沖突或者是JDK的java命令配置錯誤或者是沒有配置的問題導(dǎo)致的。如果JDK是手動安裝配置的,就會出現(xiàn)這個問題。
- 修改端口號,配置文件
/etc/sysconfig/jenkins56行附近。 - 增加java命令的配置。打開jenkins的啟動腳本
/etc/init.d/jenkins66行左右,加入java命令的路徑(不是JDK的安裝目錄)
candidates="
/etc/alternatives/java
/usr/lib/jvm/java-1.8.0/bin/java
/usr/lib/jvm/jre-1.8.0/bin/java
/usr/lib/jvm/java-1.7.0/bin/java
/usr/lib/jvm/jre-1.7.0/bin/java
/usr/bin/java
/usr/local/java/jdk1.8.0_152/bin/java #加入java命令的路徑
"
- 修改啟動腳本需要執(zhí)行
systemctl daemon-reload命令,重載配置文件 - 啟動jenkins
第一次運行
????第一次啟動Jenkins時,出于安全考慮,Jenkins會自動生成一個隨機字符串,從Jenkins控制臺日志輸出中(在兩組星號之間)。也可以在默認(rèn)生成的位置中找到。將隨機串復(fù)制到輸入框中。

用插件定制Jenkins
????解鎖Jenkins后,將出現(xiàn)自定義 Jenkins頁面。這個步驟有兩個選項:
- 安裝Jenkins社區(qū)推薦的插件
- 自己選擇并安裝適合的插件,在這里可以安裝任意數(shù)量的有用的插件作為初始設(shè)置的一部分。
如果不確定需要哪些插件,就選擇安裝Jenkins社區(qū)推薦的插件。(可以在Manage Jenkins > Manage Plugins 頁面管理Jenkins插件)
創(chuàng)建第一個管理員用戶
????在用插件定制Jenkins之后,Jenkins要求要創(chuàng)建第一個管理員用戶。配置完用戶之后,以后使用Jenkins都要通過這個賬號來訪問。
URL配置
????Jenkins URL用于為各種Jenkins資源提供絕對鏈接的根URL。 這個值是許多Jenkins功能正常運行所必需的,包括電子郵件通知,PR狀態(tài)更新以及為構(gòu)建步驟提供的BUILD_URL環(huán)境變量。 最佳做法是將此值設(shè)置為預(yù)期使用的URL。
安裝完成

配置全局工具
????Jenkins構(gòu)建需要用到構(gòu)建工具、代碼管理工具、JDK等。配置路徑在系統(tǒng)管理->全局工具配置

配置JDK

如果不想用本地的JDK,jenkins也提供了在線安裝的方式,勾選自動安裝即可
配置git

配置maven
