一、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