官方网址:https://www.jenkins.io/
2、安装Jenkins 2.1 centos下命令行安装访问官方,点击文档:
点击 Installing Jenkins:
点击 Linux:
选择 Red Hat/Alma/Rocky,就可以看到相关的安装命令:
sudo wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo sudo rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io-2023.key sudo yum upgrade # 安装安装包 sudo yum install fontconfig java-17-openjdk sudo yum install jenkins # 启动 sudo systemctl daemon-reload sudo systemctl enable jenkins sudo systemctl start jenkins sudo systemctl status jenkins其它版本的安装请参考:https://pkg.jenkins.io/redhat-stable/
# 本文安装 # 下载镜像 wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo # 安装 rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key # 更新 yum upgrade # 安装 Java 环境 yum install java-11-openjdk # 安装 Jenkins yum install jenkins # 启动 systemctl daemon-reload systemctl enable jenkins systemctl start jenkins systemctl status jenkins 2.2 错误处理 2.2.1 错误1如果报错:
$ wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo --2022-11-15 09:38:52-- https://pkg.jenkins.io/redhat-stable/jenkins.repo Resolving pkg.jenkins.io (pkg.jenkins.io)... 151.101.2.133, 151.101.66.133, 151.101.130.133, ... Connecting to pkg.jenkins.io (pkg.jenkins.io)|151.101.2.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'.请使用下面的命令:
wget --no-check-certificate -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo # 或者 yum install -y ca-certificates 2.2.2 错误2如果报错:
$ yum install jenkins 已加载插件:fastestmirror Loading mirror speeds from cached hostfile * base: mirrors.bupt.edu.cn * extras: mirrors.bfsu.edu.cn * updates: mirrors.bfsu.edu.cn 正在解决依赖关系 --> 正在检查事务 ---> 软件包 jenkins.noarch.0.2.414.3-1.1 将被 安装 --> 解决依赖关系完成 依赖关系解决 ===================================================================================================================== Package 架构 版本 源 大小 ===================================================================================================================== 正在安装: jenkins noarch 2.414.3-1.1 jenkins 85 M 事务概要 ===================================================================================================================== 安装 1 软件包 总计:85 M 安装大小:85 M Is this ok [y/d/N]: y Downloading packages: 警告:/var/cache/yum/x86_64/7/jenkins/packages/jenkins-2.414.3-1.1.noarch.rpm: 头V4 RSA/SHA512 Signature, 密钥 ID ef5975ca: NOKEY jenkins-2.414.3-1.1.noarch.rpm 的公钥尚未安装请使用下面的命令:
$ yum install jenkins --nogpgcheck 2.3 启动状态 # 查看启动状态 # systemctl status jenkins ● jenkins.service - Jenkins Continuous Integration Server Loaded: loaded (/usr/lib/systemd/system/jenkins.service; enabled; vendor preset: disabled) Active: active (running) since 六 2023-10-21 13:16:13 CST; 10s ago Main PID: 5851 (java) Tasks: 53 Memory: 1.1G CGroup: /system.slice/jenkins.service └─5851 /usr/bin/java -Djava.awt.headless=true -jar /usr/share/java/jenkins.war --webroot=%C/jenkins/war... 10月 21 13:15:49 opengauss jenkins[5851]: c251022ca0c2478794f84f67117810d9 10月 21 13:15:49 opengauss jenkins[5851]: This may also be found at: /var/lib/jenkins/secrets/initialAdminPassword 10月 21 13:15:49 opengauss jenkins[5851]: ************************************************************* 10月 21 13:15:49 opengauss jenkins[5851]: ************************************************************* 10月 21 13:15:49 opengauss jenkins[5851]: ************************************************************* 10月 21 13:16:13 opengauss jenkins[5851]: 2023-10-21 05:16:13.192+0000 [id=30] INFO jenkins.In...ation 10月 21 13:16:13 opengauss jenkins[5851]: 2023-10-21 05:16:13.203+0000 [id=23] INFO hudson.lif...nning 10月 21 13:16:13 opengauss systemd[1]: Started Jenkins Continuous Integration Server. 10月 21 13:16:14 opengauss jenkins[5851]: 2023-10-21 05:16:14.399+0000 [id=51] INFO h.m.Downlo...aller 10月 21 13:16:14 opengauss jenkins[5851]: 2023-10-21 05:16:14.399+0000 [id=51] INFO hudson.uti...pt #1 Hint: Some lines were ellipsized, use -l to show in full. 3、访问Jenkins访问地址:http://192.168.143.175:8080
查看密码并且输入密码:
$ cat /var/lib/jenkins/secrets/initialAdminPassword c251022ca0c2478794f84f67117810d9选择安装推荐的插件,Jenkins 便会开始自动下载安装:
下载完之后会自动跳转到下一个页面:
填写信息点击保存并完成:
会跳转到另一个页面:
点击保存并完成:
点击开始使用 Jenkins:
4、插件的安装使用推荐安装方式只能帮我们安装一部分最为常用的插件,有某些插件如 maven 等还是需要我们手动去安装的。
点击 “Manage Jenkins” -->“插件管理”:
在这里可以看到我们需要的插件,按需下载即可。
5、卸载Jenkins # 在卸载Jenkins之前,首先停止Jenkins服务 $ systemctl stop jenkins # 禁止其在系统启动时自动运行 $ systemctl disable jenkins # 卸载Jenkins软件包 $ yum clean all $ yum remove jenkins # 删除Jenkins相关目录和文件 $ rm -r /var/lib/jenkins $ rm -rf /etc/default/jenkins $ rm -rf /var/cache/jenkins $ rm -rf /var/run/jenkins # 删除Jenkins配置文件和日志目录 $ rm -r /etc/sysconfig/jenkins $ rm -r /var/log/jenkins # 删除Jenkins用户和用户组 $ userdel jenkins $ groupdel jenkins # 删除Jenkins的YUM源文件 $ rm /etc/yum.repos.d/jenkins.repo # 删除Jenkins的系统服务配置文件 $ rm /usr/lib/systemd/system/jenkins.service $ rm /etc/systemd/system/jenkins.service # 删掉相关安装目录 $ rm -rf /root/.jenkins/ # 删掉war包 $ rm -rf /webapps/jenkinsapp/ # 删掉剩余相关 $ rm -rf /usr/lib/firewalld/services/jenkins.xml $ rm -rf /var/cache/yum/x86_64/7/jenkins $ rm -f /var/lib/yum/repos/x86_64/7/jenkins # 彻底删除残留文件 $ find / -iname jenkins | xargs -n 1000 rm -rf 6、Jenkins全局配置需要配置的有 jdk、git、maven 工具。
6.1 JDK安装 # 下载地址 # http://www.oracle.com/technetwork/java/javase/downloads/index.html # 使用的版本 # jdk-8u212-linux-x64.tar.gz # 1、解压 $ tar -zxvf jdk-8u212-linux-x64.tar.gz # 2、重命名 $ mv jdk1.8.0_212 jdk1.8 # 3、添加环境变量 $ vim /etc/profile export JAVA_HOME=/home/zhangshixing/java/jdk1.8 export JRE_HOME=${JAVA_HOME}/jre export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib export PATH=.:${JAVA_HOME}/bin:$PATH # 4、生效 $ source /etc/profile # 5、查看版本 $ java -version java version"1.8.0_212"Java(TM) SE Runtime Environment (build 1.8.0_212-b10) Java HotSpot(TM) 64-Bit Server VM (build 25.212-b10, mixed mode) # 6、查看路径 $ which java /home/zhangshixing/java/jdk1.8/bin/java 6.2 git安装 # 使用yum安装 $ yum -y install git $ git --version # 使用安装包安装: # 1、下载安装包 # https://mirrors.edge.kernel.org/pub/software/scm/git/ wget -O git-2.22.0.tar.gz https://mirrors.edge.kernel.org/pub/software/scm/git/git-2.20.0.tar.gz # 2、解压安装包 $ tar -zxvf git-2.22.0.tar.gz # 3、进入解压后的文件夹 $ cd git-2.22.0 # 4、安装需要的依赖 $ yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel gcc perl-ExtUtils-MakeMaker # 5、在安装编译源码所需依赖的时候,yum会自动帮你安装git,这时候你需要先卸载这个旧版的git $ yum -y remove git # 6、编译git源码 $ make prefix=/usr/local/git all # 7、安装git至/usr/local/git路径 $ make prefix=/usr/local/git install # 8、配置环境变量 $ vim /etc/profile $ export PATH=$PATH:/usr/local/git/bin # 9、使配置文件生效 $ source /etc/profile # 10、查看git是版本 $ git --version git version 2.22.0 # 11、查看路径 $ which git /usr/local/git/bin/git 6.3 Maven安装 # 下载地址 # https://dlcdn.apache.org/maven/maven-3 # 使用的版本 # apache-maven-3.3.9-bin.tar.gz # 1、解压 $ tar -zxvf apache-maven-3.3.9-bin.tar.gz # 2、创建maven资源库目录 $ mkdir -p /home/zhangshixing/maven/m2/repository # 3、编辑settings.xml文件 $ cd /home/zhangshixing/maven/apache-maven-3.3.9/conf $ vim settings.xml # 将原文件内容全部删除,添加新的配置内容 $ :1,.d # 4、新的配置内容点击 “Manage Jenkins” -->“Tools”:
全部配置完成之后,点击保存、点击应用。
7、新建git仓库并上传代码8、任务的创建与执行登入 Jenkins,点击 “新建 Item”,输入任务名称并选择构建一个多配置项目;
点击确定,之后我们作出如下配置:
点击保存:
返回面板,点击按钮执行此任务:
执行结果:
一个简单的自动化部署应用就完成了。
9、Jenkins通过脚本的方式运行mvn命令不识别的处理方式如果我们进行如下的配置:
则会报如下的错误:
/tmp/jenkins8798212945672749251.sh:行1: mvn: 未找到命令解决方法:把 maven 的 mvn 弄个快捷方式到sbin下就可以解决:
ln -s $MAVEN_HOME/bin/mvn /usr/sbin/mvn 10、配置git凭据修改 Git 配置:
点击添加:
输入相关信息并且点击添加:
重新选择:
保存然后重新运行。
11、配置应用服务器信息应用服务器,就是将来 Jenkins 将代码构建成 jar 包后,要上传的服务器的信息(地址、用户名以及密码)。
首先安装 Publish Over SSH 插件:
然后进行配置:
Publish Over SSH各个参数介绍
Passphrase:使用用户名、密码 SSH 登录时,这里输入用户名密码。使用私钥登录时,这里是私钥的密
码。
Path to key:要使用的 SSH 私钥在Jenkins主机上的路径。路径可以是绝对路径,也可以是相对于
JENKINS_HOME目录的路径。
Key:私钥
Disable exec:移除该插件执行命令的能力。如果选中该选项,则 SSH Servers 的高级部分中的
Disable exec 选项将被忽略。
Name:名称。
Hostname:服务器 IP。
Username:登录服务器用户名。
Remote Directory:登录服务器后的根目录,后面 Jenkins默认发送制品到此目录下。
用户名密码方式:
密钥方式:
# 在目标服务器上执行,也就是需要上传目录的服务器 # 生成rsa密钥,回车 $ ssh-keygen -t rsa # 把公钥内容追加到认证文件中 $ cat id_rsa.pub >> authorized_keys # 授权 chmod 700 /root/.ssh chmod 700 /root/.ssh/id_rsa chmod 700 /root/.ssh/id_rsa.pub chmod 600 authorized_keys $ vim /etc/ssh/sshd_config PemitRootLogin yes # 重启 $ service sshd restart点击保存。
在项目中进行配置打包好的文件进行上传:
# 目标服务器上执行 $ pwd /opt/data $ ls jenkins_demo-0.0.1-SNAPSHOT.jar我们可以在上传完安装包之后执行一个部署脚本:
# /opt/data/deploy.sh #!/bin/bash export JAVA_HOME=/home/zhangshixing/java/jdk1.8 export PATH=$JAVA_HOME/bin:$PATH JAR_PATH=/opt/data JARFILE=jenkins_demo-0.0.1-SNAPSHOT.jar cd $JAR_PATH ps -ef | grep $JARFILE | grep -v grep | awk '{print $2}' | xargs kill -9 java -jar $JARFILE > out.log & if [ $? = 0 ];then sleep 30 tail -n 50 out.log fi修改项目中的执行命令:
重新运行,然后访问,看安装包是否启动:
$ curl -X GET http://192.168.143.175:9999/hello Hello World! $ pwd /opt/data $ ls deploy.sh jenkins_demo-0.0.1-SNAPSHOT.jar out.log我们可以看到程序正常启动,并且可以正常访问。
12、自动构建好了,现在我们的项目还不是自动构建,也就是当我们向 Gitee 上的代码仓库提交代码之后,并不会触发 Jenkins
的自动构建,得我们手动点击构建按钮,接下来我们再来继续配置,实现自动触发构建。
为了实现自动触发构建,我们需要修改两个地方。
12.1 安装Gitee插件 12.2 修改Jenkins首先在 Jenkins 的当前项目中,配置一下触发构建的规则:
大家注意,在网页上 Jenkins 已经给出了将来要配置的 Webhook 的地址了,大家直接拷贝该地址即可。
# webhook地址 http://192.168.143.175:8080/gitee-project/first%20jenkins # webhook密码 373930de602b51fad08a301b2aca8ab2 12.3 配置Webhook接下来在 Gitee 的项目中,配置 WebHook,在当前项目中,选择管理选项卡,左边菜单点击 WebHooks,然后
点击添加 WebHook。
我们这里的 192.168.143.175 不是公网IP,所以gitee上配置会有问题,这里只演示配置方式。
配置之后我们可以点击测试看是否配置成功。
12.4 修改代码push代码push代码之后就会触发Jenkins自动打包部署。