Jenkins之Pipeline代码流水线

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Jenkins之Pipeline代码流水线相关的知识,希望对你有一定的参考价值。

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

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

[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项目:
技术图片
技术图片
技术图片
技术图片
上面添加的构建后操作,作用是,当这个项目构建后,就会自动触发刚刚创建的pipeline项目。

新建视图,更直观的测试两个项目的关系
技术图片
技术图片
技术图片
进行构建测试:

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

以上是关于Jenkins之Pipeline代码流水线的主要内容,如果未能解决你的问题,请参考以下文章

Jenkins之Pipeline代码流水线配置

jenkins的Pipeline代码流水线管理

14-Jenkins-Pipeline实现自动部署

Jenkins流水线(pipeline)实战之:从部署到体验

如何使用 Jenkins 的脚本化流水线(Pipeline)

Jenkins之pipeline流水线配置