云原生 jenkins active choice parameter插件

jenkins active choice parameter插件

actice choice 这个插件的作用是可以在参数化构建时,创建一个可选的参数例如,用jenkins创建一个发布project时,我们发布过程中需要选择环境、服务名称等,我们希望在参数化构建时,可以提供一个下拉框给用户进行选择,这时候可以使用这个插件来创建这样的可选参数下面是效果图如何使用actice choice 插件1、安装active choices插件2、创建一个...

actice choice 这个插件的作用是可以在参数化构建时,创建一个可选的参数

例如,用jenkins创建一个发布project时,我们发布过程中需要选择环境、服务名称等,我们希望在参数化构建时,可以提供一个下拉框给用户进行选择,这时候可以使用这个插件来创建这样的可选参数


下面是效果图

image.png


如何使用actice choice 插件

1、安装active choices插件

image.png


2、创建一个project,勾选参数化构建

image.png


勾选Groovy script

将选项写成上图这个样子即可。这里选项是固定的,我们可以这样写死,如果选项是动态的呢?比如产品这个选项,现在有十个产品,后面可能会增加到30个。我们写死的化很需要一直维护。这种情况怎么办?能否动态的获取所有产品名称呢?答案是肯定的


比如:我们公司产品我是通过python脚本调用cmdb的api接口获取到的,然后将获取的所有产品写入到文件中。一行一个产品,如下图这样子

image.png


Groovy script从文件中获取变量值

image.png


参数类型

参数类型可以设置为单选和多选,还有radio buttons这种单选框,check box是复选框,可以根据自己的需求来使用

image.png



扩展

An Active Choices Reactive Parameter

active choice插件还有一个好用的功能,就是当有多个参数时,第二个参数的值,会根据第一个参数选择的值进行变换。举一个很常见的场景:

在发布时,当选择生产环境时,第二个参数的选项里面应该出现生产环境的服务器,当选择测试环境时,第二个选项里面应该出现测试环境的服务器。


我这里有一个需求,当选择一个模块时,会根据模块名称,查通过CMDB接口查询哪些产品有该模块。

先看下效果图,由于我本机测试环境没有办法连CMDB,所以只测试当选择一个module时,我的aaa参数这里,也出现该module。效果图如下:

image.png


aaa参数配置

image.png


image.png


module=module
def list = "/opt/aaa.py $module".execute().text.readLines()
list.each{language->
  println language
}


/opt/aaa.py脚本内容

[root@localhost opt]# cat aaa.py 
#!/usr/bin/python
import sys
print  sys.argv[1]

该脚本很简单,就是传递一个参数,然后print这个参数。在aaa这个变量里面,这个参数是关联的module,所以打印的就是用户选择的module的名称。











参考链接:

https://www.jianshu.com/p/3f54cf1674ce


官方文档:

https://wiki.jenkins.io/display/JENKINS/Active+Choices+Plugin


要查询某个插件的用法,可以在这里根据插件名称搜索

https://plugins.jenkins.io/








转载于:https://blog.51cto.com/zengestudy/2306903

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐

  • 浏览量 4339
  • 收藏 0
  • 0

所有评论(0)

查看更多评论 
已为社区贡献1条内容