博客 > 术业专攻> 自动化运维> Jenkins> Jenkins实战应用–Jenkins参数化构建犀利插件Active-Choices-Plugin 2019年08月29日 11:24:49
文章汇总地址如右:Jenkins入门教程。
如果相中哪个,点击进去便是。希望正在读这段话的你能够在这个小系列中获得自信以及喜悦!
有时候我们在测试环境当中,可能同一个项目,需要部署多套的环境,这个时候可以针对每套环境来创建多个项目进行构建,这样做不无不可,但是今天要介绍一个插件,可以非常优雅的将这些情况,浓缩到一个job里边。
刚刚还在一个博主的自我介绍里看到这样一句话:喜欢一切优雅的运维方式···
通过今天的这个插件,可以让我们优雅很多。
那么在这种需求之下,基本思路就是,创建两个项目,每个项目负责进行分发部署。详细配置不讲解了,直接看截图内容:
简单说就是创建一个自由风格的项目,可以部署到192.168.10.1以及192.168.10.2上去,然后再创建一个项目b,内容也是一样,只不过分发主机变成了192.168.10.3和192.168.10.4。这么做其实也没什么,但是有点不太优雅。
首先安装上边介绍的插件,接着对项目开始进行配置。
这里着重介绍一下参数以及使用新参数构建时的部署脚本的调整。
去掉刚刚的host的选项参数,然后替换为Active Choices Parameter,首选设置第一道参数,也就是我们刚刚规划的两套环境的参数:
return[ "Aplan", "Bplan" ]
接着来添加上述定义参数所依赖的第二步骤参数。
通过添加被动参数,从而实现如上参数选择之后,此处配置的参数自动跟随变动的效果:
A=["all","192.168.10.1","192.168.10.2"] B=["all","192.168.10.3","192.168.10.4"] if(plan.equals("Aplan")){ return A } if(plan.equals("Bplan")){ return B }
接下来要做的工作,就是根据如上定义的参数,进行相应的调整,从而适用于新的构建方式,我这里简单做了一个小例子作为展示:
##set color## echoRed() { echo $'\e[0;31m'"$1"$'\e[0m'; } echoGreen() { echo $'\e[0;32m'"$1"$'\e[0m'; } echoYellow() { echo $'\e[0;33m'"$1"$'\e[0m'; } ##set color## source /etc/profile project="config" remote_user="root" remote_port="22" remote_dir=/usr/local/$project script_dir=/usr/local/scripts #cd $WORKSPACE && mvn clean install -DskipTests=true deploy(){ IP=$1 echoGreen "start scp $project on $IP" #scp -P $remote_port $project.jar $remote_user@$IP:$remote_dir/$project.jar && echo "success scp $project" #ssh -p $remote_port $remote_user@$IP "/bin/bash $script_dir/deploy.sh $mode $project" } if [ $mode == "deploy" ];then if [ $plan == "Aplan" ];then echoRed "您选择执行的是A计划" if [ $host == "all" ];then deploy 192.168.10.1 sleep 3 deploy 192.168.10.2 else deploy $host fi elif [ $plan == "Bplan" ];then echoRed "您选择执行的是B计划" if [ $host == "all" ];then deploy 192.168.10.3 sleep 3 deploy 192.168.10.4 else deploy $host fi fi fi
最后来张完整截图:
5,验证效果。
先来看最神奇的一个小展示:
可以看到,效果已经如我们所需求的那样,同一套代码下,首先分出A计划与B计划,然后再每套计划之下,又能有不同的需求走向可供选择,堪称完美。
接下来真正的构建一下,真刀真枪的拉出来练一练。这里我只是为了演示,并没有连接代码库,不过每个地方的构建走向都有清晰的打印输出,所以也能够很容易看出效果。
通过构建日志可以看到,构建已经触及到A计划所囊括的两台主机了。
同样的效果,构建就走向了B计划囊括的两台主机了。
可见,各个流向都是通了的,这样,就把我们一开始的需求,使用一种优雅的方式,给实现了出来。
© 2018 www.qingketang.net 鄂ICP备18027844号-1
武汉快勤科技有限公司 13554402156 武汉市东湖新技术开发区关山二路特一号国际企业中心6幢4层7号
扫码关注,全站教程免费播放
订单金额:
支付金额:
支付方式: