zoukankan      html  css  js  c++  java
  • 利用jenkins+saltstack+sh部署项目到多台服务器

    jenkins的配置(这里作用只是当做界面使用,利用它来管理执行salt命令,这里以 shop 这个项目目录为例)

    1.利用参数化构建项目,来实现是发布还是回滚操作:

    2.构建操作来执行shell脚本

    saltstack 的 sls文件编写

    deploy.sls文件如下

    deploy:
      cmd.script:
        - source: salt://deploy.sh
        - args: "{{pillar['deploy']}} {{pillar['space']}} {{pillar['project']}} {{pillar['repertory']}} {{pillar['version']}}"
        - user: www
        - group: www

    上面的作用就是 执行配置文件中设置资源目录 下的 deploy.sh脚本,参数为args里的,以 www用户,用户组为www 的权限来执行sh里的内容。

    shell脚本编写

    #!/bin/sh
    
    deploy=$1
    workspace=$2
    #通过jenkins动态获取
    project=$3
    repertory=$4
    version=$5
    
    case $deploy in
      publish)
          #init
          if [ ! -d ${workspace} ]; then
            mkdir -p $workspace
          fi
        
          #echo $project
          #初始化项目
          if [ ! -d ${project} ]; then
            cd $workspace && git clone $repertory
            composer install
          else
            cd $project && git pull
            #composer update
          fi
        ;;
      rollback)
          if [ ! -d ${project} ]; then
            echo "you need to create project first"
            exit 2
          else
            cd $project
            if [ -z ${version} ]; then
              echo "回滚上一版本"
              git reset --hard HEAD^
            else
              echo "回滚指定版本"
              git reset --hard $version 
            fi 
          fi 
        ;;
      *)
      exit
        ;;
    esac

    作用就是:执行sh脚本传过来的参数

    1.来判断是发布还是回滚 操作(git)

    如果是 publish 操作,判断 指定的目录 项目文件夹是否存在 , 存在 执行 git pull 操作,不存在(即第一次构建)执行git clone 并且 通过composer安装相关库。

    如果是 rollback操作,判断 参数中version(git log的唯一hash) 是否为空,如果为空则回滚到上一版本,否则回滚到指定版本。

  • 相关阅读:
    Django之url路由
    Django之setting文件
    Diango之通过form表单向服务端发送数据
    Django之win7下安装与命令行工具
    Linux学习之查看系统资源命令总结(二十二)
    实现简单的web框架
    Linux下发送邮件
    Linux学习之日志管理(二十一)
    Shell学习之结合正则表达式与通配符的使用(五)
    Linux学习之后台任务与定时任务(二十)
  • 原文地址:https://www.cnblogs.com/loveyouyou616/p/8919191.html
Copyright © 2011-2022 走看看