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操作

相关推荐
乘云数字DATABUFF3 天前
5分钟部署开源APM Databuff:OpenTelemetry全链路追踪入门实战
运维·后端
荣--4 天前
一键部署不是为了省时间 —— 它是把"买来的 PaaS"变成"自己的平台"的拐点
运维·zabbix·工程化·一键部署·平台化·边界设计
江华森4 天前
动手实战学 Docker — 从零到集群编排完全指南
运维
Avan_菜菜5 天前
FRP 内网穿透完整实战:从 HTTP 映射到 HTTPS 自签代理
运维·nginx·https
SelectDB6 天前
Litefuse 开源并推出单进程轻量模式,25 秒就能跑起来的 Agent 可观测与评估平台
运维·后端·自动化运维
XIAOHEZIcode8 天前
Linux系统鼠标偏移常见原因以及修复方案
linux·运维·游戏
用户0328472220708 天前
如何搭建本地yum源(上)
运维
大树8811 天前
金刚石散热越强,管路越先见顶
大数据·运维·服务器·人工智能·ai
摇滚侠11 天前
Linux CentOS7 rpm 安装 MySQL 5.7
linux·运维·mysql
霸道流氓气质11 天前
领域驱动设计(DDD)在 Spring Boot 微服务中的实践指南
运维·spring boot·微服务