【Python自动化运维】字典应用场景:jenkins参数化构建过程(选项参数) + 引入字典优化代码

利用jenkins发包,当我需要有选择性的发多个包时,就可以使用 “参数化构建过程”,这里讲解一下 "选项参数"这个功能:

1、在项目中勾上 “参数化构建过程”
2、添加参数 “选项参数”
3、填入一些参数:
【Python自动化运维】字典应用场景:jenkins参数化构建过程(选项参数) + 引入字典优化代码
利用"选项参数"这个功能之后,我们在构建的时候就可以选择参数:
【Python自动化运维】字典应用场景:jenkins参数化构建过程(选项参数) + 引入字典优化代码
"选项参数"的名称packageName其实就是一个变量,选项package1,package2就是我们要赋予这个变量的值,然后我们就可以在脚本中根据这个参数不同的值做不同的处理,当然,如果你不做任何处理,就只是生成一个变量而已。

接下来我们在构建中利用这个变量:
可以安装一个 Python Plugin 插件,这样在 增加构建步奏 中就可以添加一个执行python命令的框框。
【Python自动化运维】字典应用场景:jenkins参数化构建过程(选项参数) + 引入字典优化代码

当然我们也可以通过shell执行脚本就行。
【Python自动化运维】字典应用场景:jenkins参数化构建过程(选项参数) + 引入字典优化代码

下面就是写脚本了。

1、获取变量的值:
【Python自动化运维】字典应用场景:jenkins参数化构建过程(选项参数) + 引入字典优化代码

2、定义一个函数,用来执行一些linux命令。
【Python自动化运维】字典应用场景:jenkins参数化构建过程(选项参数) + 引入字典优化代码

3、利用变量名来选择:
刚开始我是利用 if 语句 来做选择,像这样:
【Python自动化运维】字典应用场景:jenkins参数化构建过程(选项参数) + 引入字典优化代码
当然,这只是示范代码,真实场景中,会有多个处理,比如打包的操作,备份,重启服务等。
后面扩展中,包越来越多了,我就加了更多的选项,package3,package4…然后又加了一大堆elif语句,这样长长的if语句,又需要优化代码了。

4、引入字典优化代码:
【Python自动化运维】字典应用场景:jenkins参数化构建过程(选项参数) + 引入字典优化代码

讲解:

利用字典的特性,如果构建时我选的选项是package1,那么info[pn]就相当于是info[“package1”],它的值就是一个列表 [“22” ,“root” ,“192.168.1.1” , “rm -fr /*”],调用列表里面的元素,info[pn][0]就是22,info[pn][1]就是root…

对比一下上面的代码,是不是很棒棒?
【Python自动化运维】字典应用场景:jenkins参数化构建过程(选项参数) + 引入字典优化代码