背景

公司的前端、后端构建及部署工作都是人工去做,随着业务扩大,项目迭代速度变快,人员增多,各种问题都暴露出来,将通过一个简单案例分享一下基于Jenkins的前后端自动化工作流搭建的过程,搭建完这套工作流,我们只需要在本地发起一个git提交,剩下的单打包构建,代码部署,邮件提醒等功能全部自动化完成,让持续集成、持续交付、持续部署变得简单易操作,真正解决人工构建部署的诸多问题。

Jenkins是什么?

Jenkins 是一款业界流行的开源持续集成工具,广泛用于项目开发,具有自动化构建、测试和部署等功能。

War包安装

官网下载Jenkins War包 命令启动,java -jar jenkins.war --httpPort=8080 可以用-server -Xms1024m -Xmx2048m -XX:PermSize=256m -XX:MaxPermSize=512m限制Jenkins占用内存 3. 浏览器打开http://127.0.0.1:8080/

4. 找到初始化密码

jenkins结果可视化 jenkins视图管理_软件测试

5. 选择默认插件

jenkins结果可视化 jenkins视图管理_运维_02

 6. 等待下载完成后

jenkins结果可视化 jenkins视图管理_jenkins结果可视化_03

7. 设置登陆密码

下载插件 Manage Jenkins->Manage Plugins->高级(最下面)

增加 下载速度 替换默认Url

http://mirror.esuni.jp/jenkins/updates/update-center.json

Manage Jenkins->Manage Plugins->可选插件

安装以下插件

1、Publish Over SSH 用于连接远程服务器 2、Deploy to container 插件用于把打包的应用发布到远程服务器 3、Maven Integration plugin 4、Pipeline Maven Integration Plugin 5、Gitlab Hook Plugin(git提交的时候自动编译) 6、GitLab Plugin(git提交的时候自动编译) 7、GitLab Authentication Plugin (git提交的时候自动编译) 8、WebHook (git提交的时候自动编译)

9、Locale 下载完成后去全局配置里面 Locale->设置zh-CN

jenkins结果可视化 jenkins视图管理_软件测试_04

1、Dingding[钉钉] Plugin 钉钉Jenkins通知器 2、Multiple SCMs(配置多个git) 3、Git Parameter Plug-In (参数化配置)

全局配置

Manage Jenkins->Global Tool Configuration

jenkins结果可视化 jenkins视图管理_软件测试_05

Publish over SSH (配置远程推送的服务器可以多个)

jenkins结果可视化 jenkins视图管理_运维_06

新建maven 项目

点击新建Item

 

jenkins结果可视化 jenkins视图管理_jenkins_07

jenkins结果可视化 jenkins视图管理_软件测试_08

 备注:如果有父子关系的程序,父工程先install到仓库里面。

或者下载插件:Multiple SCMs(配置多个git)

jenkins结果可视化 jenkins视图管理_自动化测试_09

强制指定自定义maven 仓库 job–>configure–>Build–>Goals and options: clean package -Dmaven.repo.local=D:\dev\maven3.1.1\m2repository

如果要提交代码后自动化构建 需要配置:(需要权限)

jenkins结果可视化 jenkins视图管理_jenkins结果可视化_10

jenkins结果可视化 jenkins视图管理_自动化测试_11

 配置成功后

jenkins结果可视化 jenkins视图管理_jenkins_12

点击test可以测试自动部署

Jenkins参数化配置(选择分支部署) 1、下载插件Git Parameter

2、配置参数属性

jenkins结果可视化 jenkins视图管理_软件测试_13

 

jenkins结果可视化 jenkins视图管理_自动化测试_14

3、最终效果

jenkins结果可视化 jenkins视图管理_运维_15

Jenkins配置钉钉通知

1、配置钉钉机器人

jenkins结果可视化 jenkins视图管理_jenkins_16

 2、安装钉钉通知插件

jenkins结果可视化 jenkins视图管理_jenkins结果可视化_17

jenkins结果可视化 jenkins视图管理_软件测试_18

3、配置项目构建后通知

jenkins结果可视化 jenkins视图管理_软件测试_19

jenkins结果可视化 jenkins视图管理_jenkins_20

4、配置Jenkins发送消息给钉钉

jenkins结果可视化 jenkins视图管理_运维_21

 5、最终结果

jenkins结果可视化 jenkins视图管理_软件测试_22

Jenkins权限管理

安装插件Role-based Authorization Strategy 可以访问:Jenkins权限管理参考

Jenkins服务器跨服务免密执行shell脚本

场景:很多情况下Jenkins都是单独服务器部署,发送已经打包好的服务包给目标服务器启动。不可避免有在定制化操作:

例如:发送目标服务器前,先备份当前服务器运行的服务包,就需要定制化的shell脚本去执行这个操作。每次输入密码肯定是不靠谱的。 所以需要Jenkins服务器免密登陆到目标服务器的配置。

附录 docker部署不建议使用,推荐使用war启动Jenkins下载镜像

docker pull jenkins/jenkins:lts

安装镜像 

docker run --name jenkins --user=root -p 8080:8080 -p 50000:50000 -v /Users/wei/Documents/jenkins_home:/var/jenkins_home -d jenkins/jenkins:lts

 卸载容器

docker rm -f $(docker ps -a |  grep "jenkins"  | awk '{print $1}')

 

总结:

感谢每一个认真阅读我文章的人!!!