美文网首页
jenkins项目构建和部署终端脚本

jenkins项目构建和部署终端脚本

作者: e1ed1d30f0c5 | 来源:发表于2019-10-18 10:41 被阅读0次

背景

目前公司有两套jenkins环境,一个用于部署测试环境和构建生产环境发布包,一个用于部署生成环境。因为每次发布的时候,都需要在打开浏览器,在浏览器上多次点击,比较麻烦,于是写了个shell脚本用于部署。

步骤

  • 打开http://jenkins_build_url/jenkins/cli,jenkins_build_url是对应jenkins服务的地址。点击下载jenkins-cli.jar
  • 编写shell脚本,脚本名称为jenkins.sh。如mac在终端执行vim jenkins.sh。 脚本中需要替换一些变量
    • PATH_OF_CLI:jenkins-cli.jar存放的位置
    • jenkins_build_url: 部署测试环境和构建生产环境发布包的jenkins地址
    • user_name: 登录的用户id
    • password:登录密码
    • jenkins_deploy_url:部署生成环境jenkins地址
    • job_name:测试环境部署job名称
    • build_job_name:生产环境发布包构建job名称
    • deploy_job_name:生产环境部署job名称
    • server_name:服务器名称前缀
#!/bin/bash

#构建工程,可以跟多个参数 参数名为job名称
function jenkins_build(){
        for i in $*
        do
                java -jar /PATH_OF_CLI/jenkins-cli.jar -s jenkins_build_url -auth user_name:password  build $i -f
        done
}
#deploy生产环境系统 第一个参数是job名称,第二参数是部署服务器名称
function jenkins_deploy(){
        java -jar /PATH_OF_CLI/jenkins-cli.jar -s jenkins_deploy_url -auth user_name:password  build $1 -p action=deploy -p hosts=$2 -f
}

#部署交互函数
function jenkins_echo(){
        # 财务系统可能需要先构建财务的jooq项目 输入y则先构建jooq项目 然后构建对应的项目
        read  "all?build all?"
        if [[ $all = 'y' ]] 
        then
                jenkins_build jooq-model-online $1
        else
                jenkins_build $1
        fi
        # 是否部署第一台机器
        read "deploy?deploy 1?"
        if [[ $deploy = 'y' ]]
        then
                # 我们部署的服务器名称的统一规则是 前缀+序号
                jenkins_deploy $2 ${3}1
        fi
        # 是否部署第二台机器
        read "deploy?deploy 2?"
        if [[ $deploy = 'y' ]]
        then
                jenkins_deploy $2 ${3}2
        fi
}

# 测试环境 构建命令
alias jtest='jenkins_build job_name'
# 线上部署命令
alias jprod='jenkins_echo build_job_name deploy_job_name server_name'
  • 给脚本增加执行权限,chmod +x jenkins.sh
  • source jenkins.sh
  • 部署测试环境,执行名称 ltfo。部署生产环境执行jprod

问题

因为公司的jekins使用了nginx代理,刚开始jenkins_build_url是对应的nginx的地址,所以访问无效,后来改成jenkins的地址就好了

相关文章

网友评论

      本文标题:jenkins项目构建和部署终端脚本

      本文链接:https://www.haomeiwen.com/subject/mnqimctx.html