使用Jenkins打包实现定制化自动部署

目标 : 实现Jenkins 根据git分支名打包,部署指定应用

本人项目:一个项目包含四个子应用 ops 包含:admin,app,service

 

一.Jenkins 参数化构建

添加四个构建参数

1.分支号

2.是否执行自动部署

3.要部署的服务器环境

4.该项目的子应用

 

二.实现打包后自动部署

1.需要Jenkins安装Post build task插件

2.在构建后操作中增加Post build task

 

Script:

#!/usr/bin/env bash

_project=ops #指定项目

#后面四个参数为构建中的四个参数

_is_deployer=${deployer}

_build_number=${BUILD_NUMBER}

_application=${application}

_environment=${environment}



if [ "$_is_deployer" == "true" ];then

  cd /home/test

  ./run.sh  ${_project}  ${_build_number}  ${_environment} ${_application}

fi

 

通过Jenkins插件中script调用后续部署脚本run.sh

run.sh

#!/usr/bin/env expect

set _project [lindex $argv 0]

set _build_number [lindex $argv 1]

set _environment  [lindex $argv 2]

set _application  [lindex $argv 3]

set timeout 90

spawn su test

sleep 3

send "password"

sleep 3

send "cd /home/test\r"

sleep 3

send "./deployer.sh $_project $_build_number $_environment $_application \r"

expect "success"

Interact

脚本解释:

1.使用expect命令 安装方法 yum install expect

2.前四个set用于接收参数 set timeout用于指定执行脚本的超时时间

3.通过su 自动设置密码 从Jenkins用户切换到test用户

4.每条指令间隔我这里前面设置等待3秒保证脚本执行完成

5.最后一个调用deployer.sh是指最终的部署,通过参数指定环境,应用,构建包号

6.deployer.sh执行成功后返回success,expect判断接收到success完成脚本执行,等待返回值的最大时间是

上面设置set timeout

 

此次教程中,Jenkins插件属于简单操作,后面的部署命令调用是重点.

每个公司都有自己的部署方式,但是Jenkins打包服务器与应用服务器基本都是分开的.

所以会涉及到通过脚本切换服务器角色执行命令,所以这里就用到了except实现.

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值