跳转至

13. 部署静态网站shell脚本

1. 目标

1. jenkins服务器是:10.0.8.5
2. 需要部署web服务的服务器是:10.0.8.2 10.0.8.3
3. 10.0.8.2及10.0.8.3上,需要删除原来的项目目录,然后重新拉取代码
4. 可以使用shell脚本实现,可以使用ansible自动化,可以使用python脚本

2. shell脚本方式

1. 分析

1.可以在jenkins服务器上拉取代码,然后压缩,发送到web服务器,解压缩
2.可以直接远程操作web服务器拉取代码

3. 方案1命令测试

#0. 拉取代码
cd /service && rm -rf chupeng130 && /usr/bin/git clone https://gitee.com/chupeng130/chupeng130.git

#1.拉取代码后,压缩
cd /tmp && zip -r chupeng130.zip /service/chupeng130/* > /dev/null

#2.远程复制
scp /tmp/chupeng130.zip ubuntu@10.0.8.2:/tmp
# 速度贼慢!

#3.删除之前的
ssh ubuntu@10.0.8.2 "sudo rm -rf /service/chupeng130/*" 

#4.移动压缩文件到/service/chupeng130
ssh ubuntu@10.0.8.2 "sudo mv /tmp/chupeng130.zip /service/chupeng130" 



#5. 解压缩
ssh ubuntu@10.0.8.2 "cd /service/chupeng130 && sudo unzip chupeng130.zip > /dev/null && sudo rm -rf chupeng130.zip"

1. scp方案脚本

mkdir /jenkins-scripts
cd /jenkins-scripts
vim scp.sh
#!/bin/bash

#1. 拉取gitee仓库代码
cd /service && rm -rf chupeng130 && /usr/bin/git clone https://gitee.com/chupeng130/chupeng130.git
if [  $? -eq 0  ];then
  echo 'setp1:拉取代码成功'
fi 
#2. 压缩
cd /tmp && zip -r chupeng130.zip /service/chupeng130/* > /dev/null
if [  $? -eq 0  ];then
  echo 'step2:压缩完成'
fi   
#3.远程复制
scp /tmp/chupeng130.zip ubuntu@10.0.8.2:/tmp
# 速度贼慢!
if [  $? -eq 0  ];then
  echo 'step3:远程复制完成'
fi   
#4.删除之前的
ssh ubuntu@10.0.8.2 "sudo rm -rf /service/chupeng130/*" 
if [  $? -eq 0  ];then
  echo 'step4:删除旧项目目录完成'
fi   
#5.移动压缩文件到/service/chupeng130
ssh ubuntu@10.0.8.2 "sudo mv /tmp/chupeng130.zip /service/chupeng130" 
if [  $? -eq 0  ];then
  echo 'step5:移动压缩文件完成'
fi 

#6. 解压缩
ssh ubuntu@10.0.8.2 "cd /service/chupeng130 && sudo unzip chupeng130.zip > /dev/null && sudo rm -rf chupeng130.zip"
if [  $? -eq 0  ];then
  echo 'step6:解压缩完成'
fi 

4. 方案2命令测试

#1. 首先,需要登录10.0.8.2,配置https免密拉取代码
git config --global credential.helper store
# 拉取一次,输入账号密码
cd /service/chupeng130
rm -rf *
git clone https://gitee.com/chupeng130/chupeng130.git
# 再拉取一次测试
git clone https://gitee.com/chupeng130/chupeng130.git

#2. 删除旧的代码
ssh ubuntu@10.0.8.2 "cd /service/chupeng130 && sudo rm -rf *" 

#3. 拉取新的代码
ssh ubuntu@10.0.8.2 "cd /service/chupeng130 && sudo git clone https://gitee.com/chupeng130/chupeng130.git" 

#4. 测试
curl https://chupeng.site > /dev/null
echo $?

脚本

#!/bin/bash
echo 'step1:开始删除旧的网站内容'
ssh ubuntu@10.0.8.2 "cd /service/chupeng130 && sudo rm -rf *" 
if [  $? -eq 0  ];then
  echo 'step1:删除完成!'
fi   
echo 'step2:开始重新拉取新代码'
ssh ubuntu@10.0.8.2 "cd /service/chupeng130 && sudo git clone https://gitee.com/chupeng130/chupeng130.git" 
if [  $? -eq 0  ];then
  echo '拉取新代码完成!'
fi   

多台机器部署脚本

#!/bin/bash
# 机器多的话,可以使用循环!!!
for i in 2,3
do 
    echo 'step1:开始删除旧的网站内容'
    ssh ubuntu@10.0.8.$i "cd /service/chupeng130 && sudo rm -rf *" 
    if [  $? -eq 0  ];then
      echo 'step1:删除完成!'

    echo 'step2:开始重新拉取新代码'
    ssh ubuntu@10.0.8.$i  "cd /service/chupeng130 && sudo git clone https://gitee.com/chupeng130/chupeng130.git" 
    if [  $? -eq 0  ];then
      echo '拉取新代码完成!'
done 

最后更新: 2022-02-23 13:04:43