请选择 进入手机版 | 继续访问电脑版
香港到内陆最快网络

随随便便

 找回密码
 立即注册
搜索
查看: 60|回复: 3

[增涨姿势] VManagePlatform虚拟化管理平台

[复制链接]

23

主题

29

帖子

148

积分

管理员

风骚的小马哥

Rank: 9Rank: 9Rank: 9

积分
148
发表于 2020-5-15 22:02:44 | 显示全部楼层 |阅读模式

请注册后查看详细

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
VManagePlatform虚拟化管理平台




VManagePlatform是什么?
一个KVM虚拟化管理平台

开源地址:
https://github.com/welliamcao/VManagePlatform




开发语言与框架:
编程语言:Python2.7 + HTML + JScripts
前端Web框架:Bootstrap
后端Web框架:Django
后端Task框架:Celery + Redis




VManagePlatform有哪些功能?

Kvm虚拟机生产周期管理功能
资源利用率(如:CPU、MEM、磁盘、网络)
实例控制(如:生存周期管理、快照技术,Web Console等等)
设备资源控制(如:在线调整内存、CPU资源、热添加、删除硬盘)
存储池管理
增减卷,支持主流类型存储类型
资源利用率
网络管理
支持SDN,底层网络使用OpenVSwitch/Linux Bridge,IP地址分配,网卡流量限制等等。
用户管理
支持用户权限,用户组,用户虚拟机资源分配等等
宿主机
资源利用率,实例控制




环境要求:
编程语言:Python2.7
系统:CentOS 7
网络规划:管理网络接口=1,虚拟化数据网络>=1,如果只有一个网卡使用OpenVswitch时需要手动配置网络以免丢失网络
SDN需求:OpenVswitch Or Linux Birdge




TIPS:
控制服务器:执行1-10步骤
节点服务器:执行2/3/4步骤,在控制服务器上执行5步骤中的ssh-copy-id
为了更好的体验,建议使用Chrome或者Foxfire,如果要获取虚拟机ip,请在虚拟机里面安装qemu-guest-agent(centos 6需要安装libvirt>=2.3.0以上)
主机列表跟用户中心-我的虚拟机的数据更新,需要在任务调度里面配置task




虚拟机添加流程:
第一步,平台先添加宿主机(计算节点)
第二步,添加数据类型存储池与镜像存储池
镜像存储池: 计算节点添加dir类型存储池,把ISO镜像文件放到存储池里面或者可以将ISO镜像文件做成NFS共享,添加存储池的时候选择nfs模式。(注:以便添加虚拟机的时候能加载到系统镜像)
数据存储池:按照页面添加即可,主要用来存储虚拟机硬盘。
第三步,计算节点添加网络,可选择bridge与nat模式
第四步,为计算节点分配虚拟机
第五步,配置任务调度,自动更新计算节点虚拟机资源信息




安装环境配置

一、配置需求模块
  1. # yum install zlib zlib-devel readline-devel bzip2-devel openssl-devel gdbm-devel libdbi-devel ncurses-libs kernel-devel libxslt-devel libffi-devel python-devel libvirt libvirt-client libvirt-devel gcc git mysql-devel -y
  2. # mkdir -p /opt/apps/ && cd /opt/apps/
  3. # git clone https://github.com/welliamcao/VManagePlatform.git
  4. # cd VManagePlatform
  5. # pip install -r requirements.txt
复制代码


二、安装kvm
  1. 1、关闭防火墙,selinux
  2. # systemctl stop firewalld.service && systemctl disable firewalld.service
  3. # setenforce 0 临时关闭
  4. # systemctl stop NetworkManager
  5. # systemctl disable NetworkManager


  6. 2、安装kvm虚拟机
  7. # yum install python-virtinst qemu-kvm virt-viewer bridge-utils virt-top libguestfs-tools ca-certificates libxml2-python audit-libs-python device-mapper-libs
  8. # 启动服务
  9. # systemctl start libvirtd
  10. 注:下载virtio-win-1.5.2-1.el6.noarch.rpm,如果不安装window虚拟机或者使用带virtio驱动的镜像可以不用安装
  11. # rpm -ivh virtio-win-1.5.2-1.el6.noarch.rpm

  12. 节点服务器不必执行
  13. # yum -y install dnsmasq
  14. # mkdir -p /var/run/dnsmasq/
复制代码


三、安装OpenVswitch(如果使用底层网络使用Linux Bridge可以不必安装)
  1. 安装openvswitch
  2. # yum install gcc make python-devel openssl-devel kernel-devel graphviz kernel-debug-devel autoconf automake rpm-build redhat-rpm-config libtool
  3. # cd /usr/local/src
  4. # wget http://openvswitch.org/releases/openvswitch-2.3.1.tar.gz
  5. # tar xfz openvswitch-2.3.1.tar.gz
  6. # mkdir -p ~/rpmbuild/SOURCES
  7. # cp openvswitch-2.3.1.tar.gz ~/rpmbuild/SOURCES
  8. # sed 's/openvswitch-kmod, //g' openvswitch-2.3.1/rhel/openvswitch.spec > openvswitch-2.3.1/rhel/openvswitch_no_kmod.spec
  9. # rpmbuild -bb --without check openvswitch-2.3.1/rhel/openvswitch_no_kmod.spec
  10. # yum localinstall ~/rpmbuild/RPMS/x86_64/openvswitch-2.3.1-1.x86_64.rpm
  11. 如果出现python依赖错误
  12. # vim openvswitch-2.3.1/rhel/openvswitch_no_kmod.spec
  13. BuildRequires: openssl-devel
  14. 后面添加
  15. AutoReq: no

  16. # systemctl start openvswitch
复制代码


四、配置Libvirt使用tcp方式连接
  1. # vim /etc/sysconfig/libvirtd
  2. LIBVIRTD_CONFIG=/etc/libvirt/libvirtd.conf
  3. LIBVIRTD_ARGS="--listen"

  4. # vim /etc/libvirt/libvirtd.conf  #最后添加
  5. listen_tls = 0
  6. listen_tcp = 1
  7. tcp_port = "16509"
  8. listen_addr = "0.0.0.0"
  9. auth_tcp = "none"
  10. # systemctl restart libvirtd
复制代码


五、配置SSH信任
  1. # ssh-keygen -t  rsa
  2. # ssh-copy-id -i ~/.ssh/id_rsa.pub  root@ipaddress
复制代码


六、安装数据库(MySQL,Redis)
  1. 安装配置MySQL
  2. # yum install mysql-server mysql-client
  3. # systemctl start mysqld.service
  4. # mysql -u root -p
  5. mysql> create database vmanage;
  6. mysql> grant all privileges on vmanage.* to 'username'@'%' identified by 'userpasswd';
  7. mysql>quit

  8. 安装配置Redis
  9. # wget http://download.redis.io/releases/redis-3.2.8.tar.gz
  10. # tar -xzvf redis-3.2.8.tar.gz
  11. # cd redis-3.2.8
  12. # make
  13. # make install
  14. # vim redis.conf
  15. daemonize yes
  16. loglevel warning
  17. logfile "/var/log/redis.log"
  18. bind 你的服务器ip地址
  19. # cd ../
  20. # mv redis-3.2.8 /usr/local/redis
  21. # /usr/local/redis/src/redis-server /usr/local/redis/redis.conf
复制代码


七、配置Django
  1. # cd /opt/apps/VManagePlatform/VManagePlatform/
  2. # vim settings.py
  3. 7.1、修改BROKER_URL:改为自己的地址
  4. 7.2、修改DATABASES:
  5. DATABASES = {
  6.     'default': {
  7.         'ENGINE':'django.db.backends.mysql',
  8.         'NAME':'vmanage',
  9.         'USER':'自己的设置的账户',
  10.         'PASSWORD':'自己的设置的密码',
  11.         'HOST':'MySQL地址'
  12. #         'ENGINE': 'django.db.backends.sqlite3',
  13. #         'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
  14.     }
  15. }
  16. 7.3、修改STATICFILES_DIRS
  17. STATICFILES_DIRS = (
  18.      '/opt/apps/VManagePlatform/VManagePlatform/static/',
  19.     )
  20. TEMPLATE_DIRS = (
  21. #     os.path.join(BASE_DIR,'mysite\templates'),
  22.     '/opt/apps/VManagePlatform/VManagePlatform/templates',
  23. )
复制代码


八、生成VManagePlatform数据表
  1. # cd /opt/apps/VManagePlatform/
  2. # python manage.py migrate
  3. # python manage.py createsuperuser
复制代码


九、启动VManagePlatform
  1. # cd /opt/apps/VManagePlatform/
  2. # python manage.py runserver youripaddr:8000
复制代码


十、配置任务系统
  1. # echo_supervisord_conf > /etc/supervisord.conf
  2. # vim /etc/supervisord.conf
  3. 最后添加
  4. [program:celery-worker]
  5. command=/usr/bin/python manage.py celery worker --loglevel=info -E -B  -c 2
  6. directory=/opt/apps/VManagePlatform
  7. stdout_logfile=/var/log/celery-worker.log
  8. autostart=true
  9. autorestart=true
  10. redirect_stderr=true
  11. stopsignal=QUIT
  12. numprocs=1

  13. [program:celery-beat]
  14. command=/usr/bin/python manage.py celery beat
  15. directory=/opt/apps/VManagePlatform
  16. stdout_logfile=/var/log/celery-beat.log
  17. autostart=true
  18. autorestart=true
  19. redirect_stderr=true
  20. stopsignal=QUIT
  21. numprocs=1

  22. [program:celery-cam]
  23. command=/usr/bin/python manage.py celerycam
  24. directory=/opt/apps/VManagePlatform
  25. stdout_logfile=/var/log/celery-celerycam.log
  26. autostart=true
  27. autorestart=true
  28. redirect_stderr=true
  29. stopsignal=QUIT
  30. numprocs=1

  31. 启动celery
  32. # /usr/local/bin/supervisord -c /etc/supervisord.conf
  33. # supervisorctl status
复制代码









Google AdSense   随随便便   安享图床
回复

使用道具 举报

23

主题

29

帖子

148

积分

管理员

风骚的小马哥

Rank: 9Rank: 9Rank: 9

积分
148
 楼主| 发表于 2020-5-15 22:07:56 | 显示全部楼层
部分功能截图




用户中心

                               
登录/注册后可看大图


登录页面

                               
登录/注册后可看大图


用户注册需要admin激活才能登陆

                               
登录/注册后可看大图


主页

                               
登录/注册后可看大图


任务调度

                               
登录/注册后可看大图


宿主机资源

                               
登录/注册后可看大图


虚拟机资源

                               
登录/注册后可看大图


Web Console

                               
登录/注册后可看大图

Google AdSense   随随便便   安享图床
回复

使用道具 举报

1

主题

3

帖子

34

积分

新手上路

Rank: 1

积分
34
发表于 2020-5-15 22:27:28 | 显示全部楼层
前排求骨折码
回复

使用道具 举报

23

主题

29

帖子

148

积分

管理员

风骚的小马哥

Rank: 9Rank: 9Rank: 9

积分
148
 楼主| 发表于 2020-5-15 22:45:47 | 显示全部楼层

还在筹备当中,到时候直接把你打骨折
Google AdSense   随随便便   安享图床
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|Archiver|手机版|随随便便

GMT+8, 2020-5-27 06:47

Powered by SSBB

Copyright © 2020-2222, SSBB

快速回复 返回顶部 返回列表