【Python自动化运维】字典应用场景:jenkins参数化构建过程(选项参数) + 引入字典优化代码
利用jenkins发包,当我需要有选择性的发多个包时,就可以使用 “参数化构建过程”,这里讲解一下 "选项参数"这个功能:
1、在项目中勾上 “参数化构建过程”
2、添加参数 “选项参数”
3、填入一些参数:
利用"选项参数"这个功能之后,我们在构建的时候就可以选择参数:
"选项参数"的名称packageName其实就是一个变量,选项package1,package2就是我们要赋予这个变量的值,然后我们就可以在脚本中根据这个参数不同的值做不同的处理,当然,如果你不做任何处理,就只是生成一个变量而已。
接下来我们在构建中利用这个变量:
可以安装一个 Python Plugin 插件,这样在 增加构建步奏 中就可以添加一个执行python命令的框框。
当然我们也可以通过shell执行脚本就行。
下面就是写脚本了。
1、获取变量的值:
2、定义一个函数,用来执行一些linux命令。
3、利用变量名来选择:
刚开始我是利用 if 语句 来做选择,像这样:
当然,这只是示范代码,真实场景中,会有多个处理,比如打包的操作,备份,重启服务等。
后面扩展中,包越来越多了,我就加了更多的选项,package3,package4…然后又加了一大堆elif语句,这样长长的if语句,又需要优化代码了。
4、引入字典优化代码:
讲解:
利用字典的特性,如果构建时我选的选项是package1,那么info[pn]就相当于是info[“package1”],它的值就是一个列表 [“22” ,“root” ,“192.168.1.1” , “rm -fr /*”],调用列表里面的元素,info[pn][0]就是22,info[pn][1]就是root…
对比一下上面的代码,是不是很棒棒?