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
这里我们使用第二种
[[email protected] /]# ssh-copy-id [email protected] # 将公钥发送到测试端
[[email protected] /]# visudo # 授权
root ALL=(ALL) ALL #在root用户的授权下写入以下内容
jenkins ALL=(ALL) NOPASSWD:/usr/bin/ssh
2、Jenkins的web页面添加pipeline插件
依次点击:系统管理==>>插件管理==>>点击高级
下载我提供的插件(提取码: 9rak),按照编号依次上传至Jenkins
3、新建任务
在下面输入要执行的命令,这里输入一个测试命令“sudo ssh [email protected] source /etc/init.d/test.sh”
在测试端编写对应的脚本并测试:
[[email protected] /]# cat > /etc/init.d/test.sh << EOF
> #!/bin/bash
> echo "hello world"
> EOF
[[email protected] /]# chmod +x /etc/init.d/test.sh
#回到Jenkins服务器测试命令是否可以执行成功
[[email protected] /]# sudo ssh [email protected] source /etc/init.d/test.sh
hello world
返回Jenkins的web主页面,点击之前创建的一个web1项目:
上面添加的构建后操作,作用是,当这个项目构建后,就会自动触发刚刚创建的pipeline项目。
新建视图,更直观的测试两个项目的关系
进行构建测试:
以下是之前的,注意测试前和测试后的颜色对比,下面的颜色是没有关联构建的:
执行RUN命令后,等构建完成后,刷新页面,即可看到如下:
可以很明显的看到,新产生的视图两个颜色是一致的,说明关联成功了
原文地址:https://blog.51cto.com/14227204/2481552