Jenkins-拉取代码

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录


前言

提示:这里可以添加本文要记录的大概内容:

搭建Jenkins服务目的是为了后期做自动化流水线的,因此成功安装Jenkins后,我们需要为后期做流水线搭建Jenkins环境配置,例如:我们使用Jenkins从代码仓库(Gitee或GitLab)上拉取代码。这个过程中,首先保证自己服务器上有Git工具,其次需要Jenkins服务与代码仓库之间做好通信管理--授权认证。认证主要两种方式:用户名-密码认证、SSH用户和密钥。因此Jenkins中需要安装凭证管理插件,使用凭证管理插件来进行服务通信,当Jenkins成功拉取代码后,我们要对项目进行编译、打包。我们知道Java开发的项目,打包需要Maven工具,因此需要在Jenkins服务中配置Maven。


提示:以下是本篇文章正文内容,下面案例可供参考

一、Jenkins环境配置

(一)配置Maven环境

(1)Maven下载

Maven官方下载地址:

c 复制代码
https://maven.apache.org/

Liunx服务器下载时二进制的tar包

(2)将Maven上传服务器

在/opt目录下新建一个 install 文件,用来存放我们所需的安装包

c 复制代码
mkdir /opt/install

(3)安装Maven

创建Maven的安装目录

c 复制代码
mkdir /opt/maven

解压刚才我们上传的Maven的tar包

c 复制代码
tar -xzf apache-maven-3.9.8-bin.tar.gz

将解压的Maven文件移动到我们之前创建的安装文件中 /opt/maven

c 复制代码
mv apache-maven-3.9.8/* /opt/maven

(4)Liunx配置Maven环境

在liunx配置文件中新增maven的环境变量

c 复制代码
vim /etc/profile

添加maven的环境变量

c 复制代码
MAVEN_HOME=/opt/maven
:$MAVEN_HOME/bin # 在PATH后面追加这行命令

为了方便查看配置,我将整个Java环境(在安装Jenkins之前已经安装配置过了)和Maven环境配置信息展示如下:

c 复制代码
# java环境变量
JAVA_HOME=/usr/lib/jvm/java-17-openjdk-17.0.1.0.12-2.el8_5.x86_64
JRE_HOME=/usr/lib/jvm/jre-17-openjdk-17.0.1.0.12-2.el8_5.x86_64
# Maven环境变量
MAVEN_HOME=/opt/maven
PATH=$PATH:$JAVA_HOME/bin:$MAVEN_HOME/bin
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib

(5)重新加载配置文件

重新加载配置文件

c 复制代码
source /etc/profile

查看环境配置是否生效

c 复制代码
java --version
mvn --version

(6)Maven配置中央仓库地址

安装完Maven后,我们还需要配置Maven中央仓库地址,以及Maven下载的Jar包的存放路径

进入Maven的配置文件目录

c 复制代码
cd /opt/maven/conf

编辑setting文件

c 复制代码
vim settings.xml

将Maven下载的jar修改为当前这个文件目录下

c 复制代码
/usr/local/repo

如果你的服务器上没有这个文件 /usr/local/repo 记得手动创建这个文件,并且设置文件权限(关键重点,否则后续打包会失败!!!!)

c 复制代码
mkdir /usr/local/repo # 创建文件
chmod 777 /usr/local/repo #将这个文件修改为所有人可用

这里配置中央仓库地址可以任意,也可以将你本地的开发环境的Maven中央仓库地址复制过来。

c 复制代码
<mirror>
 <id>mirrorId</id>
  <mirrorOf>repositoryId</mirrorOf>
  <name>Human Readable Name for this Mirror.</name>
  <url>https://repo.maven.apache.org/maven2</url>
</mirror>

以下命令可以检测仓库地址是否可用

c 复制代码
curl -I https://repo.maven.apache.org/maven2
https://maven.aliyun.com/mvn/view 

(7)Jenkins配置环境

刚刚上述过程只是我们Liunx服务器上配置 jdk 和 Maven 的环境,Jenkins是无法识别我们服务器上Java和Maven的配置,因此我们需要告诉Jenkins,我们服务器所安装jdk和maven配置路径。

1、全局配置

在系统管理 -> 全局工具配置 -> JDK安装 和 Maven安装

2、系统配置

在系统管理 -> 系统配置 ->全局属性 ->环境变量

记得上述操作需要点击 应用并保存。至此,Jenkisn中的Java和Maven环境搭建完成。

二、安装Git工具

(一)检查本机是否安装Git

代码如下(示例):

c 复制代码
git --version

没有输出git版本号就是未安装git

(二)安装git工具

c 复制代码
yum install git -y

(三)检查git是否安装成

c 复制代码
git --version

出现git版本信息代表安装成功

三、Jenkins下载插件

Jenkins下载插件在 系统管理 ->插件管理 -> 点击可选插件,输入需要安装的插件名称,查询,点价安装即可

(一)Git插件

这个插件是为了方便后续我们去代码仓库拉取代码

(二)Maven插件

点击 新建任务 ,若新建任务中没有,Maven构建选项,按照上述Jenkins下载插件哪里,输入Maven,点击安装即可,就会出现Maven构建选项。

这个插件是为了Jenkins拉取代码后调用Maven工具对项目进行打包

(三)凭证插件

在系统管理下没有凭证管理这个插件,也是按照上述安装插件方式进行安装,安装重启Jenkins后就会看到凭证管理,凭证管理插件是这个-Credentials Binding Plugin

四、拉取代码

(一) 账号密码凭证拉取

因为我们的案例是一个微服务项目,因此我们这里就用Maven来构建一个简单拉取代码的流水线

配置成功后

学会通过控制台查看日志信息

进入到jenkins的默认工作目录,查看我们拉取的代码

c 复制代码
cd /var/lib/jenkins/workspace

(二) SSH凭证拉取代码

上述我们使用用户名和密码凭证来拉取代码,假设项目之前做Jenkins的流水线采用的Gitee账号的密码忘记,或者账号注销了,那咱们流水线拉取代码就无法实现了,因此对于服务之间之间认证,最好采用SSH认证。

我们可以使用SSH生成一份公钥和私钥密文文件,将公钥存在在代码仓库(Gitee或GitLab)服务上,然后在Jenkins服务中存放私钥。后续通过SSH认证拉取代码即可。

(一)生成公钥和私钥

c 复制代码
ssh-keygen -t rsa

(二)查看生成的秘钥

c 复制代码
cd /root/.ssh
ll

(三)将生成的公钥存放在Gitee中

登录Gitee后,点击头像,选择设置,找到SSH公钥

我们可以先在服务器上验证是否能访问Gitee平台

c 复制代码
ssh -T git@gitee.com

(四)使用SSH凭证拉取代码

重新新建一个maven构建任务,在任务的配置->源码管理->Git,选择SSH凭证认证

五、Jenkins的一些配置

(一)设置Jenkins的插件下载地址

我们使用Jenkins会不断更新下载新的插件,当我们安装jenkins后,jenkins的默认下载地址是国外的,因此我们需要将jenkins的默认下载地址修改为国内一些开源地址,这样能提升jenkins下载插件速度

(1)默认下载文件

c 复制代码
/var/lib/jenkins/updates/default.json

(2)修改文件默认下载地址

执行如下命令之前,可以查看 default.json 文件中的下载地址,然后执行下面命令后,再次查看是否替换成功

c 复制代码
sed -i 's/https:\/\/updates.jenkins.io\/download/https:\/\/mirrors.tuna.tsinghua.edu.cn\/jenkins/g' default.json && sed -i 's/https:\/\/www.google.com/https:\/\/www.baidu.com/g' default.json

(3)修该插件设置的默认URL

c 复制代码
https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json

(二)设置Jenkins核心配置

我们安装Jenkins后,Jenkins的默认端口就是8080对吧,假设我们服务器上在安装jenkins之前就被占用了,或者我们之后部署其他项目时,需要用到8080端口,那么这样就会造成jenkins服务与其他部署的服务端口冲突,因为我们需要了解jenkins的一些核心配置

(1)Jenkins的系统配置文件

此文件包含了jenkins默认端口号,用户组,工作目录

c 复制代码
vim /usr/lib/systemd/system/jenkins.service

六、拉取代码打包

将用户名-密码凭证构建的项目和SSH凭证的项目分别构建,找到拉取的项目的target包,然后使用 java -jar xxx.jar命令运行项目

然后进入到jenkins的工作目录,运行jar包

浏览器打开服务的swagger查看项目是否能成功访问


总结

以上就是jenkins拉取代码的简单过程,这种方式只是简单测试jenkins中的环境是否配置成功,熟悉jenkins中的一些常用插件。后续会通过pipline脚本来做CI/CD操作

相关推荐
吃肉不能购1 小时前
Label-studio-ml-backend 和YOLOV8 YOLO11自动化标注,目标检测,实例分割,图像分类,关键点估计,视频跟踪
运维·yolo·自动化
学Linux的语莫1 小时前
Ansible使用简介和基础使用
linux·运维·服务器·nginx·云计算·ansible
qq_312920111 小时前
docker 部署 kvm 图形化管理工具 WebVirtMgr
运维·docker·容器
学Linux的语莫1 小时前
搭建服务器VPN,Linux客户端连接WireGuard,Windows客户端连接WireGuard
linux·运维·服务器
黑牛先生1 小时前
【Linux】进程-PCB
linux·运维·服务器
Karoku0661 小时前
【企业级分布式系统】ELK优化
运维·服务器·数据库·elk·elasticsearch
安迁岚3 小时前
【SQL Server】华中农业大学空间数据库实验报告 实验三 数据操作
运维·服务器·数据库·sql·mysql
打码人的日常分享3 小时前
商用密码应用安全性评估,密评整体方案,密评管理测评要求和指南,运维文档,软件项目安全设计相关文档合集(Word原件)
运维·安全·web安全·系统安全·规格说明书
追风赶月、4 小时前
【Linux】线程概念与线程控制
linux·运维·服务器
szc17674 小时前
docker 相关命令
java·docker·jenkins