Jenkins
Jenkins介绍
-
Jenkins
是一个开源软件项目 - 起源于
Hudson
(Hudson是商用的) - 是基于Java开发的可扩展的持续集成引擎
- 功能 :
- 监视持续重复的工作
- 旨在提供一个开放易用的软件平台
- 是软件项目可以进行持续集成
- 特点 :
- 部署简单 , 可以在
Servlet
中运行 , 也可以独立运行 - 用户界面友好 , 基于
Web
页面实现所有操作 - 能够构建各种风格的项目
- 有大量插件可供选择
- 支持各种
SCM
工具 , 例如 :Git
,SVN
- 支持跨平台部署
- 构建历史自动管理 , 便于查阅
-
Jenkins
使用Git+GitLab+Jenkins
实现CI/CD
流程
Jenkins安装
部署OpenJDK环境
- 安装
OpenJDK
环境yum -y install java-11-openjdk-devel.x86_64
- 创建JDK环境软链接
ln -s /usr/lib/jvm/java-11-openjdk-11.0.15.0.9-2.el8_5.x86_64/ /usr/lib/jvm/jdk
- 声明
JAVA_HOME
环境变量
vim /etc/bashrc
//末尾添加export JAVA_HOME="/usr/lib/jvm/jdk/"
export PATH=${JAVA_HOME}/bin/:$PATH
- 刷新当前
bash
环境source /etc/bashrc
- 查看
JAVA_HOME
变量echo ${JAVA_HOME}
- 查看
Java
的执行程序which java
- 查看
Java
版本java -version
安装工具相关软件
- 安装
Git
用于拉取代码 ,postfix
用于发邮件yum -y install git postfix
安装Jenkins
- 下载安装包
jenkins-2.361.4-1.1.noarch.rpm
- 安装
Jenkins
yum -y install jenkins-2.361.4-1.1.noarch.rpm
- 启动
Jenkins
服务systemctl start jenkins.service
- 设置
Jenkins
开机自启动systemctl enable jenkins.service
- 确认8080端口被监听
ss -antpul | grep java
Jenkins初始化
- 获取
Jenkins
初始化密码cat /var/lib/jenkins/secrets/initialAdminPassword
- 浏览器访问: http://
Jenkins主机IP地址
:8080/ , 本次使用IP地址为192.168.88.30
- 从提示未知获取
Jenkins
初始密码 , 将初始密码复制到文本框中 , 点击继续
- 如果主机可以联网 , 在此步骤可以联网安装必要插件 ;如果是断网环境, 提示
Jenkins
已离线,点击跳过插件安装 , 后续离线部署插件.
- 如果想自定义管理员用户 , 可以设置 . 实验环境下直接点击下方使用
admin
账户继续以admin
用户身份使用Jenkins
- 此处生成访问
Jenkins
实例的地址 , 保持默认即可 , 点击保存
- 跳出Jenkins已就绪的页面 , 点击开始按钮进入
Jenkins
管理页面
- 页面跳转至
Jenkins
仪表盘 , 此时登录用户的身份为admin
, 默认为英文页面 , 安装了包的情况下为中文;由于当前使用的是初始化密码登录 , 点击admin
旁边的小三角 , 下拉菜单选择Configure
/设置
, 准本更新admin
用户密码
- 进入admin用户配置页面后往下拉找到
Password
部分 , 清理掉文本框中原有的密码 , 更新admin
用户密码 , 推进使用1234.com
, 与GibLab
保持一致Git基础(2)_GitLab ; 更新后需要重新登录,确认使用新密码可以登录.
离线部署Jenkins插件
使用线上安装插件容易造成版本不符
- 查看已安装的插件
ls /var/lib/jenkins/plugins/
- 确认插件包
jenkins_plugins.tar.gz
- 解压
Jenkins
插件,保留文件归属tar -xpfP jenkins_plugins.tar.gz
- 确认该目录下文件归属
ls -l /var/lib/jenkins/plugins/
- 重启
Jenkins
加载插件systemctl restart jenkins.service
- 确保监控端口
ss -antpul | grep java
Jenkins工程构建
- 点击左侧导航栏新建任务 , 创建
Jenkins
工程任务 - 填写工程名成为
HISFONTEND
, 工程风格选择自由风格
- 填写工程描述信息 , 方便其他成员了解工程内容;勾选参数化构建过程 , 参数选择
Git参数
- 定义
Git参数
为version
,类似于Shell变量
, 工程配置中可以调用 ;参数描述信息 ;参数类型选择分支或标签;参数默认值origin/master
- 源码管理选择
Git
, 填写HIS
前端代码的GitLab
项目地址 , 此处带有验证功能 , 如果访问不到项目下方会有红色提示信息;指定分支调用上方定义的构建参数${version}
, 便于构建时拉去不同版本的代码;保存并测试构建 - 定位到源码管理部分 , 最下方的
Additional Behaviors
添加额外行为选择检出到子目录
, 配置子目录名称 , 选择掉同上方的构建参数作为子目录后缀HIS-FONTEND-${version}
或 留白**
- 点击保存后跳转到工程管理页面 , 左侧选择
Build with Parameters
, 右侧构建参数选择v1
版本 , 点击开始构建 , 测试代码拉取是否创建子目录. - 确认拉去代码情况, 查看Jenkins工作目录
ls /var/lib/jenkins/workspace/
- 确认拉取到的子目录
ls /var/lib/jenkins/workspace/HIS-FONTEND/
ls /var/lib/jenkins/workspace/HIS-FONTEND/HIS-FONTEND-v1/
- 清理Jenkins工作目录,节省空间
rm -rf /var/lib/jenkins/workspace/*
文件内容较大时 ,将下载代码进行打包
- 点击配置进入
HIS-FONTEND
工程配置页面 , 本次目标为将拉去下来的代码进行打包工作 - 因为最终要实现工作目录自动清理 , 所以此时删除检出到子目录的动作配置 , 便于后续操作
Jenkins
工程构建过程中可以调用shell命令, 可以通过执行shell命令完成代码打包操作 , 定位到Build Steps
, 构建步骤 , 选择增加构建步骤-执行shell
- 添加要执行的shell命令 ,
Jenkins
工程构建过程中工作目录为/var/lib/jenkins/workspace/project
, 所以可以使用相对路径
- 删除拉取到
Jenkins
本地目录中的版本库rm -rf .git
- 对代码进行打包操作
tar -zcf fontend.tar.gz *
- 保存后使用
v1
参数开始构建 , 查看构建历史列表 , 确认本次构建是否成功 , 进入控制台查看详细信息
- 确认拉去代码情况, 查看Jenkins工作目录
ls /var/lib/jenkins/workspace/
- 确认拉取到的子目录
ls /var/lib/jenkins/workspace/HIS-FONTEND/
ls /var/lib/jenkins/workspace/HIS-FONTEND/HIS-FONTEND-v1/
- 清理Jenkins工作目录,节省空间
rm -rf /var/lib/jenkins/workspace/*