Jenkins自动化部署项目
经过一天的学习终于成功使用Jenkins搭建了一套自动化部署环境,用在了公司的后台的微服务自动化部署,为了加深记忆以及广大程序员学习,特做出了总结,以便让后续开发者有迹可寻。
项目部署原理:
首先项目部署到git服务器,每当我们代码完成提交后,我们会通过git客户端上传代码到git服务器,然后我们会通过jenkins自动化部署,自动化部署的过程为,通过git客户端从服务器拉取代码到本地,编译打包本地代码,上传打包完成后的代码到linux服务器,通过脚本启动linux环境中刚上传打包好的代码。此时我们自动化部署就完成了。
项目部署准备:
1. 项目部署环境
1) 前端nginx服务
负载均衡nginx 110.145.192.220:8888
静态服务器1 nginx1 110.145.192.220:8887
静态服务器2 nginx2 110.145.192.220:8889
前端nginx部署环境可以参考https://blog.youkuaiyun.com/jzc12345611/article/details/100701761
2) zookeeper注册中心
110.145.192.221:2181
3) 配置中心configserver
110.145.192.216:8080
4) 微服务地址
gteway1 110.145.192.215:8092
gteway2 110.145.192.215:8093
其他微服务,端口为配置类
5) 数据库
110.145.113.22:1521
url: jdbc:oracle:thin:@110.145.113.22:1521/orcl
username: ouos
password: ouos
2. git服务器代码库
http://110.146.121.138:8091/
3. jenkins服务器
http://110.146.126.140:8090/jenkins/
4. 部署脚本
脚本资料在网盘已经给出
项目部署步骤:
1. 从git服务器拉取代码
git地址:
http://110.146.121.138:8091/summary/?r=ouos-parent.git 用户名密码联系管理员
1)config-file:
配置测试环境jar包的配置文件(微服务的配置)
dataconfig目录下
bootstrap.yml连接测试环境配置中心,
dfzq-grpc-config.properties 连接注册中心的地址并注册
gateway目录下
bootstrap.yml连接测试环境注册中心,曝漏网关的地址端口8099
dfzq-grpc-config.properties 连接注册中心的地址并注册
ouosserver目录下
bootstrap.yml连接测试环境注册中心
dfzq-grpc-config.properties 连接注册中心的地址并注册
2)Config-file-dev:
配置开发环境jar包的配置文件(微服务的配置)
dataconfig目录下
bootstrap.yml连接测试环境配置中心,
dfzq-grpc-config.properties 连接注册中心的地址并注册
gateway目录下
bootstrap.yml连接测试环境注册中心,曝漏网关的地址端口8092
dfzq-grpc-config.properties 连接注册中心的地址并注册
ouosserver目录下
bootstrap.yml连接测试环境注册中心
dfzq-grpc-config.properties 连接注册中心的地址并注册
gateway2目录下
bootstrap.yml连接测试环境注册中心,曝漏网关的地址端口8093
dfzq-grpc-config.properties 连接注册中心的地址并注册
注意:config-file-dev在Config-file的基础上添加了gateway2该网关是新增了的网关,对应前端做负载均衡用
3)ouos-parent:
开发代码,项目代码存放地址,需要打成jar包的多个微服务项目
4)stages:
Ansible-playbook 的运行host 配置,以及用到的脚本
ansibleHosts配置可连接到项目的网段,jenkins服务器连接到的地址应该在改网段内
build-ouos-parent.yml测试环境打包
build-ouos-parent-dev.yml 开发环境第一次打包
build-ouos-parent-dev2.yml 开发环境第二次打包
control-accountmgr.yml 查看启动状态
deploy-ouos-parent.yml 测试环境部署项目到服务器
deploy-ouos-parent2.yml 开发环境部署项目到服务器
ouos-gateway.sh.j2 测试环境以及开发环境第一次启动gateway服务
ouos-gateway-2.sh.j2开发环境第二次启动gateway2服务
ouos-dataconfig.sh.j2 启动dataconfig服务的脚本
ouos-queryserver.sh.j2 启动查询服务的脚本
2. Jenkins部署:
1)登录jenkins
http://110.146.126.140:8090/jenkins/ 用户名密码联系管理员
2)找到部署项目的选项
登录成功后按照以下步骤操作
第一次构建
大营运-> devops-开发环境-> Build with Parameters-> mode-name选择all -> 开始构建
这时项目开始构建部署了,如果想查看日志点击构建项目的时间进程条即可
因为开发环境为集群环境需要多部署一个gateway2所以需要构建两次
第二次构建
大营运 ->devops-开发环境->Build with Parameters ->mode-name选择gateway2 -> 开始构建
构建成功后会在日志中显示Finished: SUCCESS字眼,且构建条的颜色为绿色
如果构建失败在日志中显示Finished: falture字眼,且构建条的颜色为红色
部署的微服务有:ouos-server, gateway,dataconfig,gateway2服务,其中gateway2要在开发环境的第二次部署时部署。
3. Jenkins其他参数介绍
Refspec:
origin/master
origin/dev
选择代码分支
Force:
勾选是重新拉代码打包
不勾选跳过打包,直接用上次打包的进行部署
IPs:
部署机ip。输入对应环境的IP,多个ip用逗号隔开
repo_name:
项目名称
app_name:
应用名称
model_name:
模块名称,all代表在目标主机上部署所有model.可选项:代表各类微服务,如果后续添加微服务则需要添加各类微服务
All
dataconfig
ouos-gateway
ouos-query-server
ouos-gateway2
git_dir:
源码所在目录
build_dir:
打包路径
Nodes:
节点
buildfile_tag:
构建文件的标记,如1.0-SNAPSHOT
4. 构建Shell脚本
项目部署拓扑图:
项目部署拓扑图地址:https://www.processon.com/diagraming/5d9ec772e4b002a6447b9640
项目部署拓扑图截图如下: