密码保护:Kvm管理之WebVirtMgr

1. 前言

​ 当Kvm宿主机越来越多,需要对宿主机的状态进行调控,决定采用WebVirtMgr作为Kvm虚拟化的web管理工具,图形化的WEB,让人能更方便的查看Kvm宿主机的情况和操作。

WebVirtMgr是近两年来发展较快,比较活跃,非常清新的一个Kvm管理平台,提供对宿主机和虚机的统一管理,它有别于Kvm自带的图形管理工具(virtual machine manager),让Kvm管理变得更为可视化,对中小型Kvm应用场景带来了更多方便。

WebVirtMgr采用几乎纯Python开发,其前端是基于Python的Django,后端是基于Libvirt的Python接口,将日常Kvm的管理操作变的更加的可视化。

2. 特点

操作简单,易于使用通过libvirt的API接口对Kvm进行管理提供对虚拟机生命周期管理

3. 功能

宿主机管理支持以下功能CPU利用率内存利用率网络资源池管理存储资源池管理虚拟机镜像虚拟机克隆快照管理日志管理虚机迁移

虚拟机管理支持以下功能

CPU利用率

内存利用率

光盘管理

关/开/暂停虚拟机

安装虚拟机VNC

console连接创建快照

4. 部署

1)、安装相关依赖

查看官网:https://github.com/retspen/webvirtmgr/wiki/Install-WebVirtMgr

首先要安装Kvm虚拟化环境,这里我将WebVirtMgr服务器和Kvm服务器放在同一台机器上部署的,即单机部署。

#1.安装epel源
[root@kvm02 ~]# yum install epel-release
#2.安装依赖及环境
[root@kvm02 ~]# yum -y install git python-pip libvirt-python libxml2-python python-websockify supervisor nginx
#3.安装编译软件
[root@kvm02 ~]# yum -y install gcc python-devel #4.安装numpy(Python进行科学计算的基础软件包)
[root@kvm02 webvirtmgr]# pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple
[root@kvm02 ~]# pip install numpy -i https://pypi.tuna.tsinghua.edu.cn/simple

2)、安装Python需求环境

#1.从git-hub中下载相关的webvirtmgr代码
[root@kvm02 ~]# cd /usr/local/src/
[root@kvm02 /usr/local/src]# git clone git://github.com/retspen/webvirtmgr.git #2.安装WebVirtMgr
[root@kvm02 /usr/local/src]# cd webvirtmgr/
[root@kvm02 /usr/local/src/webvirtmgr]# pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple #3.检查sqlite3 (备注:自带不需要安装,导入模块检查一下。)
[root@kvm02 /usr/local/src/webvirtmgr]# python
Python 2.7.5 (default, Aug 7 2019, 00:51:29)
[GCC 4.8.5 20150623 (Red Hat 4.8.5-39)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import sqlite3
>>> exit() #4.初始化账号
[root@kvm02 /usr/local/src/webvirtmgr]# chmod +x manage.py
[root@kvm02 /usr/local/src/webvirtmgr]# ./manage.py syncdb

#5.生成配置文件
[root@kvm02 /usr/local/src/webvirtmgr]# ./manage.py collectstatic

#6.添加管理员账号,这个是管理员账号,用上面的admin和这个账号都可以登录
[root@kvm02 /usr/local/src/webvirtmgr]# ./manage.py createsuperuser
WARNING:root:No local_settings file found.
Username (leave blank to use 'root'): ops
Email address: 1176494252@qq.com
Password:
Password (again):
Superuser created successfully. #7.拷贝web到相关目录
[root@kvm02 /usr/local/src/webvirtmgr]# mkdir -pv /var/www
mkdir: created directory '/var/www'
[root@kvm02 /usr/local/src/webvirtmgr]# cp -rp /usr/local/src/webvirtmgr /var/www/webvirtmgr #8.设置ssh
[root@kvm02 ~]# ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
Created directory '/root/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:CAIi5mok4liJ/kdhHu45iknOPhfla3rG+NLyNVSPwCk root@kvm02
The key's randomart image is:
+---[RSA 2048]----+
|+. |
|=o . . . |
|+o+ .E + . |
|O. .+o+.o o |
|o+ o+..S. . |
|. ..o.o |
| . .==.o |
|+.o=oBo . |
|.*ooXo |
+----[SHA256]-----+
#传密钥给当前主机
[root@kvm02 ~]# ssh-copy-id -i .ssh/id_rsa.pub 10.0.0.162 #设置加密连接
[root@kvm02 ~]# ssh 10.0.0.162 -L localhost:8000:localhost:8000 -L localhost:6080:localhost:60

3)、配置Nginx

#1.打开/etc/nginx/nginx.conf文件,注释server段

#2.编辑配置文件
[root@kvm02 ~]# cat /etc/nginx/conf.d/webvirtmgr.conf
server {
listen 80 default_server; server_name $hostname;
#access_log /var/log/nginx/webvirtmgr_access_log; location /static/ {
root /var/www/webvirtmgr/webvirtmgr; # or /srv instead of /var
expires max;
} location / {
proxy_pass http://127.0.0.1:8000;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-for $proxy_add_x_forwarded_for;
proxy_set_header Host $host:$server_port;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_connect_timeout 600;
proxy_read_timeout 600;
proxy_send_timeout 600;
client_max_body_size 1024M; # Set higher depending on your needs
}
} #3.重新启动nginx服务
[root@kvm02 ~]# systemctl restart nginx #4.设置权限
[root@kvm02 ~]# chown -R nginx:nginx /var/www/webvirtmgr
#5.创建/etc/supervisord.d/webvirtmgr.ini具有以下内容的文件
[root@kvm02 ~]# cat /etc/supervisord.d/webvirtmgr.ini
[program:webvirtmgr]
command=/usr/bin/python /var/www/webvirtmgr/manage.py run_gunicorn -c /var/www/webvirtmgr/conf/gunicorn.conf.py
directory=/var/www/webvirtmgr
autostart=true
autorestart=true
stdout_logfile=/var/log/supervisor/webvirtmgr.log
redirect_stderr=true
user=nginx [program:webvirtmgri-console]
command=/usr/bin/python /var/www/webvirtmgr/console/webvirtmgr-console
directory=/var/www/webvirtmgr
autostart=true
autorestart=true
stdout_logfile=/var/log/supervisor/webvirtmgr-console.log
redirect_stderr=true
user=nginx #6.启动守护进程supervisord
[root@kvm02 ~]# systemctl start supervisord.service
[root@kvm02 ~]# systemctl enable supervisord.service #7.查看端口
[root@kvm02 ~]# netstat -lntp |grep -E '6080|8000'
tcp 0 0 127.0.0.1:6080 0.0.0.0:* LISTEN 14866/ssh
tcp 0 0 127.0.0.1:8000 0.0.0.0:* LISTEN 14866/ssh
tcp6 0 0 ::1:6080 :::* LISTEN 14866/ssh
tcp6 0 0 ::1:8000 :::* LISTEN 14866/ssh

8.浏览器IP地址访问http://10.0.0.182/login/

只有超级管理员登陆后才能看到"基础构架"窗口![img]

4)、 远程连接

#使用tcp进行对远程libvirtd进行连接访问的配置如下:
#1.修改文件/etc/sysconfig/libvirtd,用来启用tcp的端口(修改内容如下过滤出来的所示)
[root@kvm02 ~]# grep -Ev "^$|#" /etc/sysconfig/libvirtd
LIBVIRTD_CONFIG=/etc/libvirt/libvirtd.conf
LIBVIRTD_ARGS="--listen" #2.修改文件/etc/libvirt/libvirtd.conf,(修改过滤出来的内容)
[root@kvm02 ~]# grep -Ev "^$|#" /etc/libvirt/libvirtd.conf
listen_tls = 0
listen_tcp = 1
tcp_port = "16509"
listen_addr = "0.0.0.0"
auth_tcp = "none" #3.重启libvirtd
[root@kvm02 ~]# systemctl restart libvirtd.service #4.查看端口16509是否启动
[root@kvm02 ~]# netstat -lntp|grep 16509
tcp 0 0 0.0.0.0:16509 0.0.0.0:* LISTEN 15344/libvirtd #5.在source host连接dest host远程libvirtd查看信息 [root@kvm02 ~]# virsh -c qemu+tcp://10.0.0.182/system
Welcome to virsh, the virtualization interactive terminal. Type: 'help' for help with commands
'quit' to quit [root@kvm02 ~]# echo " * - nofile 65534" >> /etc/security/limits.conf
virsh # #表示成功

5)、更新

[root@kvm02 conf.d]# cd /var/www/webvirtmgr
[root@kvm02 webvirtmgr]# git pull
[root@kvm02 webvirtmgr]# ./manage.py collectstatic
[root@kvm02 webvirtmgr]# service supervisord restart

6)、web端进行tcp连接

7)、添加多台进行管理

Kvm --05 密码保护:Kvm管理之WebVirtMgr的更多相关文章

  1. kvm虚拟化管理平台WebVirtMgr部署-完整记录(3)

    继下面三篇文章完成了kvm虚拟化管理平台webvirtmgr环境的部署安装:kvm虚拟化管理平台WebVirtMgr部署-虚拟化环境安装-完整记录(0)kvm虚拟化管理平台WebVirtMgr部署-完 ...

  2. kvm虚拟化管理平台WebVirtMgr部署-完整记录(2)

    继上一篇kvm虚拟化管理平台WebVirtMgr部署-完整记录(1),接下来说说WebVirtMgr的日常配置:添加宿主机,创建虚机,磁盘扩容,快照等具体操作记录如下: 一.配置宿主机1.登录WebV ...

  3. kvm虚拟化管理平台WebVirtMgr部署-完整记录(1)

    公司机房有一台2U的服务器(64G内存,32核),由于近期新增业务比较多,测试机也要新增,服务器资源十分有限.所以打算在这台2U服务器上部署kvm虚拟化,虚出多台VM出来,以应对新的测试需求.当KVM ...

  4. KVM web管理工具——WebVirtMgr(一)

    WebVirtMgr 介绍     WebVirtMgr采用几乎纯Python开发,其前端是基于Python的Django,后端是基于Libvirt的Python接口,将日常kvm的管理操作变的更加的 ...

  5. centos7.2 kvm虚拟化管理平台WebVirtMgr部署

    在服务器上部署kvm虚拟化,虚出多台VM出来,以应对新的测试需求.当KVM宿主机越来越多,需要对宿主机的状态进行调控,决定采用WebVirtMgr作为kvm虚拟化的web管理工具,图形化的WEB,让人 ...

  6. KVM管理工具 WebVirtMgr

    WEB管理工具 WebVirtMgr WebVirtMgr是一个基于libvirt的Web界面,用于管理虚拟机.它允许您创建和配置新域,并调整域的资源分配.VNC查看器为来宾域提供完整的图形控制台.K ...

  7. KVM虚拟化管理平台WebVirtMgr部署及使用

    KVM虚拟化管理平台WebVirtMgr部署及使用   需求: 公司机房有一台2U的服务器(64G内存,32核),由于近期新增业务比较多,测试机也要新增,服务器资源十分有限.所以打算在这台2U服务器上 ...

  8. OpenStack入门篇(四)之KVM虚拟机介绍和管理

    1.查看虚拟机,启动虚拟机 [root@linux-node1 ~]# virsh list --all Id Name State --------------------------------- ...

  9. 五十.KVM简介、 Virsh管理 、 自定义虚拟机、虚拟设备管理

    1.virsh基本管理操作 列出当前正在运行的虚拟机 查看虚拟机的信息 管理虚拟机 设置虚拟机开机自动运行   1.1 virsh基本操作   查看kvm节点(服务器)信息 ] virsh nodei ...

随机推荐

  1. Oracle12c修改时区

    Oacle12c支持可插入数据库(PDB)在一个统一的数据库(CDB)中具有不同的字符集.时区文件版本和数据库时区. 出于性能原因,Oracle建议将数据库时区设置为UTC(0:00),因为不需要转换 ...

  2. python类对象属性查找原理

    class Foo(object): def __init__(self): # 这是一个对象属性 self.obj_pro = 12 # 这是一类属性 c_pro = 11 # 这是一个静态方法 @ ...

  3. Influxdb根据配置文件启动(Influxdb的数据存储)

    1.在Influxdb文件夹下建立一个bat文件 2.文件内容如下: @echo offSETLOCAL :: 获取当前批处理所在路径SET InfluxdP==%~dp0 :: 开启influxdb ...

  4. centos 配置vlan

    https://access.redhat.com/documentation/zh-cn/red_hat_enterprise_linux/7/html/networking_guide/sec-c ...

  5. 分页框架pager-taglib学习笔记

    说到分页其实可以研究一下我自己项目里面的分页框架的使用. 下面的笔记来自于孔浩老师的视频教程和我自己的开发实践. 使用Pager-taglib可以帮助我们快速开发分页处理. 下载:pager-tagl ...

  6. vue定义组件

    1.定义组件 2.在App.vue里引入Home组件 home代码 <template> <div>home</div> </template> < ...

  7. HDU4336 Card Collector (概率dp+状压dp)

    http://acm.hdu.edu.cn/showproblem.php?pid=4336 题意:有n种卡片,一个包里会包含至多一张卡片,第i种卡片在某个包中出现的次数为pi,问将所有种类的卡片集齐 ...

  8. Java的常用类 String

    String类: 代表字符串, java程序中的所有字符串字面值(如, "abc")都是此类的实例实现 String是一个final类,代表不可变的字符序列 字符串是常量是用双引号 ...

  9. Vagrant 手册之 Vagrantfile - 提示及技巧

    原文地址 Vagrantfile 是一种非常灵活的配置格式.语法基于 Ruby,可以用它做很多事情.在本页使用一些提示和技巧时,请注意正确使用它们. 1. 使用循环定义虚拟机 如果你想对多机器应用稍微 ...

  10. Vagrant 手册之 box - 版本

    原文地址 从 Vagrant 1.5 版本起,box 开始支持版本.这运行创建 box 的人提交更新,使用 box 的人检查更新.更新 box 并查看变更记录. 对于 Vagrant 新手,box 版 ...