AIHub服务部署与升级

一、新环境搭建步骤

  1. 安装python和Git

    请自行安装python和Git。
    项目部署路径为 /home/uwsgi/,使用Git拉取代码:

    cd /home/uwsgi/
    git clone https://gitee.com/cstcloud-cnic/aihub.git
  2. 安装python运行环境

    使用系统python3.11+环境,在代码工程根目录下运行命令:

    pip3 install -r 00_script/depend/requirements.txt
  3. 安全敏感信息配置文件

    • 复制安全信息配置demo文件security_demo.py,并命名文件名为security.py,根据自己情况完成配置。配置项主要包括 数据库、邮箱配置;
  4. 数据库安装

    数据库和版本支持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导入的旧表和新表字符集校对不一致,创建外键约束会失败。
    `CREATE DATABASE `aihub` DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_bin;`

  5. 运行服务

    • 下面推荐一种部署方式,Python3.11+、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,会配置好 aihub.service服务;

      ./00_script/config_systemctl.sh
      systemctl start/stop/reload aihub.service
    • 站点参数配置

    一些站点服务的配置项需要在admin后台(全局配置 > 站点参数)完成配置,包括服务名称、AAI认证、JWT公钥等相关配置。

    AAI登录认证
    如果要开启本登录认证,需要先去AAI认证服务提交接人申请,然后完成AAI登录相关的参数配置。

    云坤JWT认证(AAI)
    需要去对应的云坤认证服务添加本服务的回调地址白名单,然后在后台“站点参数”配置云坤认证要显示的名称、本服务的地址、云坤认证服务地址和云坤认证服务的JWT公钥。


类别: