Jenkins 集群下的 pipeline 实战
欢迎访问我的 GitHub
这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos
关于 Jenkins 集群
在《快速搭建Jenkins集群》一文中,我们借助 docker 快速搭建了 Jenkins 集群,今天就在这个集群环境中创建 pipeline 任务,体验 Jenkins 集群下的并行任务;
环境信息
整个集群环境一共有三台电脑,信息如下:
实战内容
本次实战要体验 Jenkins 集群同时执行两个任务,都是编译构建 GitHub 上的热门开源项目:
在 agent1 上编译和构建 spring-cloud-alibaba,再通过 scp 命令将构建结果传输到 master 电脑的 /usr/local/build_result 目录下;
在 agent2 编译和构建 spring-framework,再通过 scp 命令将构建结果传输到 master 电脑的 /usr/local/build_result 目录下;
准备工作
要做以下准备工作才能顺利执行后续的任务:
在 master 电脑上创建文件夹 /usr/local/build_result
配置 maven,在 Jenkins 网页上选择 Global Tool Configuration ,如下图红框所示:
新增一个 maven 配置,名为 mvn-3.6.2 ,然后点击“保存”按钮,如下图:
agent1 和 agent2 上用 scp 命令传输文件到 master 上的时候,第一次 ssh 要在控制台输入"yes",为了避免执行任务的时候出现这个等待输入的操作,我们去手动执行一遍,后面就再也不用了,ssh 登录 agent1 之后,执行以下命令进入容器:
执行命令 ssh root@192.168.133.131 ,这时候控制台提示输入 yes 或者 no ,请您输入 yes ,再根据提示输入 master 的密码,此时登录 master 成功:
此时您是在 agent1 的容器中 ssh 登录了 master,所以要连续输入两次 exit 命令才能返回到 agent1 的控制台;
在 agent2 电脑上也执行相同的操作;
至此,准备完毕,可以创建任务了;
编译构建 spring-cloud-alibaba 的任务
spring-cloud-alibaba 是个 maven 工程,要用 maven 来编译构建:
在 Jenkins 网页上,点击下图红框位置,创建一个任务:
如下图,创建名为 spring-clolud-alibaba 的 pipeline 任务:
下图红框位置就是输入 pipeline 脚本的地方:
在上图红框位置输入以下内容:
点击底部的"保存"按钮后,点击下图红框中的"立即构建"即可开始任务:
点击下图红框中的红色圆球,即可跳转到实时输出任务信息的页面:
页面实时输出构建信息:
主页面可以看到是 agent1 在执行任务,如下图红框所示,可见 pipeline 脚本中的标签已经生效了,将任务调度到标签为 maven 的节点去执行:
编译构建 spring-cloud-alibaba 工程是个费时的操作,我们现在去创建另一个任务:编译构建 spring-framework
编译构建 spring-framework 的任务
spring-framework 是个 gradle 工程,不需要准备 gradle 环境,在执行编译命令时会自动下载 gradle 工具:
创建名为 spring-framework 的 pipeline 任务:
pipeline 脚本如下:
立即执行此任务,可见任务已经被调度到 agent2 上去执行了,此时的 agent1 和 agent2 正在同时执行任务,如下图:
查看构建结果
上述两个任务在构建成功后,都会通过 scp 命令将构建结果传送到 master 的 /usr/local/build_result 目录下:
至此,Jenkins 集群下的 pipeline 实战就完成了,借助 pipeline 的标签参数,可以控制任务的调度节点,实现多任务同时在多节点执行;
欢迎关注 InfoQ:程序员欣宸
版权声明: 本文为 InfoQ 作者【程序员欣宸】的原创文章。
原文链接:【http://xie.infoq.cn/article/7613844ee48929d0b221be26d】。文章转载请联系作者。
评论