发布拓扑
1. 拓扑图
2. 流程说明:
- Git 插件从 Git Server 上面拉取源代码.
- Maven 插件将源代码安装我们设定的指令进行编译打包,存放于项目的 WorkSpace.
- Publish Over SSH 插件将 WorkSpace 中准备好的数据发送到跳板机
- 跳板机上面的发布脚本将数据同步到 Target Server
3. 细节说明
Maven 如何对代码进行编译打包,这个是开发来提的。
Jenkins 可以直接将项目发布到 Target Server,但是我们的生产服务器是好几个内网网段。所以思路是:先将代码发布到跳板机,跳板机上面有一个 shell 脚本,脚本内容无非是 scp,rsync 工具,将数据同步到目标服务器指定的路径。
我们的配置
1. 参数配置
为了在底层保留每次构建的代码,我们创建了两个参数:版本号。 这样可以让底层 jobs 目录中的项目的目录结构很清晰,版本号用的是日期,更加好区分。
2. 源码管理
配置 Git Repository URL,构建的时候 Jenkins Server 会从仓库拉取代码到 $JENKINS_HOME/workspace/$JOB_NAME 目录下面。 (ps:JOB_NAME 是 Jenkins 内置环境变量
3. 构建环境
我选择每次构建之前都将项目的 workspace 中的内容删除,彻底重来。
4. Pre Steps
构建之前准备环境。
如果选择 "Execute Shell", 那么就把自己想在构建之前准备的文件、目录等等 shell 命令写出来。
5. Build
开始构建。
第一行指定 pom文件,默认为 pom.xml. 第二行指定 maven 的执行序列。具体可以了解 maven 的相关知识,这个命令开发来定。
6. Post Steps
开始发布。
这一步的目的是在Build 之后,数据的二次整理,为『构建后的操作』做准备。所以,如果不需要再次操作,构建好的数据可以直接发布,那无需这一步的设置。
7. 构建后的操作
增加构建后的操作步骤 --> Send build artifacts over SSH. 用 Publish Over SSH 这个插件的功能完成最后的发布工作。
这一步是将在 Jenkins Server 上构建好的数据推送到 Jump Server ,然后又在 Jump server 上面执行一个shell 脚本,将数据推送到 Target Server,脚本内容就是rsync 或者 scp。
(1)推送构件好的数据
(2)执行推送脚本
说明:
- 将 update.sh 推送到跳板机的 脚本存放目录下
- 执行 update.sh 这个内容rsync 为主的脚本,将数据同步到 target,后面是脚本的参数:项目名称,灰度发布,项目版本
参数构建
1. 点击对应的项目
2. 选择 ”用参数构建“
3. 输入参数值
这样就可以实现参数化构建项目,如果选择 ”立即构建“,则这里的参数是 设定时候给定的 ”默认值“。
以上.