Heycm

Heycm

Jenkins平台搭建和使用案例分享

450
2021-12-17

Jenkins平台搭建和使用案例分享

Jenkins平台搭建

本文环境

centos7

docker

数据盘挂载目录为/data

本文以docker的方式搭建jenkins,建议准备一台干净的系统,避免出现一些不可预知的问题。

拉jenkins镜像,建议拉lts版本

docker pull jenkins/jenkins:lts

run jenkins

docker run -d -p 8080:8080 -p 50000:50000 --restart=always \
-u root \
-v /data/jenkins/data:/data \
-v /data/jenkins/jenkins_home:/var/jenkins_home \
-e JAVA_OPTS=-Duser.timezone=Asia/Shanghai \
--name jenkins jenkins/jenkins:lts

# 参数解释
# -u root 
# -v 

参数解释

-u root

指定容器以root用户运行(jenkins默认容器用户为jenkins,若以此用户运行会出现权限不足的问题)

-v /data/jenkins/data:/data

此目录将用来安装自定义jdk、maven等

-v /data/jenkins/jenkins_home:/var/jenkins_home

jenkins的安装目录,里边有jenkins的所有数据

运行成功后,访问8080端口,出现jenkins的安装界面

需要输入一串秘钥,查看日志复制出来

docker logs <容器id>

输入秘钥后,按推荐安装即可,会安装一下插件,如果安装失败,重试一下,试着不行就跳过

然后会创建一个用户,作为jenkins的管理员

创建完成会走到登录页

image.png

登录进去的界面是这样的,这里我的这个已经做了一个任务,如果是干净的就会有几个新手引导连接在那里

image.png

初始化设置

在系统管理里边,可以安装插件,配置一些凭证比如说git仓库的。
一般推荐安装的话,git已经装好了,这里我们要配置一下jenkins的工作环境

安装Publish Over SSH插件

这个插件,用来登录目标服务器部署项目的

配置 jdk maven

全局管理里边,可以配置多个jdk,可能有的项目要1.8但是有的要17
但首先,jenkins容器里等先有这些jdk,这是-v /data/jenkins/data:/data的用处。

image.png

把这些东西都映射到容器里边的/data目录,maven的配置要配好,换源啊配私服什么的。
完了看jenkins全局配置

image.png

把自动安装去掉,然后填一下jdk路径就可以了,这个路径他是可以识别到的,如果不能,重启一下。
maven同理

image.png

这样这个jdk和maven就配好了。

配置 git 仓库全局凭证

这边是以用户名/密码的方式
看到Manage Credentials 进去有一个jenkins的存储,再进去有一个全局凭证的域,再进去就可以增加自己的凭证

image.png

添加凭证有几种方式可以选择,一般用的多的就是用户名/密码或者SSH
这里我配一个git私服的凭证,用的是用户名和密码

image.png

写好就可以了。

配置目标主机 ssh

配置这个是当jenkins构建项目后,登录对应的主机,部署项目的。
这个是在 系统管理系统设置 里边,找到 Publish Over SSH 设置,看到 SSH Servers

image.png

OK,这个jenkins已经具备构建项目,登录目标服务器部署的能力。



jenkins使用演示

这里做一个构建部署springboot项目为例子,演示jenkins的工作过程,图示:

image.png

创建一个风格自由的项目 demo
配置项目 jdk

image.png

配置代码仓库

image.png

配置构建步骤(构建项目)

image.png

配置构建步骤 (上传项目到目标主机,并执行指定脚本)

增加构建步骤 可以执行多步骤

image.png

至于 run.sh 脚本,没有标准答案,有的人直接执行jar,有的人喜欢打docker镜像执行,所以这个脚本也不尽相同,不会的话百度一下就会了,简单操作的话还是比较简单的。

OK,任务设置已完成,保存退出。

构建项目

image.png

日志输出

image.png

构建成功

image.png

第一次构建的话,可能比较费时间,因为maven要拉依赖什么的,如果是用内网私服,那可能快一些

看到 success 就ok了,去你的目标服务器看一下有没有正常启动就行。