DevOps-6:Jenkins使用技巧

Posted 北亮bl

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了DevOps-6:Jenkins使用技巧相关的知识,希望对你有一定的参考价值。

1、如何提升Jenkins的Job并行构建数

默认情况下,Jenkins只配置了2个Executor,即只允许最多2个Job同时构建,这个值可以修改:
Manage Jenkins=>Configure System里,找到 # of executors,修改这个值就好,注意不要太大,不然机器卡了。
一般建议按CPU核数来配置。


2、同一个Job如何并行执行?

默认情况下,同一个Job启动了多个构建时,在前一个构建未结束前,第二个构建不会启动,会提示jenkins pending is already in progress,第一个结束后,才会启动第二个构建。
这也是比较安全的作法,避免Job的一些数据冲突。

如果你确实希望一个Job的多个构建能同时启动,在Job的配置页面,有一个选项:Execute concurrent builds if necessary,勾选它即可。


3、多个Job如何互斥,防止并行?

只要有足够的Jenkins Executor,不同的Job就可以并行启动构建。
有时我们希望不同的Job间要互斥,某一个Job在构建中时,禁止另一个Job启动。
这个需要依赖一个插件:lockable resources,安装完插件,要先配置资源(其实就是字符串)

  • 进入Manage Jenkins=>Configure System,找到 Lockable Resources Manager,点击Add Lockable Resource:

    • Resource Name: 必填,用于加锁的字符串,不能有空格,比如 I_am_a_lock,建议由字母数字下划线组成
    • Description: 可选,说明文字,无作用
    • Labels: 可选,用于加锁的字符串子集,允许多个字符串,用空格区分,比如 aaa bbb ccc
    • Reserved by:可选,不为空表示该资源处于维护中,此时所有依赖此资源的Job,都会处于挂起状态:(pending—Waiting for resources with xxx)
      注:这么配置完后,我们就有了4个资源,可以用于加锁:I_am_a_lock aaa bbb ccc
  • 配置好资源后,进入需要互斥的每个Job的配置页,勾选This build requires lockable resources,在下面的

    • 只在Resources里输入上面配置的I_am_a_lock
    • 只在Label里输入上面配置的 bbb
    • 注意:ResourcesLabel,只能输入一个,另一个必须为空
    • 注意:需要互斥的每个Job都要配置一遍,且配置要相同
  • OK,启动第一个Job,再启动第二个Job:

    • 如果此时第一个未完成,第二个会提示等待(pending—Waiting for resources with label bbb)
    • 第一个Job的Console Output里会有如下字样,启动时加锁,结束时释放锁:
22:24:14 [lockable-resources] acquired lock on [I_am_a_lock]
....
22:24:29 [lockable-resources] released lock on [I_am_a_lock]

以上是关于DevOps-6:Jenkins使用技巧的主要内容,如果未能解决你的问题,请参考以下文章

DevOps-6:Jenkins使用技巧

番茄工作法

番茄工作法

番茄工作法

我是如何学习和工作的 - 番茄工作法

番茄工作法