# CloudConnect **Repository Path**: yjcadmin/cloud-connect ## Basic Information - **Project Name**: CloudConnect - **Description**: 云连接(CloudConnect),寓意连接云,目前只能连接OpenStack,实现可视化操作。主要通过 Restful 方式调用 OpenStack API 实现。 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 2 - **Forks**: 0 - **Created**: 2023-10-03 - **Last Updated**: 2024-10-27 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # CloudConnect # 一、介绍 1)云连接(CloudConnect),寓意连接云,目前只能连接OpenStack,实现可视化操作。主要通过 Restful 方式调用 OpenStack API 实现。 2)目前功能: - 首页监控:云主机、物理机、云盘、CPU、内存、存储、网络、镜像、用户 - 云主机:创建云主机、控制台、启动、重启、停止、挂起、恢复、删除; - 云盘:创建云盘、删除; - 镜像:创建镜像、删除; - 计算规格:创建计算规格、删除; - 网络:创建网络、创建子网、删除网络、删除子网。 3)技术路线: 前端:HTML、Bootstrap UI 后端:Python、Django、Restful ## 部署教程 项目部署:[点击跳转](https://www.qiuyl.com/2024/06/22/cloudconnect-%e9%a1%b9%e7%9b%ae%e9%83%a8%e7%bd%b2/) # 二、工程结构 ## 2.1 项目主目录 项目整体配置 ```shell [root@controller cloud]# tree CloudConnect CloudConnect ├── asgi.py ├── __init__.py ├── __pycache__ │ ├── __init__.cpython-37.pyc │ ├── settings.cpython-37.pyc │ ├── urls.cpython-37.pyc │ └── wsgi.cpython-37.pyc ├── settings.py # 项目设置 ├── urls.py # 定义所有页面url地址 └── wsgi.py 1 directory, 9 files ``` ## 2.2 APP:home app是django中的一个概念,指一个小的应用和模块。将项目中的功能划分,划分为一个一个的小应用,组成一个大项目。 ### 2.2.1 中间件 中间件是一个类,再页面之前执行 ```shell [root@controller cloud]# tree home/middleware/ home/middleware/ ├── auth.py # 定义中间件 └── __pycache__ └── auth.cpython-37.pyc 1 directory, 2 files ``` ### 2.2.2 静态资源目录 静态资源存放,包含图片、插件、镜像 ```shell [root@controller cloud]# tree home/static/ home/static/ ├── css ├── image_file │ ├── CentOS_7.5_x86_64_XD.qcow2 │ ├── cirros-0.3.3-x86_64-disk.img │ └── cirros-0.5.2-x86_64-disk.img ├── img │ ├── cloud-bookPag.png # 页面标题图片,主Logo │ ├── cloud.png │ ├── menu.png │ ├── \345\215\241\351\200\232\345\244\264\345\203\217.png # 乱码的图片是中文 │ ├── \345\244\264\345\203\217.png │ ├── \347\224\267\345\255\251\345\244\264\345\203\2172.png │ └── \347\224\267\345\255\251\345\244\264\345\203\217.png ├── js │ └── jquery-3.7.0.min.js # bootstarp依赖jquery └── plugins ├── bootstrap-3.4.1-dist # bootstarp UI组件的包 └── font-awesome-4.7.0 # 应该是JS包 14 directories, 64 files ``` ### 2.2.3 HTML目录 html页面 ```shell [root@controller cloud]# tree home/templates/ home/templates/ ├── change_password.html # 修改密码页面 ├── cloud_resource_pool_disk.html # 云资源池-云盘页面 ├── cloud_resource_pool_flavor.html # 云资源池-计算规格页面 ├── cloud_resource_pool_image.html # 云资源池-镜像页面 ├── cloud_resource_pool_network.html # 云资源池-网络页面 ├── cloud_resource_pool_subnet.html # 云资源池-子网页面 ├── cloud_resource_pool_vm.html # 云资源池-云主机页面 ├── create_disk.html # 创建磁盘页面 ├── create_flavor.html # 创建计算规格页面 ├── create_image.html # 创建镜像页面 ├── create_network.html # 创建网络页面 ├── create_subnet.html # 创建子网页面 ├── create_vm.html # 创建云主机页面 ├── home.html # 首页 ├── init_cloud.html # 初始化页面 ├── layout.html # 模板页面 ├── layout_index.html # 登录、注册、注销账号模板页面 ├── layout_resource_pool.html # 资源池模板页面 ├── login.html # 登录页面 ├── logout.html # 账号注销页面 ├── register.html # 注册页面 └── test.html # test文件 0 directories, 21 files ``` ### 2.2.4 工具包目录 主要编写调用OpenStack API接口 ```shell [root@controller cloud]# tree home/utils/ home/utils/ ├── cinder.py # 调用cinder api ├── glance.py # 调用glance api ├── __init__.py ├── keystone.py # 调用keystone api ├── neutron.py # 调用neutron api ├── nova.py # 调用nova api ├── openstack.py # 初始化、连接OpenStack和CloudConnect数据库、获取对应指标 1 directory, 14 files ``` ### 2.2.5 视图层目录 调用utils目录中的包,并编写对应逻辑实现 ```shell [root@controller cloud]# tree home/views/ home/views/ ├── cinder.py ├── glance.py ├── init_cloud.py ├── __init__.py ├── keystone.py ├── neutron.py ├── nova.py └── views.py 1 directory, 16 files ``` ## 2.3 MySQL 数据库:cloudconnect 表结构: - process_subnet:创建子网所需数据 ![img](images/1693836656161-3ab3b884-f857-47b6-9f77-12ba8434c112-1719028436909.png) ![img](images/1693836961696-bb558e73-6e14-4d05-9e58-b0395a9c8956.png) - user:用户表 ![img](images/1693836705690-9aa56c96-1543-4f1d-a99b-6f3783ce7949.png) ![img](images/1693836985755-d1a3b809-038e-42d7-95e8-5f4836617789.png) # 三、架构图 ![](images/1693838254437-55be2872-284a-4565-8a5c-66f809feca6d.png) 访问流程:用户 -> html -> views -> Restful-API(utils)-> PyMySQL -> html -> 用户 编码流程:urls -> veiws -> utils -> html # 四、演示图 登录 ![](images/1694859587302-ff2dcbb9-1cd3-4c77-90e4-c5e009b1180d.png) 初始化 ![](images/1693835490995-6b2b6983-e45a-4c8a-a7c8-9d8f40b9ca0a.png) 首页 ![](images/202406221144969.png) 资源池 ![](images/202406221146579.png) ![](images/202406221146997.png) ![](images/202406221147979.png) ![image-20240622114748240](images/202406221147398.png) ![](images/202406221148287.png)