一、新环境搭建步骤
v3.3.0开始支持Python3.12,推荐部署环境 CentOS10 + Python3.12。
-
安装python和Git
请自行安装python和Git。
项目部署路径为 /home/uwsgi/,使用Git拉取代码:cd /home/uwsgi/ git clone https://gitee.com/cstcloud-cnic/kunyuan.git
-
安装python运行环境
使用系统python3.12+环境,在代码工程根目录下运行命令:
pip3 install -r 00_script/depend/requirements.txt
-
安全敏感信息配置文件
- 复制安全信息配置demo文件security_demo.py,并命名文件名为security.py,根据自己情况完成配置。配置项主要包括 数据库、邮箱配置;
-
数据库安装
数据库和版本支持MySQL(8.0+)、MariaDB(10.4+)和TiDB(7.5.0+),请自行安装mysql、Mariadb或TiDB数据库,根据自己的情况修改security.py文件中数据库的配置项。
DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', # mysql数据库引擎 # 'ENGINE': 'django_tidb', # TiDB数据库 'NAME': 'xxx', # 数据的库名,事先要创建之 'HOST': '127.0.0.1', # 主机 'PORT': '3306', # 数据库使用的端口 'USER': 'xxx', # 数据库用户名 'PASSWORD': 'xxx', # 密码 'OPTIONS': { 'init_command': "SET sql_mode='STRICT_TRANS_TABLES'", 'charset': 'utf8mb4' } }, }
特别注意
创建数据库时,数据库字符集(CHARACTER)使用“utf8mb4”,字符集校对(COLLATION)推荐“utf8mb4_bin”。
通过sql导入旧数据库数据时请一定确保旧数据库和新建数据库的字符集校对一致,例如必须同时为“utf8mb4_bin”,或者同时为“utf8mb4_general_ci”。因为表主键id是字符串型,后续新建表外键字符集校对会跟随新数据库,如果通过sql导入的旧表和新表字符集校对不一致,创建外键约束会失败。 -
运行服务
-
下面推荐一种部署方式,Python3.12、Nginx、uwsgi。
-
数据库迁移,在项目根目录下运行如下命令完成数据库迁移。
# 可以加参数 --plan 先查看将执行的迁移计划 python3 manage.py migrate --plan # 执行数据库迁移 python3 manage.py migrate
-
收集静态文件
python3 manage.py collectstatic --noinput
-
项目根目录下00_script目录中有uwsgi的配置文件和几个sh脚本可以方便控制uwsgi启动关闭;
-
也可以使用systemctl管理服务,执行一下脚本config_systemctl.sh,会配置好kunyuan.service服务;
systemctl start/stop/reload kunyuan.service
-
有些接口需要获取客户端的ip地址,所以nginx需要配置标头X-Forwarded-For
X-Forwarded-For 可能伪造,需要在服务一级代理防范处理 比如nginx: uwsgi_param X-Forwarded-For $remote_addr; 不能使用 $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-For $remote_addr; 不能使用 $proxy_add_x_forwarded_for;
-
服务有一些定时任务使用crontab实现,可以使用crontabtask命令管理,具体使用可以查看scripts/readme.md文件
python3 manage.py crontabtask [subcommand] [comment] crontabtask list-setting # 列举查看配置文件中所有定时任务配置 crontabtask add # 添加所有任务到crontab的配置文件 crontabtask add task1 # 添加所有注释以"task1"开头的所有任务 crontabtask show # 列举当前所有已添加激活的定时任务 crontabtask remove # 移除所有任务 crontabtask remove task1 # 移除所有注释以"task1"开头的所有任务
-
站点参数配置
一些站点服务的配置项需要在admin后台(全局配置 > 站点参数)完成配置,包括服务名称、AAI认证等相关配置。
AAI登录认证
需要先去AAI认证服务提交接人申请,然后完成AAI登录相关的参数配置。 -
二、 服务新版本更新上线步骤
新版本更新上线基本步骤
【特别注意】:
版本更新前请先确认线上服务当前版本号A,假如要升级到新版本D,请务必先查看 “中坤 旧版本升级注意事项” 文档,确认从版本A升级到版本D的版本升级步骤。A是否可以一步直接升级到D,或者A需要先升级到C,再从C升级到D。
以下为V1升级V2版本的大致步骤
-
进入项目根目录下
cd /home/uwsgi/kunyuan/
,执行命令systemctl stop kunyuan.service
停止服务; -
更新代码
- 使用命令
git status
查看本地代码是否有改动,如果有改动先执行命令git stash
暂存改动; - 执行命令
git checkout master
切换到主分支; - 执行命令
git fetch origin --tags
拉取版本信息; - 如果要更新到最新的代码,执行命令
git pull origin master
拉取maste主分支最新代码; - 如果要需要更新到指定版本的代码,比如软件最新版本是V5,想从V1升级到V2,执行命令
git checkout V2
切到V2版本代码; - 如果 上面执行了
git stash
暂存了改动,可以执行git stash pop
把暂存的改动恢复;
- 使用命令
-
服务升级
- 执行命令
pip3 install -r 00_script/depend/requirements.txt
安装更新环境依赖包; - 执行命令
python3 manage.py migrate
完成可能的数据库迁移; - 执行命令
python3 manage.py collectstatic --noinput
收集静态文件; - 确认是否需要添加和移除定时任务,使用命令
python3 manage.py crontabtask xxx
管理定时任务;
- 执行命令
-
执行命令
systemctl start kunyuan.service
启动服务;
坤元v3.3.0升级到v3.3.2版本步骤
【注意事项】:
-
升级前请备份数据库。
-
升级涉及版本:
v3.3.1,发布时间: 2024-12-31;
v3.3.2,发布时间: 2025-01-02; -
python环境依赖包文件requirements.txt移动到了00_script/depend/下。
-
需要执行数据库迁移,监控,移除科技云会监控功能模型。
【升级步骤】:
-
进入项目根目录下(cd /home/uwsgi/kunyuan/),执行命令 systemctl stop kunyuan.service 停止服务;
-
更新代码
- 使用命令 git status 查看本地代码是否有改动,如果有改动先执行命令 git stash 暂存改动;
- 执行命令 git checkout master 切换到主分支;
- 执行命令 git fetch origin --tags 拉取版本信息;
- 执行命令 git pull origin master 拉取maste主分支最新代码;
- 如果 上面执行了 git stash暂存了改动,可以执行 git stash pop 把暂存的改动恢复;
-
服务升级
- 执行命令 pip3 install -r 00_script/depend/requirements.txt 安装更新环境依赖包;
- 执行命令 python3 manage.py migrate 完成可能的数据库迁移;
- 执行命令 python3 manage.py collectstatic --noinput 收集静态文件;
-
执行命令 systemctl start kunyuan.service 启动服务;
坤元v3.3.2升级到v3.3.3版本步骤
【注意事项】:
-
升级前请备份数据库。
-
升级涉及版本:
v3.3.3,发布时间: 2025-03-13;
-
uwsgi配置sock文件名由web.sock修改为uwsgi.sock了,需要修改nginx中对应sock文件路径配置;
【升级步骤】:
-
进入项目根目录下(cd /home/uwsgi/kunyuan/),执行命令 systemctl stop kunyuan.service 停止服务;
-
更新代码
- 使用命令 git status 查看本地代码是否有改动,如果有改动先执行命令 git stash 暂存改动;
- 执行命令 git checkout master 切换到主分支;
- 执行命令 git fetch origin --tags 拉取版本信息;
- 执行命令 git pull origin master 拉取maste主分支最新代码;
- 如果 上面执行了 git stash暂存了改动,可以执行 git stash pop 把暂存的改动恢复;
-
服务升级
- 执行命令 pip3 install -r 00_script/depend/requirements.txt 安装更新环境依赖包;
- 执行命令 python3 manage.py migrate 完成可能的数据库迁移;
- 执行命令 python3 manage.py collectstatic --noinput 收集静态文件;
-
执行命令 systemctl start kunyuan.service 启动服务;
-
需要修改nginx中服务sock文件的路径为
/home/uwsgi/kunyuan/uwsgi.sock
,重新加载nginx -s reload
;