代码发布
程序员文章站
2022-06-04 10:45:59
...
代码发布
步骤,流程
1 获取代码
程序员提交代码到代码服务器
2 打包代码(代码服务器执行)
方便传输
tar zcf 压缩文件名 待压缩内容
tar xf 压缩文件名
zcat 压缩文件名 (查看压缩包内容)
3 传输代码
线上服务器--获取---》代码服务器代码
scp 远程主机:绝对路径 目标路径
先登录后拷贝
4 关闭应用
先关离用户近的,后关离用户远的
5 解压代码
6 放置代码
先备份后放置
备份加时间戳
mv tar_code.tar.gz ~/tar_code.tar.gz`date +%Y%m%d%H%M%S`
7 开启应用
先开离用户远,在开离用户近的
8 检查
netstat -ntl | grep 80
2 基础目录环境
mkdir /data/{server,logs,backup,softs,virtual,scripts,codes} -p
一步创建所有目录–>父目录不存在一并创建
3主机网络环境
1 客户端生成**对(在线上服务器运行)
ssh-****** -t rsa
公钥放在:/root/.ssh/id_rsa.pub
2 将公钥传给服务器(传给代码服务器)
在代码服务器中/etc/ssh/sshd_config定义了秘钥存储文件(AuthorizedKeysFile%h/.ssh/authorized_keys)
echo “公钥”>> authorized_keys
3 重启ssh服务 (在代码服务器执行)
4.Django安装和配置
1 Django安装
1.1 虚拟环境安装
1 进入虚拟环境
export WORKON_HOME=/data/virtual/
source /usr/local/bin/virtualenvwrapper.sh
mkvirtualenv -p python3 django
1.2 sz rz(xshell)
1.3 安装django
1 查看INSTALL
2 python setup.py build(可选)
3 python setup.py install
1.4 配置django
1 创建项目
django-admin startproject demo01
2 创建应用
python manage.py startapp test1
修改test1/views.py
3 注册应用
修改 itcast/settings.py
4 关联URL
修改 itcast/urls.py
5 启动django
python manage.py runserver > /dev/null 2>&1 &
5.pcre插件安装
1 pcre插件安装(nginx依赖旧版本pcre)
./configure && make && make install
./configure 裁剪软件 定制安装路径
make 编译
make install 安装
6.nginx 安装
1 nginx安装
./configure --prefix=/data/server/nginx --without-http_gzip_module
(指定安装路径在/data/server/nginx,裁剪gzip模块)
make && make install
动态库链接失败
ldd 查找搜索路径
ln -s /usr/local/lib/libpcre.so.1 /lib/x86_64-linux-gnu/libpcre.so.1
(创建软连接)
配置代理:
http配置段server段增加location配置
location /hello/ {
proxy_pass http://127.0.0.1:8000;
}
7.手工代码发布
1 获取代码
2 打包代码(代码服务器执行)
cd /home/dev/data/codes
tar zcf tar_code.tar.gz test1/
3 传输代码
cd /data/codes
scp [email protected]:/home/dev/data/codes/tar_code.tar.gz .
4 关闭应用
cd /data/server/nginx/sbin
./nginx -s stop
kill `lsof -ti :8000`
5 解压代码
cd /data/codes
tar xf tar_code.tar.gz
6 放置代码
cd /data/server/itcast/test1
mv views.py /data/backup/views.py-`date +%Y%m%d%H%M%S`
cd /data/codes/test1
mv views.py /data/server/itcast/test1/
7 开启应用
export WORKON_HOME=/data/virtual/
source /usr/local/bin/virtualenvwrapper.sh
workon django
cd /data/server/itcast
python manage.py runserver > /dev/null 2>&1 &
cd /data/server/nginx/sbin
./nginx
8 检查
netstat -ntl | grep 80
8. 简单脚本编写
1 命令罗列
2 固定内容变量化(方便修改)
3 功能函数化(方便扩展)
远程执行命令:
ssh 远程主机登录用户名@远程主机ip地址 “命令”
9. 大型脚本编写
1 搭建框架(将步骤变成函数)
2 命令填充(将命令写到函数内)
3 日志功能:
1 定义写日志函数(将时间日期步骤等信息重定向追加到文件)
2 在各个函数内调用写日志函数
4 锁文件功能:
1 编写加锁解锁函数---》创建和删除文件
2 在所有步骤之前先调用加锁函数,所有步骤完毕后调用解锁函数
3 在脚本执行前先判断文件是否存在
5 功能参数化
case判断脚本参数是否是当前支持的功能
增加参数个数安全性的判断
10. 脚本调试
bash -n 脚本名 检查语法
bash -v 脚本名 先打印一遍脚本内容再执行
bash -x 脚本名 打印一句执行一句