编译、安装和运行 (基于wheel)
本章节介绍非容器化部署方式,通过编译wheel包完成QCOS的安装和运行,为可选部署方案。
前提条件
需确保操作系统已安装Python 3及相关组件,具体步骤如下:
安装系统级Python组件:
# BCLinux/CentOS/OpenEuler环境下示例: yum install -y python3 python3-pip python3-sphinx python3-requests
安装Python依赖包:
使用venv虚拟隔离环境 (可避免各驱动软件包的冲突问题) cd ./requirements ./install-venvs.py 或者直接在当前环境下安装。注意:各驱动所依赖的软件包需另外安装,并自行解决潜在的软件包冲突问题 pip3 install -r ./requirements/requirements.txt -r ./requirements/requirements-qcos.txt -r ./requirements/requirements-test.txt -r ./requirements/requirements-docs.txt
编辑.env配置文件
进入编译脚本目录,复制配置模板并编辑.env文件:
cd build-scripts
cp ./env.template .env
vim .env
# .env配置文件说明
# 1. DEV选项为False时表示编译出的镜像是生产环境镜像; True时表示编译出来的是开发环境镜像。开发环境会挂载(mount)宿主机源代码到容器中, 直接使用挂载的源代码运行, 方便开发者在宿主机上修改代码。而生产环境镜像中会集成源代码。
# 2. 需要填写PREFECT_SERVER_API_HOST地址(一般填写为本机IP地址或者127.0.0.1)
# 3. 如果本地可以访问外网, 无需填写YUM_MIRROR, PIP_MIRROR
# 4. 如果本地无法访问外网, 需要保证局域网内有OpenEuler操作系统的YUM镜像源(YUM_MIRROR), 以及Python软件包镜像源(PIP_MIRROR)。
# YUM_MIRROR地址格式示例: http://mirrors.cmecloud.cn
# PIP_MIRROR地址格式示例: http://mirrors.cmecloud.cn/pypi/simple
# NPM_MIRROR地址格式示例: http://mirrors.cmecloud.cn/npm/repository/qcos/
# PYTHON_SRC_MIRROR地址格式示例: https://www.python.org/ftp/python/3.11.6/Python-3.11.6.tgz
# PYPY_BIN_MIRROR地址格式示例: https://downloads.python.org/pypy/pypy3.11-v7.3.20-linux64.tar.bz2
# 5. DEBUG是内部开发使用的调试开关, 可以配成默认的False
# 6. LOCAL_CICD是本地CICD的标记开关, 可以配成默认的False
# 7. REGISTRY为Docker容器私有镜像仓库地址, 如果本机可以访问DockerHub, 则可以留空
编译安装QCOS软件包
基于poetry编译操作系统QCOS wheel包
在build-scripts目录下执行编译脚本或直接使用poetry构建:
# BCLinux/CentOS/OpenEuler环境下示例:
cd build-scripts
./build-wheel.sh
# 或直接使用poetry命令
poetry build
安装QCOS wheel包
执行pip3命令安装编译好的wheel包,并配置服务运行所需的目录和环境变量:
# 安装wheel包
cd build-scripts
pip3 install --prefix=/usr ./output/dist/wy_qcos-1.0.0-py3-none-any.whl
# 创建服务运行所需目录
mkdir -p /var/qcos/db/; mkdir -p /var/qcos/storage
# 设置系统环境变量(临时生效,如需永久生效请写入/etc/profile或~/.bashrc)
export PREFECT_SERVER_API_HOST="127.0.0.1"
export PREFECT_SERVER_DATABASE_CONNECTION_URL="sqlite+aiosqlite:////var/qcos/db/prefect.db"
export PREFECT_API_URL="http://127.0.0.1:4200/api"
export PREFECT_LOCAL_STORAGE_PATH="/var/qcos/storage"
export PREFECT_API_DEFAULT_LIMIT=100000
编译安装QCOS Client命令行软件包
基于poetry编译操作系统QCOS Client wheel包
在build-scripts/cli目录下执行编译脚本或直接使用poetry构建:
# BCLinux/CentOS/OpenEuler环境下示例:
cd build-scripts/cli
./build-wheel.sh
# 或直接使用poetry命令
poetry build
安装QCOS Client wheel包
执行pip3命令安装编译好的wheel包,并配置服务运行所需的目录和环境变量:
# 安装wheel包
cd build-scripts/cli
pip3 install --prefix=/usr ./output/dist/wy_qcos_client-1.0.0-py3-none-any.whl
修改配置文件
创建和修改全局配置文件
参照代码库中etc/qcos/qcos.toml, 创建和修改全局配置文件/etc/qcos/qcos.toml 修改或添加DEVICE_LIST中的设备列表
注意: 如果不创建该文件, 容器模式下会自动创建
创建和修改设备配置文件
参照代码库中etc/qcos/conf.d/dummy.toml等, 创建和修改设备配置文件/etc/qcos/conf.d/dummy.toml等
注意: 设备配置文件必须位于/etc/qcos/conf.d下, 文件名需要和qcos.toml中 DEVICE_LIST列出的设备名一致。 文件中section必须对应相关设备名, 比如dummy设备的配置需要放在section: [dummy]下
运行QCOS服务
依次启动Prefect服务和QCOS服务:
# 启动Prefect Server服务
prefect server start
# 启动QCOS API服务(指定配置文件和配置目录)
qcos-api --config-file /etc/qcos/qcos.toml --config-dir /etc/qcos/conf.d/