一、Jenkins簡介
Jenkins是一個開源的自動化服務器,用于實現持續集成和持續交付的流程。它提供了一種易于使用且可擴展的方式來構建、測試和部署軟件。
Jenkins具有以下特點和優勢:
1. 易于安裝和配置:Jenkins可以在各種操作系統上部署,并且提供了簡單易用的Web界面進行配置和管理。
2. 插件擴展性:Jenkins擁有豐富的插件生態系統,可以輕松地集成各種工具和技術,以滿足不同的需求。
3. 分布式構建:Jenkins支持分布式構建,可以將構建任務分配給多個節點并發執行,加快構建速度。
4. 可視化界面:Jenkins提供了直觀的界面來查看構建、測試和部署的進度和結果,以及生成各種報告和圖表。
5. 強大的通知機制:Jenkins可以通過郵件、Slack等方式及時通知團隊成員構建的狀態和結果。
6. 社區支持:Jenkins是一個活躍的開源項目,擁有龐大的用戶和開發者社區,可以獲取大量的支持和資源。
總之,Jenkins是一個功能強大且靈活的自動化工具,可以幫助團隊實現持續集成和持續交付,提高軟件開發的效率和質量。
二、安裝Jenkins
方式一:yum安裝Jenkins#訪問官網:https://www.jenkins.io/download/下載Jenkins。選擇LTS長期支持版,選擇適合的系統版本,如:centos
# 導入jenkins源
sudo wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo
# 導入jenkins官方證書;如果以前從Jenkins中導入了密鑰,rpm -import將會失敗,因為已經有了一個密鑰,直接忽略即可
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安裝的文件
# 啟動文件
/etc/init.d/jenkins
# 日志分割配置文件
/etc/logrotate.d/jenkins
# jenkins主配置文件
/etc/sysconfig/jenkins
# 可執行命令
/usr/bin/jenkins
# Jenkins服務
/usr/lib/systemd/system/jenkins.service
# 命令
/usr/sbin/rcjenkins
# 存放war目錄
/usr/share/java/jenkins.war
/usr/share/jenkins
/usr/share/jenkins/migrate
# war包解壓目錄 jenkins網頁代碼目錄
/var/cache/jenkins
# jenkins 工作目錄
/var/lib/jenkins
# 日志
/var/log/jenkins
#修改配置(jenkins默認的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
"
#修改默認端口(jenkins默認訪問端口:8080,根據需求決定是否修改,這里修改為:8000)
vim /etc/sysconfig/jenkins
JENKINS_PORT="8000"
vim /usr/lib/systemd/system/jenkins.service
Environment="JENKINS_PORT=8000"
#重新加載Jenkins
systemctl daemon-reload
#啟動Jenkins
systemctl start jenkins
#查看服務狀態
systemctl status jenkins.service
#查看日志
tAIl -n 200 -f /var/log/jenkins/jenkins.log
報錯:
如果報錯:
--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'.
原因:
這個報錯信息意味著在連接到pkg.jenkins.io時出現了證書過期的問題。由于證書過期,鏈接默認被拒絕。解決:
wget --no-check-certificate https://pkg.jenkins.io/redhat-stable/jenkins.repo
驗證:
方式二:基于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"/>
#關閉IP訪問限制:
vim /usr/local/tomcat/webApps/manager/META-INF/context.xml 將Valve的內容注釋掉
<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
#啟動
cd tomcat/
bin/startup.sh & tail -f logs/catalina.out
訪問:
http://192.168.1.10:8080/jenkins/
方式三:java -jar方式啟動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
# 前臺運行
java -jar jenkins.war --httpPort=8080 >> jenkins.log 2>&1
# 后臺運行
nohup java -jar jenkins.war --httpPort=8080 >> jenkins.log 2>&1 &
# jenkins會在構建結束殺掉衍生子進程,導致相關服務啟動失敗,禁用殺死衍生進程的特性
nohup java -jar jenkins.war -Dhudson.util.ProcessTree.disable=true --enable-future-java --httpPort=8080 >> jenkins.log 2>&1 &
報錯:
如果報錯:java.lang.NullPointerException: Cannot load from short array because "sun.awt.FontConfiguration.head" is null
原因:
linux系統缺少相關字體導致
解決辦法:
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
#創建并啟動Jenkins容器
docker run -d --name jenkins -p 8088:8080 -p 50000:50000 -v /data/jenkins/:/var/jenkins_home jenkins/jenkins:lts
踩坑:
容器創建成功,發現容器并沒有啟動成功,再次啟動容器,發現仍然啟動失敗.原因:Jenkins數據掛載目錄需要對其授予權限
mkdir -p /data/jenkins
chmod 777 /data/jenkins/
docker start jenkins
三、安裝配置
選擇插件的安裝方式
無論選擇哪種方式都不會對后續操作有太大影響,有需要的插件可以在后續有針對性的安裝
如果有X沒關系是由于網絡傳輸原因導致的安裝失敗,后面重現安裝即可
創建賬戶
使用admin賬戶繼續登錄
實例配置
Jenkins資源提供絕對路徑鏈接的根地址,默認即可
Jenkins就緒
點擊開始使用Jenkins進入Jenkins首頁
初始化配置
安裝Locale、Localization: Chinese (Simplified) 、Localization Support Plugin三個插件,后2個默認已安裝
安裝完成后重啟
進入Manage Jenkins中,點擊Configure System
重啟:http://192.168.1.10:8080/restart
注意:設置重啟后可能還是部分存在英文,此時需要執行如下2步操作即可:
1.找到Locale設置 Default Language的值為:en_us然后重啟
2.找到Locale設置 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
驗證
git --version
#生成私鑰
ssh-keygen -t rsa
配置JDK
配置Git
配置Maven