非编译类语言代码上线
非编译类语言代码上线
手动代码上线(非编译类语言)
1.码云创建代码仓库
[root@tomcat01 /opt]# rz yiliaoqixie.zip
[root@tomcat01 /opt]# unzip yiliaoqixie.zip
[root@tomcat01 /opt]# cd yiliaoqixie/
[root@tomcat01 /opt/yiliaoqixie]# git config --global user.name "孟诗雨"
[root@tomcat01 /opt/yiliaoqixie]# git config --global user.email "912418275@qq.com"
[root@tomcat01 /opt/yiliaoqixie]# git init
[root@tomcat01 /opt/yiliaoqixie]# git add .
[root@tomcat01 /opt/yiliaoqixie]# git commit -m '第一次提交'
[root@tomcat01 /opt/yiliaoqixie]# git remote add origin git@gitee.com:meng_shi_yu/yiliao.git
[root@tomcat01 /opt/yiliaoqixie]# git push -u origin master
码云上传代码就ok了
是因为之前已经配置过码云了

2.部署环境
[root@tomcat01 /opt]# mkdir data 新建空的目录
[root@tomcat01 /opt]# cd data/
[root@tomcat01 /opt/data]# git clone git@gitee.com:meng_shi_yu/yiliao.git
拉取码云上的代码
我在码云上更改了个文件
[root@tomcat01 /opt/data]# cd yiliao/
[root@tomcat01 /opt/data/yiliao]# git remote
origin
[root@tomcat01 /opt/data/yiliao]# git pull -u origin master
更新我刚改的文件
这里面我用了之前的环境 环境不干净 所以报了502的错
[root@git_web01 ~]# mkdir /code
[root@tomcat01 /opt/data]# tar zcf yiliao_v1.tar.gz yiliao
[root@tomcat01 /opt/data]# scp -rp yiliao_v1.tar.gz 10.0.0.7:/code
[root@git_web01 /code]# ls
yiliao_v1.tar.gz
[root@git_web01 /code]# mkdir /html
[root@git_web01 /code]# tar xf yiliao_v1.tar.gz -C /html
[root@git_web01 /code]# rm -rf /usr/share/nginx/html
[root@git_web01 /code]# ln -s /html/yiliao /usr/share/nginx/html
[root@git_web01 /code]# systemctl restart nginx
如果报502
看看nginx配置
[root@git_web01 /code]# cat /etc/nginx/nginx.conf
worker_processes 1;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
server {
listen 80;
server_name localhost;
location / {
index index.html;
root /usr/share/nginx/html; 这一块改改 目录指向什么的
}
}
}
[root@git_web01 /code]# systemctl restart nginx.service
访问 10.0.0.7
3.负载均衡配置一波
`lb端配置
[root@lb01 ~]# cat /etc/nginx/nginx.conf
worker_processes 1;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
upstream monitor {
include /etc/nginx/upstream_monitor;
}
server {
listen 80;
server_name localhost;
location / {
proxy_pass http://monitor;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $remote_addr;
}
}
}
[root@lb01 ~]# cat /etc/nginx/upstream_monitor
server 10.0.0.7;
server 10.0.0.8;
`web端配置
[root@git_web01 ~]# cat /etc/nginx/nginx.conf
worker_processes 1;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
server {
listen 80;
server_name 10.0.0.5;
location / {
index index.html;
root /usr/share/nginx/html;
}
}
}
10.0.0.5访问成功

4.源代码如果更新?
变化一次就从新打一次包推过去
[root@tomcat01 /opt/yiliaoqixie]# git pull -u origin master --tags 更新
[root@tomcat01 /opt/data]# tar zcf yiliao_v2.tar.gz yiliao 改v2就行
后面操作和第一次一模一样
解压创建软链接的时候先删除之前的软链接 再创建
[root@git_web01 /code]# tar xf yiliao_v2.tar.gz -C /html
[root@git_web01 /code]# rm -rf /usr/share/nginx/html
[root@git_web01 /code]# ln -s /html/yiliao /usr/share/nginx/html
实现回滚就是这样 把软链接删了 重新建软链接就行
自动化代码上线(非编译类语言)
简单脚本自动化代码上线
分发密钥这个可以单另写一个脚本 一键推完
for循环ip也可以单另写一个脚本 ip 引用一下
[root@tomcat01 ~]# cat /server/scripts/codeOnline.sh
#!/bin/bash
for i in 7 8
do
scp -p /root/.ssh/id_rsa.pub 10.0.0.$i:/root/.ssh/authorized_keys
done
cd /opt/data/yiliao
git pull -u origin master --tags
git_version=`git tag|tail -1`
tar_name="yiliao_${git_version}.tar.gz"
if [ -f /opt/data/$tar_name ];then
echo "当前已经是$git_version版了"
exit 6
fi
cd /opt/data
tar zcf /opt/data/$tar_name yiliao
for n in 7 8
do
scp -rp /opt/data/$tar_name root@10.0.0.$n:/code
ssh root@10.0.0.$n tar xf /code/$tar_name -C /html
ssh root@10.0.0.$n mv /html/yiliao /html/yiliao_$git_version
ssh root@10.0.0.$n rm -fr /usr/share/nginx/html
ssh root@10.0.0.$n ln -s /html/yiliao_$git_version /usr/share/nginx/html
done
简单自动化回滚脚本
[root@tomcat01 /server/scripts]# cat roolback.sh
#!/bin/bash
ver=$1
cd /opt/data/yiliao
all_tag=`git tag`
fanhuizhi=`echo $all_tag|grep -w -c $ver` w参数是精确匹配 找2不会匹配到22
if [ ! $fanhuizhi -eq 1 ];then
echo "请确认你输入的版本号是否存在!"
exit 5
fi
for n in 7 8
do
ssh root@10.0.0.$n rm -fr /usr/share/nginx/html
ssh root@10.0.0.$n ln -s /html/yiliao_$ver /usr/share/nginx/html
done
两个加一起
[root@tomcat01 /server/scripts]# cat auto_Online.sh
#!/bin/bash
menu(){
cat<<EOF
###############
1.代码升级
2.回滚到指定版本
3.查看版本列表
4.退出
###############
EOF
}
menu
read -p "请输入你要执行的编号:" num
case $num in
1)
/bin/bash /server/scripts/codeOnline.sh 调用脚本
;;
2)
read -p "请输入要回滚到的版本:" n
/bin/bash /server/scripts/roolback.sh $n 调用脚本
;;
3)
cd /opt/data/yiliao && git tag
;;
4)
exit
;;
*)
echo "请按要求输入{1,2,3,4}"
esac
#!/bin/bash
action=$1
version=$2
if [ $action == 'update' ];then
/bin/bash /server/scripts/codeOnline.sh
elif [ $action == 'rollback' ];then
/bin/bash /server/scripts/roolback.sh $version
elif [ $action == 'list' ];then
cd /opt/data/yiliao && git tag
else
echo '你的输入有误
你可以执行以下命令:
update 代码升级
rollback $tag 回滚到指定版本
list 查看版本列表
'
fi

浙公网安备 33010602011771号