一、Jenkins簡介
Jenkins是一個(gè)開源的自動(dòng)化服務(wù)器,用于實(shí)現(xiàn)持續(xù)集成和持續(xù)交付的流程。它提供了一種易于使用且可擴(kuò)展的方式來構(gòu)建、測試和部署軟件。
Jenkins具有以下特點(diǎn)和優(yōu)勢:
1. 易于安裝和配置:Jenkins可以在各種操作系統(tǒng)上部署,并且提供了簡單易用的Web界面進(jìn)行配置和管理。
2. 插件擴(kuò)展性:Jenkins擁有豐富的插件生態(tài)系統(tǒng),可以輕松地集成各種工具和技術(shù),以滿足不同的需求。
3. 分布式構(gòu)建:Jenkins支持分布式構(gòu)建,可以將構(gòu)建任務(wù)分配給多個(gè)節(jié)點(diǎn)并發(fā)執(zhí)行,加快構(gòu)建速度。
4. 可視化界面:Jenkins提供了直觀的界面來查看構(gòu)建、測試和部署的進(jìn)度和結(jié)果,以及生成各種報(bào)告和圖表。
5. 強(qiáng)大的通知機(jī)制:Jenkins可以通過郵件、Slack等方式及時(shí)通知團(tuán)隊(duì)成員構(gòu)建的狀態(tài)和結(jié)果。
6. 社區(qū)支持:Jenkins是一個(gè)活躍的開源項(xiàng)目,擁有龐大的用戶和開發(fā)者社區(qū),可以獲取大量的支持和資源。
總之,Jenkins是一個(gè)功能強(qiáng)大且靈活的自動(dòng)化工具,可以幫助團(tuán)隊(duì)實(shí)現(xiàn)持續(xù)集成和持續(xù)交付,提高軟件開發(fā)的效率和質(zhì)量。
二、安裝Jenkins
方式一:yum安裝Jenkins#訪問官網(wǎng):https://www.jenkins.io/download/下載Jenkins。選擇LTS長期支持版,選擇適合的系統(tǒng)版本,如:centos
# 導(dǎo)入jenkins源
sudo wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo
# 導(dǎo)入jenkins官方證書;如果以前從Jenkins中導(dǎo)入了密鑰,rpm -import將會(huì)失敗,因?yàn)橐呀?jīng)有了一個(gè)密鑰,直接忽略即可
sudo rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io-2023.key
#安裝 fontconfig JAVA-11-openjdk
yum install fontconfig java-11-openjdk
# 安裝jenkins(安裝的是最新的LTS版本)
yum install jenkins
#查看yum安裝的文件
# 啟動(dòng)文件
/etc/init.d/jenkins
# 日志分割配置文件
/etc/logrotate.d/jenkins
# jenkins主配置文件
/etc/sysconfig/jenkins
# 可執(zhí)行命令
/usr/bin/jenkins
# Jenkins服務(wù)
/usr/lib/systemd/system/jenkins.service
# 命令
/usr/sbin/rcjenkins
# 存放war目錄
/usr/share/java/jenkins.war
/usr/share/jenkins
/usr/share/jenkins/migrate
# war包解壓目錄 jenkins網(wǎng)頁代碼目錄
/var/cache/jenkins
# jenkins 工作目錄
/var/lib/jenkins
# 日志
/var/log/jenkins
#修改配置(jenkins默認(rèn)的java路徑為/usr/bin/java,追加自己部署的java路徑)
vim /etc/jenkins
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-11.0/bin/java
/usr/lib/jvm/jre-11.0/bin/java
/usr/lib/jvm/java-11-openjdk-amd64
/usr/bin/java
/usr/local/jdk1.8/bin/java
"
#修改默認(rèn)端口(jenkins默認(rèn)訪問端口:8080,根據(jù)需求決定是否修改,這里修改為:8000)
vim /etc/sysconfig/jenkins
JENKINS_PORT="8000"
vim /usr/lib/systemd/system/jenkins.service
Environment="JENKINS_PORT=8000"
#重新加載Jenkins
systemctl daemon-reload
#啟動(dòng)Jenkins
systemctl start jenkins
#查看服務(wù)狀態(tài)
systemctl status jenkins.service
#查看日志
tAIl -n 200 -f /var/log/jenkins/jenkins.log
報(bào)錯(cuò):
如果報(bào)錯(cuò):
--2023-08-14 22:13:34-- https://pkg.jenkins.io/redhat-stable/jenkins.repo
Resolving pkg.jenkins.io (pkg.jenkins.io)... 146.75.114.133, 2a04:4e42:1a::645
Connecting to pkg.jenkins.io (pkg.jenkins.io)|146.75.114.133|:443... connected.
ERROR: cannot verify pkg.jenkins.io's certificate, issued by ‘/C=US/O=Let's Encrypt/CN=R3’:
Issued certificate has expired.
To connect to pkg.jenkins.io insecurely, use `--no-check-certificate'.
原因:
這個(gè)報(bào)錯(cuò)信息意味著在連接到pkg.jenkins.io時(shí)出現(xiàn)了證書過期的問題。由于證書過期,鏈接默認(rèn)被拒絕。解決:
wget --no-check-certificate https://pkg.jenkins.io/redhat-stable/jenkins.repo
驗(yàn)證:
方式二:基于war包的方式安裝Jenkins
#需要提前安裝JDK
tar zxf jdk-20_linux-x64_bin.tar.gz
vim /etc/profile(寫到最下面)
export JAVA_HOME=/data/jdk-20.0.2
export PATH=$PATH:$JAVA_HOME/bin
source /etc/profile
安裝Tomcat
#下載安裝包
wget https://dlcdn.Apache.org/tomcat/tomcat-9/v9.0.63/bin/apache-tomcat-9.0.63.tar.gz
#解壓
tar -zxvf apache-tomcat-9.0.63.tar.gz
#重命名文件夾
mv apache-tomcat-9.0.63.tar.gz tomcat
#開啟Tomcat的管理
#配置訪問用戶:
vim tomcat/conf/tomcat-users.xml
<role rolename="manager"/>
<role rolename="manager-gui"/>
<role rolename="admin"/>
<role rolename="admin-gui"/>
<user username="tomcat_user" password="tomcat123" roles="tomcat-gui,admin,manager-gui,manager"/>
#關(guān)閉IP訪問限制:
vim /usr/local/tomcat/webApps/manager/META-INF/context.xml 將Valve的內(nèi)容注釋掉
<Context antiResourceLocking="false" privileged="true" >
<CookieProcessor className="org.apache.tomcat.util.http.Rfc6265CookieProcessor"
sameSiteCookies="strict" />
<!-- <Valve className="org.apache.catalina.valves.RemoteAddrValve"
allow="127.d+.d+.d+|::1|0:0:0:0:0:0:0:1" /> -->
<Manager sessionAttributeValueClassNameFilter="java.lang.(?:Boolean|Integer|Long|Number|String)|org.apache.catalina.filters.CsrfPreventionFilter$LruCache(?:$1)?|java.util.(?:Linked)?HashMap"/>
</Context>
#下載Jenkins包
wget https://mirrors.tuna.tsinghua.edu.cn/jenkins/war-stable/2.375.4/jenkins.war
cp jenkins.war /usr/local/tomcat/webapps
#啟動(dòng)
cd tomcat/
bin/startup.sh & tail -f logs/catalina.out
訪問:
http://192.168.1.10:8080/jenkins/
方式三:java -jar方式啟動(dòng)Jenkins
#需要提前安裝JDK
tar zxf jdk-20_linux-x64_bin.tar.gz
vim /etc/profile(寫到最下面)
export JAVA_HOME=/data/jdk-20.0.2
export PATH=$PATH:$JAVA_HOME/bin
source /etc/profile
#下載war包
wget https://mirrors.tuna.tsinghua.edu.cn/jenkins/war-stable/2.375.4/jenkins.war
# 前臺(tái)運(yùn)行
java -jar jenkins.war --httpPort=8080 >> jenkins.log 2>&1
# 后臺(tái)運(yùn)行
nohup java -jar jenkins.war --httpPort=8080 >> jenkins.log 2>&1 &
# jenkins會(huì)在構(gòu)建結(jié)束殺掉衍生子進(jìn)程,導(dǎo)致相關(guān)服務(wù)啟動(dòng)失敗,禁用殺死衍生進(jìn)程的特性
nohup java -jar jenkins.war -Dhudson.util.ProcessTree.disable=true --enable-future-java --httpPort=8080 >> jenkins.log 2>&1 &
報(bào)錯(cuò):
如果報(bào)錯(cuò):java.lang.NullPointerException: Cannot load from short array because "sun.awt.FontConfiguration.head" is null
原因:
linux系統(tǒng)缺少相關(guān)字體導(dǎo)致
解決辦法:
yum install fontconfig
fc-cache --force
方式四:docker安裝jenkins
#提前安裝docker
yum install -y yum-utils device-mapper-persistent-data lvm2
yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
sed -i 's+download.docker.com+mirrors.aliyun.com/docker-ce+' /etc/yum.repos.d/docker-ce.repo
yum makecache fast
yum -y install docker-ce
service docker start
#docker拉取Jenkins鏡像
docker pull jenkins/jenkins:lts
#創(chuàng)建并啟動(dòng)Jenkins容器
docker run -d --name jenkins -p 8088:8080 -p 50000:50000 -v /data/jenkins/:/var/jenkins_home jenkins/jenkins:lts
踩坑:
容器創(chuàng)建成功,發(fā)現(xiàn)容器并沒有啟動(dòng)成功,再次啟動(dòng)容器,發(fā)現(xiàn)仍然啟動(dòng)失敗.原因:Jenkins數(shù)據(jù)掛載目錄需要對(duì)其授予權(quán)限
mkdir -p /data/jenkins
chmod 777 /data/jenkins/
docker start jenkins
三、安裝配置
選擇插件的安裝方式
無論選擇哪種方式都不會(huì)對(duì)后續(xù)操作有太大影響,有需要的插件可以在后續(xù)有針對(duì)性的安裝
如果有X沒關(guān)系是由于網(wǎng)絡(luò)傳輸原因?qū)е碌陌惭b失敗,后面重現(xiàn)安裝即可
創(chuàng)建賬戶
使用admin賬戶繼續(xù)登錄
實(shí)例配置
Jenkins資源提供絕對(duì)路徑鏈接的根地址,默認(rèn)即可
Jenkins就緒
點(diǎn)擊開始使用Jenkins進(jìn)入Jenkins首頁
初始化配置
安裝Locale、Localization: Chinese (Simplified) 、Localization Support Plugin三個(gè)插件,后2個(gè)默認(rèn)已安裝
安裝完成后重啟
進(jìn)入Manage Jenkins中,點(diǎn)擊Configure System
重啟:http://192.168.1.10:8080/restart
注意:設(shè)置重啟后可能還是部分存在英文,此時(shí)需要執(zhí)行如下2步操作即可:
1.找到Locale設(shè)置 Default Language的值為:en_us然后重啟
2.找到Locale設(shè)置 Default Language的值為:zh_CN然后重啟
全局工具配置
配置settings.xml文件
安裝Maven工具
下載地址:https://dlcdn.apache.org/maven/maven-3/3.9.4/binaries/apache-maven-3.9.4-bin.tar.gz
tar zxf apache-maven-3.9.4-bin.tar.gz
mv apache-maven-3.9.4 maven
cd maven/ && mkdir ck
vim conf/settings.xml
<localRepository>/data/maven/ck</localRepository>
vim /etc/profile
export MAVEN_HOME=/data/maven
export PATH=$PATH:$MAVEN_HOME/bin
source /etc/profile
安裝git
yum install -y curl-devel expat-devel gettext-devel openssl-devel zlib-devel
yum install -y gcc perl-ExtUtils-MakeMaker
wget https://mirrors.edge.kernel.org/pub/software/scm/git/git-2.36.0.tar.gz
tar -zxvf git-2.36.0.tar.gz
cd git-2.36.0
make prefix=/data/git all
make prefix=/data/git install
vi /etc/profile
export PATH=$PATH:/data/git/bin
source /etc/profile
驗(yàn)證
git --version
#生成私鑰
ssh-keygen -t rsa
配置JDK
配置Git
配置Maven