Jenkins pipeline使用
Jenkins是一个很好的持续集成工具,由于项目中用到了pipeline形式的Jenkins项目。其中也遇到了一些问题,故记录下来。本篇文章在介绍具体解决步骤的基础上,重点想要介绍一些学习jenkins的网址
Jenkins pipeline建立
Jenkins项目的建立有很多形式,其中一个就是流水线的模式,个人觉得是构建大型项目,常用的方式吧。
流水线建立后,有两种方式实现一种是直接在输入框中编写脚本,一种是选择SCM模式,可以到项目工程下,寻找指定的Jenkinsfile文件。
两种形式如下:
脚本模式:
通过scm编写Jenkinsfile
URL位置用来填写项目Jenkinsfile git路径。
查找Pipeline语法的高效方法
由于我们的项目相对简单,在此就不过多展示。本节要说的是经常被本人忽略的一个点,pipeline语法,我们在写pipeline时,开始都不知道如何写,上来就通过百度、google来查找解决问题的答案,但有时候答案往往就在我们眼前。其实,jenkins给我们提供了很好的帮助,就是pipeline语法编写功能。
如下图所示:我们的项目中会有这样的一个链接,点开我们就会发现几乎你想要的pipeline编写方法都在这里了。
进去之后会发现如下列表:
我们首先要解决的是checkout代码的问题,先checkout在执行编译打包等功能嘛!
按照步骤配置之后,你就可以选择generate pipeline script选项,你要写在Jenkinsfile中的内容也就有了。
- 谨以此告诫自己,有些说明信息是需要我们仔细阅读的,而不是依靠百度、google
- 学习某些工具也一样,最简单和高效的方式就是阅读官方提供的使用手册或者文档,看不懂可能是看的不仔细而已。提供jenkinsfile的官方链接:https://jenkins.io/zh/doc/boo...
通过ssh访问远端host
编写Jenkinsfile遇到的另一个问题就是不知道如何通过ssh访问远端,当然尝试通过查看pipeline语法的ssh选项,但是没有生成任何有效代码。
当然还是要通过官方文档才靠谱,就是jenkins关于ssh插件的介绍以及ssh插件如何编写相应的脚本文件。地址如下:
https://github.com/jenkinsci/ssh-steps-plugin#sshput
demo,通过kubernets实现监控查看服务替换状态。
stage('watchstatus') {
steps{
script {
def remote = [:]
remote.name = 'test'
remote.host = "${PUBLIC_HOST}"
remote.user = "${PUBLIC_HOST_USER}"
remote.password = "${PUBLIC_HOST_PWD}"
remote.allowAnyHosts = true
sleep 60
sshCommand remote: remote, command: "kubectl describe deployment ${SERVICE_NAME}"
sshCommand remote: remote, command: "kubectl rollout status deployment ${SERVICE_NAME}"
}
}
}
后记
相信有了从源头学习的思维在加上提供的两个Jenkins网址信息,学习jenkins就应该变得不难了吧,与走在学习路上的小伙伴共勉。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。