iis服务器助手广告广告
返回顶部
首页 > 资讯 > 操作系统 >Linux实现项目的自动化部署
  • 389
分享到

Linux实现项目的自动化部署

Linux项目自动化部署 2022-07-08 11:07:07 389人浏览 独家记忆
摘要

一、自动化部署git项目 #!/bin/bash # 清除项目进程和历史文件 pkill -f start.py sleep 1 cd /root/automation |rm -rf testProduce/

一、自动化部署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实现项目自动化部署的文章就介绍到这了。希望对大家的学习有所帮助,也希望大家多多支持我们。

--结束END--

本文标题: Linux实现项目的自动化部署

本文链接: https://www.lsjlt.com/news/33273.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作