服务器之家:专注于VPS、云服务器配置技术及软件下载分享
分类导航

Linux|Centos|Ubuntu|系统进程|Fedora|注册表|Bios|Solaris|Windows7|Windows10|Windows11|windows server|

服务器之家 - 服务器系统 - Centos - 在CentOS7上搭建Jenkins+Maven+Git持续集成环境的方法

在CentOS7上搭建Jenkins+Maven+Git持续集成环境的方法

2022-08-10 10:41神马小窝 Centos

这篇文章主要介绍了在CentOS7上搭建Jenkins+Maven+Git持续集成环境的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

本文以部署 spring boot + maven 项目为例,使用码云作为代码托管仓库,在 centos 7 上搭建 jenkins 持续集成环境。

1. 准备工作

1.1 安装 java 环境

jenkins 是基于 java 开发的持续集成工具,需要在 java 环境下运行。用下面命令查看系统是否已安装 java:

?
1
yum list installed | grep jdk

如果没有,使用 yum search 命令查找 openjdk 版本,选择合适的 jdk 进行安装:

?
1
2
yum search openjdk
yum -y install java-1.8.0-openjdk-devel

验证 java 是否安装成功:

?
1
java -version

1.2 安装 maven

依次运行以下两条命令:

?
1
2
wget http://repos.fedorapeople.org... -o /etc/yum.repos.d/epel-apache-maven.repo
yum -y install apache-maven

验证 maven 是否安装成功:

?
1
mvn -v

1.3 安装 git

直接通过 yum 安装,安装完成后查看版本验证是否安装成功:

?
1
2
yum -y install git
git --version

2. 安装和配置 jenkins:

2.1 安装 jenkins

依次运行以下三条命令:

?
1
2
3
sudo wget https://pkg.jenkins.io/redhat... -o /etc/yum.repos.d/jenkins.repo
sudo rpm --import https://pkg.jenkins.io/redhat...
yum -y install jenkins

如果之前从 jenkins 导入过 key,那么 rpm --import 将失败,因为已经有一个 key 了。忽略它,继续执行 install 即可。

2.2 启动 jenkins

启动 jenkins,并且设置开机自启动:

?
1
2
systemctl start jenkins.service
chkconfig jenkins on

jenkins 默认使用8080端口,访问以下链接即可看到 jenkins 的 web 界面:

?
1
http://<服务器地址>:8080

如果无法访问,检查一下防护墙,是否有开放端口,或使用命令 netstat -ntulp 查看端口是否被占用。

2.3 进入 jenkins

首次进入 jenkins 需要输入管理员密码,使用以下命令查看初始密码:

?
1
cat /var/lib/jenkins/secrets/initialadminpassword

选择默认的 install suggested plugins 安装插件,等待安装完成后依照步骤创建用户,创建完成后即可登入。

2.4 配置 jenkins

进入 manage jenkins -> global tool configuration,依次配置 jdk、git 和 maven 路径。

2.4.1 查看 jdk 路径

使用 yum 安装的软件不会帮我们配置环境变量,直接使用命令echo $java_home 是看不到路径的。

先用以下命令查看路径:

?
1
which java

看到的结果是 /usr/bin/java ,但实际上这只是个软连接,并不是 jdk 真正的所在目录。

继续使用以下命令查看:

?
1
ls -l /usr/bin/java

看到 /usr/bin/java 指向了 /etc/alternatives/java,很遗憾,还不是我们要找的真正路径。

继续追踪:

?
1
ls -l /etc/alternatives/java

结果指向了 /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.191.b12-1.el7_6.x86_64/jre/bin/java,不同版本的 jdk 目录名可能有些不同,这就是 jdk 真正所在的地方。

在CentOS7上搭建Jenkins+Maven+Git持续集成环境的方法

同理可获得 maven 的所在路径。

在CentOS7上搭建Jenkins+Maven+Git持续集成环境的方法

在CentOS7上搭建Jenkins+Maven+Git持续集成环境的方法

在CentOS7上搭建Jenkins+Maven+Git持续集成环境的方法

2.4.2 安装和配置插件

进入 manage jenkins -> manage plugins,搜索并安装 publish over ssh maven integration 两个插件, git plugins 插件已经默认安装上了,我们无需再安装。

配置 ssh 免密码登录

在配置插件之前,我们先在 jenkins 服务器上生成密钥对。运行以下命令切换到 jenkins 用户:

?
1
sudo su jenkins

如果无法切换,则打开 /etc/passwd 文件,找到 jenkins 那一行,将 /bin/fasle 改成 /bin/bash。

切换成功后,命令提示符的用户名可能是 bash-4.2$,想要正常显示用户名的话,先切换回 root 用户,执行以下操作:

编辑文件 vi ~/.bash_profile
加入语句 export ps1='[u@h w]$'
立即生效 source ~/.bash_profile

再切换到 jenkins 用户,就显示正常了。接下来运行以下命令生成密钥对:

?
1
ssh-keygen -t rsa

一路按回车完成,会在 /var/lib/jenkins/.ssh/ 目录下生成 id_rsa 和 id_rsa.pub两个文件。

将 id_rsa.pub 文件里的内容追加到应用服务器上的 /root/.ssh/authorized_keys 文件末尾,每行一个 key,注意是应用服务器。重启应用服务器上的 ssh 服务:

?
1
systemctl restart sshd.service

现在 jenkins 可以免密码登录应用服务器了,以 jenkins 用户身份运行命令来测试一下:

?
1
ssh root@<应用服务器地址>

首次连接会有确认提示,输入 yes 即可。这步很重要,如果第一次没有手动连接确认,jenkins 会连不上。

配置 public over ssh 插件

进入 manage jenkins -> configure system,填写 publish over ssh 设置。

在CentOS7上搭建Jenkins+Maven+Git持续集成环境的方法

path to key:填写刚刚生成的 id_rsa 密钥文件的路径。
name:服务名,随意填写。
hostname:应用服务器的 ip 地址或域名。
username:登录应用服务器的用户身份。
remote directory:远程目录, 应用服务器上存放应用的目录,jenkins 会把应用拷贝至此目录下。请确保此目录存在。

save~

3. 部署 maven 项目

点击 new item 新建任务,随意输入任务名,选择 maven project, ok。

在general,勾选 discard old builds,可以设置最多保留构建文件多少天,和最多保留多少个构建文件,不然每次构建生成的文件都会保留,占用磁盘空间。

在CentOS7上搭建Jenkins+Maven+Git持续集成环境的方法

配置远程代码仓库地址,jenkins 会从该地址拉取代码。注意此处如果提示无法读取仓库,有可能是:

  • 公钥没有添加到远程代码服务器的 authorized_keys 文件里,上面配置 ssh 免登录是 jenkins 访问应用服务器的,jenkins 访问代码服务器也同样需要配置,除非应用服务器和代码服务器是同一台机器。如果使用码云或 github 等代码托管平台,会有相应的 ssh key 设置页。
  • 公钥已添加到相应文件里,但没有手动连接第一次。解决方法很简单,以 jenkins 用户身份手动 clone 一次仓库,确认 yes 即可。

在CentOS7上搭建Jenkins+Maven+Git持续集成环境的方法

勾选 add timestamps to the console output,在控制台输出构建过程。

在CentOS7上搭建Jenkins+Maven+Git持续集成环境的方法

填写 maven 打包指令,-dmaven.test.skip=true 表示跳过测试。

在CentOS7上搭建Jenkins+Maven+Git持续集成环境的方法

勾选 run only if build succeeds,选择 send files or execute commands over ssh

在CentOS7上搭建Jenkins+Maven+Git持续集成环境的方法

接下来就是设置 build 完之后,把 jar 包从 jenkins 服务器拷贝到应用服务器上,并运行。

在CentOS7上搭建Jenkins+Maven+Git持续集成环境的方法

name:选择之前创建的服务。
source files:maven 打包后生成的 jar 包,即要拷贝到应用服务器运行的程序,可填多个,英文逗号分隔。
remove prefix:忽略前缀,我们只需要拷贝 target 下的 jar 包,不需要在应用服务器上生成 target 目录。
remote directory:目标文件夹,会继承全局设置,例如此处会把 jar 包拷贝到 /usr/local/app/demo 目录下。
exec command:拷贝完成后,在应用服务器上执行的命令或脚本。

save -> build now,构建成功后,打开浏览器访问你的站点吧~

4. 总结

其实整个流程不是很复杂,jenkins 从远程代码库拉取代码 -> 调用 maven 指令将项目打包 -> jenkins 将打包好的文件拷贝到远程应用服务器 -> 在远程应用服务器上执行 shell 指令,启动程序。其中 jenkins 两次远程操作都是通过 ssh 完成的。
通过 yum 安装 jenkins 和 java 比较方便,但是在配置的时候相对麻烦,安装路径要自己找,配置 ssh 的时候也是要用 jenkins 用户身份,而不是 root,如果采用解压缩包的方式就比较自由一些。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持服务器之家。

原文链接:https://segmentfault.com/a/1190000017741598

延伸 · 阅读

精彩推荐
  • CentosCentOS 6.5 web服务器apache的安装与基本设置

    CentOS 6.5 web服务器apache的安装与基本设置

    这篇文章主要介绍了CentOS 6.5 web服务器apache的安装与基本设置,需要的朋友可以参考下...

    51CTO11272022-02-16
  • Centoscentos基础知识扩展

    centos基础知识扩展

    1. 请回答,32位和64位有什么区别呢?什么时候安装32位的,又什么时候安装64位操作系统呢?如何查看系统是32位的还是64位的? 我们所谓的32位、64位指的是C...

    centos之家4572019-07-09
  • CentosCentOS7安装iptables防火墙的方法

    CentOS7安装iptables防火墙的方法

    本篇文章主要介绍了CentOS7安装iptables防火墙的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧...

    太清7302021-12-22
  • CentosCentOS EXT4文件系统的详解

    CentOS EXT4文件系统的详解

    今天小编为大家带来的是CentOS EXT4文件系统的详解;Ext4 可以提供更佳的性能和可靠性,还有更为丰富的功能:希望对大家会有帮助;有需要的朋友可以过来...

    CentOS之家4362019-06-30
  • Centos双系统计算机怎样卸载其中一个?

    双系统计算机怎样卸载其中一个?

    原来电脑装的是windows和redflag linux,后来感觉不爽,就准备卸载linux。于是,开始了卸载之旅: 1、在windows下的我的电脑-》管理-》磁盘管理,会看到没有名...

    服务器之家7932019-10-11
  • Centos在RHEL系统中使用CentOS的yum源的方法

    在RHEL系统中使用CentOS的yum源的方法

    这篇文章主要介绍了在RHEL系统中使用CentOS的yum源的方法,同样也适用于Fedora等Linux系统,需要的朋友可以参考下 ...

    大步's blog5482019-09-11
  • CentosCentOS 6.5平台实现快速部署FTP的方法

    CentOS 6.5平台实现快速部署FTP的方法

    这篇文章主要介绍了CentOS 6.5平台实现快速部署FTP的方法,结合实例形式分析了CentOS6.5平台配置与部署FTP的具体步骤、相关操作命令与注意事项,需要的朋友可...

    ASIH11992022-03-08
  • Centos详解如何在 CentOS 7 中安装或升级最新的内核

    详解如何在 CentOS 7 中安装或升级最新的内核

    这篇文章主要介绍了详解如何在 CentOS 7 中安装或升级最新的内核,具有一定的参考价值,感兴趣的小伙伴们可以参考一下。...

    Matei Cezar10122022-01-05