jenkins与devops,devops jenkins区别

  jenkins与devops,devops jenkins区别

  Yyds干货库存

  前言自从我们开始学习Jenkins,我们一定尝试了很多次来构建这个项目。

  但实际上,我想说的是,你在建造的时候,是否觉得现在的建造方式比较繁琐:

  打开浏览器,输入Jenkins在Jenkins中找到对应的任务,然后点击Build Now开始构建当前任务。但如果有这样一种方式,没有上面繁琐的流程,岂不是更舒服:

  詹金斯可以自己从GitLab拉代码,拉完代码后自动执行后续脚本来构建;或者当我们向GitLab提交代码时,Jenkins会以某种方式得到通知,然后可以执行构建。不,这样想很有趣,对吧?

  别担心,强大的詹金斯已经为我们准备好了一切。我给大家介绍一下詹金斯的另一个便捷功能。我卖给你一张通行证,你可以继续看。

  构建触发器

  触发器是任务配置中的一个核心模块,它实现了我们上面的所有假设。接下来,我们来说说这个触发器。

  下面我们选择几个常见的触发器来介绍一下。

  其他项目是建设后触发的。如果我们的项目需要依赖其他项目才能正常执行,那么我们构建它们的时候是有顺序的。我们基于该触发器下的配置项来构建项目。根据我们设定的关注项目,在建设过程中最终会形成一个类似于责任链模式的长链。

  这个方法很简单,就不多介绍了。

  定时构建定时构建,顾名思义,Jenkins提供了一种类似cron的方式来定期执行构建项目。

  这样就需要考虑公司的实际业务了。如果公司习惯像每天晚上/每周一样定时安排建设,那么采用定时建设的触发器是非常合适的,否则需要谨慎。

  当显示的日程被写入Jenkins支持的计时表达式时,Jenkins会根据表达式自动给出提示,显示下一次运行时间。对于计时表达式的相关内容,我们继续往下看。

  计时基本信息分钟小时DOM月DOW

  具体来说,每行包含5个字段,由制表符或空格分隔,其中:

  分钟一小时中的分钟数(059)

  一天中的小时数(023)

  DOM中的一个月中的某一天(131)

  月份(112)

  道琼斯周(07),其中0和7是星期日。

  这里要注意的是:H

  这是一个加载参数,可以是作业名的散列。理论上可以放在任何地方。一般情况下,参数h加在分钟或小时之前。保证调度任务对系统产生负载,使任务不会同时出现,服务资源得到最大限度的利用。

  #每15分钟一次。

  H/15 * * *进阶除了这个固定时间,Jenkins提供的计时表达式还提供了范围区间:

  *指定所有有效值,不多说了。在cron中,我经常看到M-N指定值的范围#每天1~2点,每15分钟执行一次。

  H/15 H(1-2) * * * M-N/X或*/X步骤A、B、Z,在指定范围或整个有效范围内每隔x。列举多个值找一些例子让大家感受一下,也可以直接在Jenkins里测试。

  #在5、10、15分钟后执行

  5,10,15 * * * *

  #工作日0: 00、3: 00、6: 00,每10分钟一班。

  H/100 0,3,6 * * 1-5任务构建接下来,我们定时构建我们的任务,每2分钟执行一次。

  问:为什么不每隔一分钟做一次?

  a:可能詹金斯觉得你太调皮了,不支持一分钟通话。

  H/2 * * * *

  按时搭建,然后在实践中,根据自己的需求,合理选择表达方式来搭建。

  我在这里留下了一个在0:H(0-1)/10 * * *执行的配置,我们会看到的。

  GitLab webhook这里补充说明一下,首先是关于Jenkins builder中GitLab webhook的方式。

  默认情况下,此选项不会出现,需要安装一个额外的插件。虽然之前已经提过了,但是这里还有一点要说:

  在插件管理中,需要先安装GitLab Plugin插件,然后可以使用webhook触发构建。

  在一个关键点穿插了Webhooks之后,我们继续介绍Webhooks。

  维基百科:

  web开发过程中的Webhook是通过通常的回调来增加或改变网页或web app行为的一种方式。

  这些回调可以由第三方用户和开发者进行维护、修改和管理,但这些用户与网站或应用的原始开发无关。

  结合詹金斯的介绍:

  当我们操作GitLab资源库(提交代码,合并分支)时,GitLab会向对应的配置好的接口发送一个http请求,Jenkins收到请求后会构建当前项目。通过这种方式,我们可以自动化CI运营并降低部署成本。

  实践:基于GitLab的Webhooks实现自动构建。然后,我们开始配置Webhooks,实现自动构建。

  GitLab配置:本地出站请求。首先,由于GitLab版本升级,本地出站请求会受到限制。由于我在构建环境时将Jenkins和GitLab放在同一个服务器上,所以我需要首先在GitLab上配置出站请求。

  如果环境在多台服务器上,可以省略这一步。

  当前在GitLab的菜单管理设置网络出站请求下配置。

  选中图中的两个框,或者在下面的文本框中输入本地IP和域名。

  为了方便我查了一下。

  Jenkins 503配置由于Jenkins开启了GitLab的认证,此时如果直接在GitLab上添加Webhooks,就无法正确处理。

  在这里,您需要进入Jenkins的系统管理系统配置,找到Gitlab的位置,并取消选中“/project”端点的启用身份验证。

  Jenkins项目配置触发器

  进入项目配置页面,勾选图中的方框,复制最后一个URL地址。

  GitLab设置Webhooks进入GitLab上的项目页面,从设置Webhooks中找到对应的配置页面,将复制的URL添加到指定位置。

  此时,底部会出现一条Webhooks的记录,我们可以通过测试按钮来测试一下,看看是否可以正常运行。

  测试直接推送一个事件,看Jenkins能不能收到。

  在构造的开始,意味着Webhooks方法已经成功构建。做完测试,今天到此为止。

  目前测试已经过了尾声,所以通过git提交代码后,Jenkins构建项目,必然会正常执行。

  最后,这是所有关于詹金斯触发器。我们只是列举了几个常用的触发器。如果需要使用其他触发器,可以自己查看帮助文档。

  版权归作者所有:博主原创作品,世俗流浪者,转载授权请联系作者,否则将追究法律责任。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: