Linux实现项目的自动化部署

 更新时间:2022年07月08日 10:39:14   作者:小旭2021  
这篇文章介绍了Linux实现项目自动化部署的方法,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

一、自动化部署git项目

#!/bin/bash
 
# 清除项目进程和历史文件
pkill -f start.py
sleep 1
cd /root/automation |rm -rf testProduce/
 
# 获取项目最新git代码(前提服务器配置好git账户)
git clone git@dev.test.com:test_code/testProduce.git
 
# 启动项目
cd testProduce/
nohup /usr/python/bin/python3 start.py &
sleep 3
 
# 检查是否启动成功
pinfo=`pgrep -af start.py`
if [ -n $pinfo ]
then
  echo "Successfully!!!"
else
  echo "Failed!!!"
fi

二、自动化更新git项目

#!/bin/bash
 
# 切换至项目路径
cd /root/automation
 
# 检查项目是否有更新
gitinfo=`git pull`
if [[ "${gitinfo}" == "Already up-to-date." ]]
then
  echo "Already up-to-date."
else
  # 重启项目
  pkill -f start.py
  sleep 1
  nohup /usr/python/bin/python3 start.py &
  sleep 3
 
  # 检查是否启动成功
  pinfo=`pgrep -af start.py`
  if [ -n $pinfo ]
  then
    echo "Successfully!!!"
  else
    echo "Failed!!!"
  fi

三、自动化部署已有项目

#!/bin/bash
 
# 设置源服务器信息
username="root"
password="root"
host="10.22.33.44"
dir="/usr/local/app"
 
# 备份当前项目(以备回滚)
echo "Saving testProduce..."
now=`date +%Y%m%d%H%M%S`
cd $dir | mkdir -p bak/$now
tar -czvf testProduce.tar.gz testProduce/ testProduce-web/
mv testProduce.tar.gz bak/$now/testProduce.tar.gz
 
# 拷贝项目更新包
echo "Copying testProduce..."
/usr/bin/expect<<EOF
  set timeout 10
  spawn scp -r $username@$host:$dir/testProduce-web/ $dir
  expect "*password:"
  send "$password\r"
  expect eof
 
  spawn scp -r $username@$host:$dir/testProduce/lib $dir/testProduce/
  expect "*password:"
  send "$password\r"
  expect eof
 
  spawn scp $username@$host:$dir/testProduce/testProduce.jar $dir/testProduce/
  expect "*password:"
  send "$password\r"
  expect eof
  #interact
EOF
 
# 重启项目
echo "Restarting testProduce..."
sh testProduce/restart.sh
sleep 8
 
# 检查是否启动成功
pinfo=`pgrep -af testProduce.jar`
if [ -n $pinfo ]
then
  echo "Successfully!!!"
else
  echo "Failed!!!"
fi
 
:<<COMMENTBLOCK
  pkill -f testProduce.jar
COMMENTBLOCK

四、自动化回滚项目

#!/bin/bash
 
# 清除当前项目
echo "Clear..."
rm -rf testProduce* |cd bak
 
# 检查是否指定回滚版本(默认回滚上个版本,按日期排序,所以此路径不能有其他文件)
if [ -z $1 ]
then
  vs=`ls -l |sort -r |awk 'NR==2 {print $NF}'`
else
  vs=$1
fi
 
# 回滚项目
echo "Reset>>> $vs"
cd $vs |cp testProduce.tar.gz ../../
tar -zxvf testProduce.tar.gz |rm -f testProduce.tar.gz
 
# 重启项目
echo "Restarting testProduce..."
sh testProduce/restart.sh
sleep 8
 
# 检查是否启动成功
pinfo=`pgrep -af testProduce.jar`
if [ -n $pinfo ]
then
  echo "Successfully!!!"
else
  echo "Failed!!!"
fi

到此这篇关于Linux实现项目自动化部署的文章就介绍到这了。希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • 浅谈Linux中的chattr与lsattr命令

    浅谈Linux中的chattr与lsattr命令

    下面小编就为大家带来一篇浅谈Linux中的chattr与lsattr命令。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-12-12
  • Linux下Kafka分布式集群安装教程

    Linux下Kafka分布式集群安装教程

    这篇文章主要为大家详细介绍了Linux下Kafka分布式集群安装教程,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-12-12
  • Linux系统删除文件夹和文件的命令

    Linux系统删除文件夹和文件的命令

    笔者给大家介绍Linux系统删除文件夹和文件的命令,很多朋友喜欢是rmdir命令来删除文件,不过当遇到目录非空,就会麻烦,下面阅读本文学习下linux删除文件夹和文件的命令吧
    2018-02-02
  • 详解CentOS 7下安装Tomcat到服务

    详解CentOS 7下安装Tomcat到服务

    本篇文章主要介绍了CentOS 7下安装Tomcat到服务,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-06-06
  • linux中mkdir命令使用详解

    linux中mkdir命令使用详解

    这篇文章主要详细介绍了linux中mkdir命令使用方法以及实例代码分享,十分的全面,有需要的小伙伴参考。
    2015-01-01
  • 腾讯云(ubuntu)下安装 nodejs + 实现 Nginx 反向代理服务器

    腾讯云(ubuntu)下安装 nodejs + 实现 Nginx 反向代理服务器

    本文将介绍如何给腾讯云上的 Ubuntu Server 12.04 LTS 64位主机安装 node 及 nginx,并简单配置反向代理。
    2016-11-11
  • 详解Ubuntu 16.04 pycharm设置桌面快捷启动方式

    详解Ubuntu 16.04 pycharm设置桌面快捷启动方式

    本篇文章主要介绍了Ubuntu 16.04 pycharm设置桌面快捷启动方式,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-12-12
  • Ubuntu Server 14.04升级Ubuntu Server 16.04

    Ubuntu Server 14.04升级Ubuntu Server 16.04

    这篇文章主要介绍了 Ubuntu Server 14.04升级Ubuntu Server 16.04,具有一定的参考价值,感兴趣的小伙伴们可以参考一下。
    2016-12-12
  • SELINUX工作原理详解

    SELINUX工作原理详解

    这篇文章主要介绍了SELINUX工作原理详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-01-01
  • Ubuntu18.04 一键升级Python所有第三方包 及安装python包的方法

    Ubuntu18.04 一键升级Python所有第三方包 及安装python包的方法

    pip 是 Python 包管理工具,该工具提供了对Python 包的查找、下载、安装、卸载的功能。这篇文章给大家介绍Ubuntu18.04 一键升级Python所有第三方包 ,感兴趣的朋友一起看看吧
    2019-10-10

最新评论