evcloud软件环境搭建(CentOS9)
将更新centos stream 10 的部署信息
evcloud 结构图示例
说明:
EVCloud结构包括三类节点:管理节点、计算节点与存储节点\
计算节点和存储节点需要自己配置
各节点的软件依赖
节点类型 | 依赖软件 | 版本 | 功能说明 |
---|---|---|---|
管理节点 | Python | 3.12 | EVCloud运行语言 |
Django | 4.2.16 | EVCloud 运行框架 | |
Uwsgi | 2.0.20 | EVCloud web 服务服务器 | |
WebSockify | 0.10.0 | 虚拟机 Novnc访问服务 | |
EVCloud | 4.7.0 | ||
Nginx | 1.20.1 | HTTP 代理服务 | |
Git | -- | ||
MariaDB | 10.5.16 | 元数据管理 | |
libvirt | 8.7.0 | 提供计算虚拟化服务 | |
计算节点 | qemu-kvm | 7.1.0 | 提供计算虚拟化服务 |
存储节点 | ceph | 17.2.5 | 提供存储虚拟化服务 |
管理节点环境部署
1 安装python和Git
centos9 系统已安装python3.9 \
其他操作系统环境请自行安装python3.9和Git\
使用Git拉取代码:
https://gitee.com/cstcloud-cnic/evcloud.git
2 安装python运行环境
(1) 使用python虚拟环境
使用pip命令安装pipenv。
pip3 install pipenv
在代码工程根目录下,即文件Pipfile同目录下运行命令:
pipenv install
(2) 使用系统python环境
在代码工程根目录下,即文件requirements.txt同目录下运行命令:
pip3 install -r requirements.txt
缺少 libvirt-python dnf install libvirt
3 安全敏感信息配置文件
安全信息配置demo文件security_demo.py修改文件名为security.py,根据自己情况完成配置。
4 数据库安装
请自行安装mysql数据库,根据自己的情况修改security.py文件中数据库的配置项。
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql', # 数据库引擎
'NAME': 'xxx', # 数据的库名,事先要创建之
'HOST': '127.0.0.1', # 主机
'PORT': '3306', # 数据库使用的端口
'USER': 'xxx', # 数据库用户名
'PASSWORD': 'xxx', # 密码
'OPTIONS': {'init_command': "SET sql_mode='STRICT_TRANS_TABLES'", 'charset': 'utf8mb4'}
},
}
5 CEPH依赖库安装
与ceph的通信默认使用官方librados的python包python3-rados,python3-rbd的rpm包安装成功后,python包会自动安装到
系统python3第三方扩展包路径下(/usr/lib64/python3.9/site-packages)。
使用python虚拟环境的,需要手动把路径下的python包文件rados和rbd复制到你的虚拟python环境*/site-packages/下。
dnf install python3-rados.x86_64
dnf install python3-rbd.x86_64
6 运行服务
如果使用python虚拟还击,先激活python虚拟环境
pipenv shell
数据库迁移,在项目根目录下运行如下命令完成数据库迁移。
python manage.py migrate
运行web服务
python manage.py runserver 0:80
如果一切正常,打开浏览器输入url(主机IP, 如:127.0.0.1)即可查看站点;
7 NoVNC服务
安装websockify
pip3 install websockify
替换websockify的token插件,使用项目中自定义的token插件,根据自己环境修改以下命令中的PROJECT_PATH和PYTHON_PATH:
ln -s PROJECT_PATH/novnc/plugin_mysql_token/token_plugin_mysql.py PYTHON_PATH/python3.6/site-packages/websockify/token_plugins.py
启动websockify服务
websockify 0.0.0.0:84 --daemon --web=/usr/share/novnc --token-plugin=TokenMysql --token-source='mysql'
请对应设置项目配置文件settings.py中参数NOVNC_SERVER_PORT的值。