技术要求
docker -- 应用容器引擎
jenkins -- 基于Java开发的一种持续集成工具
github/git -- 代码托管服务平台
SonarQube -- 代码质量工具
maven -- 项目管理工具
python -- 需要用到脚本
DingTalk -- 钉钉机器人接收消息通知
机器要求
server1 -- jdk安装、jenkins安装(需要使用jdk)
server2 -- docker安装、git安装(需要从github拉取最新代码)、maven安装
server3 -- mysql数据库安装(应用数据库)
server4 -- SonarQube安装
实际情况:一台Tecent2核4G服务器安装部署所有
运行视频
配置流程
1 安装dokcer,docker中部署一个应用、一个数据库
2 jenkins安装部署,由于机器内存限制,jenkins部署到了tomcat
3 linux安装jdk环境,因为jenkins是java开发的,jenkins连接应用服务器/SonarQube服务器需要依赖java环境
4 linux安装git,因为需要使用git命令下载github仓库代码
5 linux安装maven,源码下载完需要打包代码
6 制作git秘钥,秘钥路径:/root/.ssh
7 公钥配置到github上,因为jenkins服务器需要有权限下载代码,测试:ssh git@github.com
8 启动tomcat,访问jenkins
9 jenkins控制台建立节点,每个节点对应一台linux服务器(jenkins服务器和应用部署服务器为一台服务器,不过不影响)
10 jenkins控制台新建任务
任务指定节点:
绑定git源码(需要配置ssh私钥):
github代码提交触发任务执行:
执行shell脚本&配置SonarQube代码扫描:
编写部署脚本,上述步骤的deploy.sh文件:
钉钉机器人通知:
python脚本位置:
11 任务执行
12 钉钉机器人配置&通知效果
机器人配置:
通知效果:
13 SonarQube代码扫描详情预览
参考链接
https://www.cnblogs.com/yufeng218/p/8370670.html
https://blog.csdn.net/devops008/article/details/81773736
https://blog.csdn.net/BoomLee/article/details/86676577