通过jenkins交付微处事到kubernetes(9)

测试一个hello的pipeline的语法名目

pipeline { agent any stages { stage('Build') { steps { echo "hello" } } stage('test') { steps { echo "hello" } } stage('deploy') { steps { echo "hello" } } } }

节制台输出了三个任务,别离执行hello,或许就是这个样子

通过jenkins交付微处事到kubernetes


目次也耐久化了,看到新增的jenkins的项目任务
[root@k8s-node3 ~]# ll /ifi/kubernetes/default-jenkins-home-pvc-0d67f7f5-2b31-4dc8-aee2-5e7b9e0e7e19/jobs/
总用量 0
drwxr-xr-x 3 1000 1000 61 1月 13 11:36 test
drwxr-xr-x 3 1000 1000 61 1月 13 14:04 test-demo

通过jenkins交付微处事到kubernetes


jenkins pipeline就像一个管道的建模一样,在这个剧本里完成了整个生命周期各个阶段,从development开拓提交接码commit id,到build构建,再到test测试,再到stage步调做一些处理惩罚,deploy陈设到dev可能qa情况中,最后到线上,其实在这个流程中它是有一个目标的,刚开始是在开拓情况,最终是把它带到线上情况,而中间一系列的流程都是通过管道的形式串起来,而这个管道这个模子是通过pipeline去书写的,这个语法就是这个模子,需要把这个生命周期的所需的都套进这个模子中来,然后由jenkins pipeline去打点

第一用这个pipepine它有很大的特点
1、可视化页面,每个步调都可以可视化展示,利便我们去办理每个步调的相关问题
2、每个步调都写剧本内里了,只需要维护这个剧本就好了,而这个剧本可以写的具有通用性,假如想写多个项目时,好比宣布3组微处事,那么第一个写的pipeline,那么也同样合用于第二个和第三个微处事的模版。那么这个需要思量它们有哪些差异点?
差异点:
1)拉取git代码的地点纷歧样
2)分支名也纷歧样,因为是差异的git地点,所以打的分支名也纷歧样。
3)陈设的呆板也纷歧样,有大概这几个处事陈设在node1,别的的处事陈设在node2可能node3
4)打出的包名纷歧样
所以要把这些差异点,做成一种人工交互的形式去宣布,这样的话这个剧本才具有通用性,宣布处事才气利用这写好的pipeline宣布更多的微处事,并且jenkins pipeline支持参数化构建。

通过jenkins交付微处事到kubernetes


这里也就是pipeline一些的语法,好比选择parameters参数化构建,选择框式参数choice parameter,好比给它几个值,然后让它动态的去输入,可能根据参数credentials parameter,可能文件参数file parameter,可能暗码参数password parameter,可能运行参数 run parameter,可能字符串参数 string paramether ,可能多行字符串参数multi-line string parameter,可能布尔型参数boolean parameter

好比选择choice parameter,选择型参数

通过jenkins交付微处事到kubernetes


好比宣布的git地点纷歧样,那么就需要多个地点可以去选择,需要利用choice parameter选择框型参数,这个可以表此刻构建的页面,也可以表此刻configure设置的页面,这样设置也较量贫苦,所以直接在configure内里直接添加对应的参数就可以
先设置一个看一下结果

通过jenkins交付微处事到kubernetes


将生成的选择型参数添加到指定的pipeline的语法中,save一下

通过jenkins交付微处事到kubernetes


再回到项目中可以看到build名字从build now换成了build with parameters,也就是增加了几行的的设置,可以举办选择的去拉去哪个分支下的代码了

通过jenkins交付微处事到kubernetes


也可以在configure去设置,这两个处所都可以添加,要是再添加一个直接add parameter,可以选择多种范例的参数辅佐我们去构建这个多样式的需求

通过jenkins交付微处事到kubernetes


再好比分支这一块,大概每次打的分支都差异,这个不是牢靠的,所以需要一个git的参数化构建,那么这个就需要动态的去从选择的git地点获取到当前的所有的分支
尚有一个漫衍的呆板差异,这个也可以利用适才的choice parameter,将多个主机的ip也进去

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wsddpg.html