jenkins安裝及其配置筆記
一、相關(guān)概念
1.1 Jenkins概念:
Jenkins是一個(gè)功能強(qiáng)大的應(yīng)用程序,允許持續(xù)集成和持續(xù)交付項(xiàng)目,無論用的是什么平臺(tái)。這是一個(gè)免費(fèi)的源代碼,可以處理任何類型的構(gòu)建或持續(xù)集成。集成Jenkins可以用于一些測(cè)試和部署技術(shù)。Jenkins是一種軟件允許持續(xù)集成。
1.2 Jenkins目的:
1、持續(xù)、自動(dòng)地構(gòu)建/測(cè)試軟件項(xiàng)目。
2、監(jiān)控軟件開放流程,快速問題定位及處理,提示開放效率。
1.3 特性:
開源的java語言開發(fā)持續(xù)集成工具,支持CI,CD。
易于安裝部署配置:可通過yum安裝,或下載war包以及通過docker容器等快速實(shí)現(xiàn)安裝部署,可方便web界面配置管理。
消息通知及測(cè)試報(bào)告:集成RSS/E-mail通過RSS發(fā)布構(gòu)建結(jié)果或當(dāng)構(gòu)建完成時(shí)通過e-mail通知,生成JUnit/TestNG測(cè)試報(bào)告。
分布式構(gòu)建:支持Jenkins能夠讓多臺(tái)計(jì)算機(jī)一起構(gòu)建/測(cè)試。
文件識(shí)別:Jenkins能夠跟蹤哪次構(gòu)建生成哪些jar,哪次構(gòu)建使用哪個(gè)版本的jar等。
豐富的插件支持:支持?jǐn)U展插件,你可以開發(fā)適合自己團(tuán)隊(duì)使用的工具,如git,svn,maven,docker等。
1.4 產(chǎn)品發(fā)布流程:
產(chǎn)品設(shè)計(jì)成型 -> 開發(fā)人員開發(fā)代碼 -> 測(cè)試人員測(cè)試功能 -> 運(yùn)維人員發(fā)布上線
持續(xù)集成 (Continuous integration,簡(jiǎn)稱CI)
持續(xù)交付(Continuous delivery)
持續(xù)部署(continuous deployment)
二、安裝部署
2.1 yum安裝
最低配置: 不少于256M內(nèi)存,不低于1G磁盤,jdk版本>=8
安裝jdk1.8
yum install -y java-1.8.0-openjdk && \ wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat/jenkins.repo && \ rpm --import https://pkg.jenkins.io/redhat/jenkins.io.key &&\ yum clean all && yum makecache && \ yum install -y jenkins && \ systemctl start jenkins
less /var/log/jenkins/jenkins.log //查詢admin密碼
訪問 http://ip:8080/ 進(jìn)行安裝
jenkins相關(guān)目錄:
rpm -ql jenkins #查看jenkins安裝相關(guān)目錄
安裝目錄/var/lib/jenkins
配置文件 /etc/sysconfig/jenkins
日志目錄 /var/log/jenkins
2.2 下載war包安裝
yum install -y java-1.8.0-openjdk && mkdir -p /usr/local/jenkins/ && \ wget -c -O /usr/local/jenkins/jenkins.war http://mirrors.jenkins.io/war-stable/latest/jenkins.war &&\ nohup java -jar /usr/local/jenkins/jenkins.war &
密碼查看:/root/.jenkins/secrets/initialAdminPassword
訪問 http://ip:8080/ 進(jìn)行安裝
如何想通過其他端口啟動(dòng)可以指定httpPort選項(xiàng)即可。
nohup java -jar jenkins.war --httpPort=8899 &
2.3 docker形式安裝
yum install docker -y && systemctl start docker && \ curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh -s && systemctl restart docker docker search jenkins docker pull docker.io/jenkins docker run -d -p 8080:8080 docker.io/jenkins
docker exec -it 52873fa3dce4 /bin/bash
cat /var/jenkins_home/secrets #查看密碼
訪問 http://ip:8080/ 進(jìn)行安裝
2.4 相關(guān)工具安裝工具安裝可在jenkins的web界面系統(tǒng)管理---管理插件---可選插件勾選需要的,也可以手動(dòng)安裝。
a.git安裝
yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel gcc-c++ perl-ExtUtils-MakeMaker wget autoconf -y wget https://www.kernel.org/pub/software/scm/git/git-2.7.3.tar.gz tar xf git-2.7.3.tar.gz cd git-2.7.3 make configure ./configure --prefix=/usr/local/git make profix=/usr/local/git make install echo "export PATH=$PATH:/usr/local/git/bin" > /etc/profile.d/git.sh source /etc/profile.d/git.sh
b.maven安裝
cd /usr/local/ && wget -c wget http://mirror.bit.edu.cn/apache/maven/maven-3/3.5.2/binaries/apache-maven-3.5.2-bin.tar.gz &&\ tar -zxf apache-maven-3.5.2-bin.tar.gz && \ echo "export PATH=$PATH:/usr/local/apache-maven-3.5.2/bin" > /etc/profile.d/maven.sh && \ source /etc/profile.d/maven.sh
mvn --version 查看版本
c.svn安裝
yum install subversion -y mkdir /svnrepo svnadmin create /svnrepo/project1 #創(chuàng)建一個(gè)新的Subversion項(xiàng)目



啟動(dòng)項(xiàng)目1:svnserve -d -r /svnrepo/project1/
啟動(dòng)整個(gè)項(xiàng)目:svnserve -d -r /svnrepo/
d.jdk安裝
某些情況下會(huì)遇到openjdk無法編譯java程序,或在編譯中存在異常,需要我們手動(dòng)安裝jdk,首先去Oracle官網(wǎng)下載對(duì)應(yīng)版本的jdk
tar -zxvf jdk-8u121-linux-x64.gz -C /usr/local && \ ln -sv /usr/local/jdk1.8.0_121 /usr/local/jdk1.8 && \ echo "export PATH=$PATH:/usr/local/jdk1.8/bin" >/etc/profile.d/java.sh source /etc/profile.d/java.sh
三、WEB界面配置
3.1 密碼破解
cd /var/lib/jenkins/users/admin #此為admin用戶的目錄,也可以對(duì)應(yīng)自己創(chuàng)建的用戶 vim config.xml //定位到<passwordHash>那一行 刪除改行,改為 <passwordHash>#jbcrypt:$2a$10$pDQks0ytOkCfmpdgpLygrOC3uY7i/XnZHBKRQDhrBPwKoN2f5Kz8C</passwordHash>
重啟一下jenkins
新密碼為admin
3.2 maven配置
針對(duì)之前手動(dòng)安裝的maven需要在web界面配置進(jìn)行結(jié)合。
系統(tǒng)管理---全局工具配置(Maven Configuration)配置:

此處為手動(dòng)安裝的maven,需要取消自動(dòng)安裝maven,name可以自定義,MAVEN_HOME指定下載安裝的maven具體文件目錄

3.3 GIT配置
手動(dòng)安裝的git,web界面只需添加具體可執(zhí)行路徑即可

3.4 jdk配置
對(duì)應(yīng)手動(dòng)安裝的jdk,需要web配置java_home路徑

3.5 郵件配置
jenkins有內(nèi)置的郵件功能但由于其對(duì)于成功的發(fā)布不會(huì)發(fā)送郵件可定制化程度低,在此直接配置插件郵件(Editable Email Notification),2.32以上版本的jenkins,常用的插件都已經(jīng)在最初部署的時(shí)候安裝了(如果你當(dāng)初選擇的是suggest的plugins)。
可以使用qq郵件服務(wù)器或163等其他郵件服務(wù)器,在此配置使用163郵箱,首先需要開啟163郵箱的smtp服務(wù)。

需要記錄此處開啟smtp時(shí)的密碼。
在jenkins 系統(tǒng)管理---系統(tǒng)設(shè)置---Extended E-mail Notification

在默認(rèn)的觸發(fā)器 Default Triggers 標(biāo)簽下,可以勾選郵件通知觸發(fā)的情況,如任何情況下均需要選擇always,也可以在僅失敗情況下發(fā)送,也可以對(duì)應(yīng)的郵件接受人不通,進(jìn)行郵件分類。
以下的內(nèi)容,如郵件主題,內(nèi)容均可自定義,可以參考url:至此全局插件郵件已經(jīng)配置完畢,需要在具體的項(xiàng)目中使用此郵件進(jìn)行發(fā)送通知。
四、實(shí)戰(zhàn)php程序自動(dòng)發(fā)布
4.1 插件安裝
系統(tǒng)管理---管理插件---已安裝
檢查是否有“Git plugin”和“Publish Over SSH”兩個(gè)插件,如果沒有,則需點(diǎn)擊“可選插件”,找到它并安裝
安裝好兩個(gè)插件后,點(diǎn)擊“系統(tǒng)管理”-- “系統(tǒng)設(shè)置”
4.2 SSH配置
系統(tǒng)管理---系統(tǒng)設(shè)置---Publish over SSH
在key內(nèi)填寫jenkins服務(wù)器的私鑰,如果沒有需要先在jenkins服務(wù)器生成私鑰與公鑰。ssh-keygen -t rsa回車后會(huì)在登錄用戶的家目錄下生成一個(gè).ssh 的目錄,此目錄下存在id_rsa私鑰與id_rsa.pub公鑰。且講公鑰發(fā)布至代碼發(fā)布的目標(biāo)服務(wù)器上ssh-copy-id -i /root/.ssh/id_rsa.pub root@IP。
SSH Server配置
name:需要將php程序發(fā)布到目標(biāo)服務(wù)器的名稱,可自定義
Hostname:填寫目錄服務(wù)器的IP地址
Username:使用那個(gè)用戶進(jìn)行發(fā)布,此處為進(jìn)行密鑰互信的用戶
Remote Directory:此出為發(fā)布到目標(biāo)服務(wù)器的相對(duì)根路徑,建議填寫/,防止后續(xù)填寫路徑異常。

注:如果為多臺(tái)目標(biāo)服務(wù)器,可以繼續(xù)添加,如果目標(biāo)服務(wù)器存在代理,也可設(shè)置proxy
4.3 構(gòu)建項(xiàng)目
新建Item---填入項(xiàng)目名稱---選擇構(gòu)建一個(gè)自由風(fēng)格的軟件項(xiàng)目---確定
源碼管理選擇git
Repository URL 填寫具體git上的倉(cāng)庫(kù)url,如果為私有,需要繼續(xù)添加Credentials,如果為公有直接填寫url即可,Credentials為none,
構(gòu)建后夠操作
選擇(Send files or execute commands over SSH)
SSH Server選擇目標(biāo)服務(wù)器如:php-server
Source files: **/** #將git拉去下來的原始文件
Remote directory:/var/www/html #發(fā)布到目標(biāo)服務(wù)器的制定目錄
Exec command:chown apache:apache -R /var/www/html/* #制定后續(xù)的操作

此時(shí)可以選擇Editable Email Notification來構(gòu)建郵件通知。
在此處,之前的郵件主題,內(nèi)容均可以自定義,在高級(jí)里面,選擇郵件接受人。

點(diǎn)擊保存,并立即構(gòu)建,可以點(diǎn)擊console output查看日志


此時(shí)打開php程序發(fā)現(xiàn)程序文件已經(jīng)成功發(fā)布到目標(biāo)服務(wù)器上

此時(shí)可以查看郵件也已經(jīng)發(fā)送成功。

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
關(guān)于springboot整合swagger問題及解決方法
這篇文章主要介紹了關(guān)于springboot整合swagger問題及解決方法,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-04-04
詳解Spring Cloud Consul 實(shí)現(xiàn)服務(wù)注冊(cè)和發(fā)現(xiàn)
這篇文章主要介紹了Spring Cloud Consul 實(shí)現(xiàn)服務(wù)注冊(cè)和發(fā)現(xiàn),小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2018-03-03
SpringBoot JPA實(shí)現(xiàn)查詢多值
這篇文章主要為大家詳細(xì)介紹了SpringBoot JPA實(shí)現(xiàn)查詢多值,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-08-08
Spring MVC Mybatis多數(shù)據(jù)源的使用實(shí)例解析
項(xiàng)目需要從其他網(wǎng)站獲取數(shù)據(jù),因?yàn)槭桥R時(shí)加的需求,這篇文章主要介紹了Spring MVC Mybatis多數(shù)據(jù)源的使用實(shí)例解析,需要的朋友可以參考下2016-12-12
SpringBoot實(shí)現(xiàn)接口數(shù)據(jù)的加解密功能
這篇文章主要介紹了SpringBoot實(shí)現(xiàn)接口數(shù)據(jù)的加解密功能,對(duì)接口的加密解密操作主要有兩種實(shí)現(xiàn)方式,文中給大家詳細(xì)介紹,需要的朋友可以參考下2019-10-10
springboot中關(guān)于classpath:路徑使用及說明
這篇文章主要介紹了springboot中關(guān)于classpath:路徑使用及說明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-09-09
Java 中jasperReport實(shí)現(xiàn)動(dòng)態(tài)列打印的實(shí)現(xiàn)代碼
這篇文章主要介紹了Java 中jasperReport實(shí)現(xiàn)動(dòng)態(tài)列打印的實(shí)現(xiàn)代碼的相關(guān)資料,希望通過本文大家能掌握這部分內(nèi)容,需要的朋友可以參考下2017-09-09

