Pipeline翻译过来就是流水线的意思,在公司中可能会有很多项目,如果使用Jenkins构建完成后,开发构建项目需要一项一项点击,比较麻烦,因此,pipeline就应用而生了 。

一、部署Pipeline——代码流水线管理

Jenkins部署及其他服务部署可参考博文:持续集成之代码质量管理———Sonar

另外我们再开一台测试端
1、Jenkins服务器操作如下(配置免密登录及对Jenkins的用户配置授权):

执行命令主要涉及的是权限问题,我们要搞明白,jenkins 是以什 么权限来执行命令的。那么问题来了,我们现在 192.168.171.134 上,如果在想 192.168.171.135 上执行命令。需要怎么做呢?
我们做无秘钥有 2 种分案:
1)使用 jenkins 用户将秘钥分发给 192.168.171.135 上
2)使用 root 用户将秘钥分发给 192.168.171.135 上,如果使用 root 用户还要进 行 visudo 授权。因为 Web 上默认执行命令的用户是 jenkins

这里我们使用第二种

[root@jenkins /]# ssh-copy-id root@192.168.171.135        # 将公钥发送到测试端
[root@jenkins /]# visudo       # 授权
root    ALL=(ALL)       ALL         #在root用户的授权下写入以下内容
jenkins     ALL=(ALL)   NOPASSWD:/usr/bin/ssh

2、Jenkins的web页面添加pipeline插件

依次点击:系统管理==>>插件管理==>>点击高级
下载我提供的插件(提取码: 9rak),按照编号依次上传至Jenkins

Jenkins之Pipeline代码流水线
3、新建任务
Jenkins之Pipeline代码流水线
Jenkins之Pipeline代码流水线
Jenkins之Pipeline代码流水线
在下面输入要执行的命令,这里输入一个测试命令“sudo ssh root@192.168.171.135 source /etc/init.d/test.sh”
Jenkins之Pipeline代码流水线
在测试端编写对应的脚本并测试:

[root@test /]# cat > /etc/init.d/test.sh << EOF
> #!/bin/bash
> echo "hello world"
> EOF
[root@test /]# chmod +x /etc/init.d/test.sh 
#回到Jenkins服务器测试命令是否可以执行成功
[root@jenkins /]# sudo ssh root@192.168.171.135 source /etc/init.d/test.sh 
hello world

返回Jenkins的web主页面,点击之前创建的一个web1项目:
Jenkins之Pipeline代码流水线
Jenkins之Pipeline代码流水线
Jenkins之Pipeline代码流水线
Jenkins之Pipeline代码流水线
上面添加的构建后操作,作用是,当这个项目构建后,就会自动触发刚刚创建的pipeline项目。

新建视图,更直观的测试两个项目的关系
Jenkins之Pipeline代码流水线
Jenkins之Pipeline代码流水线
Jenkins之Pipeline代码流水线
进行构建测试:

以下是之前的,注意测试前和测试后的颜色对比,下面的颜色是没有关联构建的:
Jenkins之Pipeline代码流水线
执行RUN命令后,等构建完成后,刷新页面,即可看到如下:
Jenkins之Pipeline代码流水线
可以很明显的看到,新产生的视图两个颜色是一致的,说明关联成功了