安装webvirtmgr

2020-02-12  本文已影响0人  H_appiness

须知:kvm 的 web 管理界面是由 webvirtmgr 程序提供的 我这里是在安装完qemu-kvm后安装的webvirtmgr

  1. 安装依赖包
yum -y install git python-pip libvirt-python libxml2-python python-websockify supervisor nginx python-devel
  1. 升级pip
pip install --upgrade pip
  1. 从github上下载webvirtmgr代码
cd /usr/local/src/
git clone git://github.com/retspen/webvirtmgr.git
  1. 安装webvirtmgr
cd webvirtmgr/
pip install -r requirements.txt
  1. 检查sqlite3是否安装
python
import sqlite3
exit()
  1. 初始化帐号信息
python manage.py syncdb
    You just installed Django's auth system, which means you don't have any superusers defined.
    Would you like to create one now? (yes/no): yes     //问你是否创建超级管理员帐号
    Username (leave blank to use 'root'):   //指定超级管理员帐号用户名,默认留空为root
    Email address: bebejo@126.com     //设置超级管理员邮箱
    Password:passwd       //设置超级管理员密码
    Password (again):passwd       //再次输入超级管理员密码
    Superuser created successfully.
    Installing custom SQL ...
    Installing indexes ...
    Installed 6 object(s) from 1 fixture(s)
  1. 拷贝web网页至指定目录
mkdir /var/www
cp -r /usr/local/src/webvirtmgr/ /var/www/
chown -R nginx.nginx /var/www/webvirtmgr/
  1. 生成密钥(全部默认 一路回车即可)
    ssh-keygen -t rsa
  2. 由于这里webvirtmgr和kvm服务部署在同一台机器,所以这里本地信任。如果kvm部署在其他机器,那么这个是它的ip(有待验证)
    ssh-copy-id
  3. 端口转发(有待验证)
ssh 192.168.100.202 -L localhost:8000:localhost:8000 -L localhost:6080:localhost:6080
ss -antl 
  1. 配置nginx(我这里把默认的nginx.conf里面的所有配置都注释掉了,有待测试)
vim /etc/nginx/nginx.conf
  1. 配置webvirtmgr.conf
vim /etc/nginx/conf.d/webvirtmgr.conf 

server {
listen 80 default_server;

server_name kvm.dashboard.com; #自定义域名
#access_log /var/log/nginx/webvirtmgr_access_log;

location /static/ {
    root /var/www/webvirtmgr/webvirtmgr;
    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 $remote_addr;
        proxy_connect_timeout 600;
        proxy_read_timeout 600;
        proxy_send_timeout 600;
        client_max_body_size 1024M;
  }
}
  1. 确保bind绑定的是本机的8000端口
vim /var/www/webvirtmgr/conf/gunicorn.conf.py

bind = '127.0.0.1:8000'
backlog = 2048
  1. 重启nginx
systemctl start nginx 
ss -antl
  1. 设置supervisor 在文件最后面追加如下内容
vim /etc/supervisord.conf

[program:webvirtmgr]
command=/usr/bin/python2 /var/www/webvirtmgr/manage.py run_gunicorn -c /var/www/webvirtmgr/conf/gunicorn.conf.py
directory=/var/www/webvirtmgr
autostart=true
autorestart=true
logfile=/var/log/supervisor/webvirtmgr.log
log_stderr=true
user=nginx

[program:webvirtmgr-console]
command=/usr/bin/python2 /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
  1. 启动supervisor并设置开机自动启动
systemctl start supervisord
systemctl enable supervisord
ss -antl 
  1. 配置nginx用户
su - nginx -s /bin/bash
ssh-keygen -t rsa
touch ~/.ssh/config && echo -e "StrictHostKeyChecking=no\nUserKnownHostsFile=/dev/null" >> ~/.ssh/config
chmod 0600 ~/.ssh/config
ssh-copy-id root@192.168.100.202
exit
---
vim /etc/polkit-1/localauthority/50-local.d/50-libvirt-remote-access.pkla
#添加下面内容
[Remote libvirt SSH access]
Identity=unix-user:root
Action=org.libvirt.unix.manage
ResultAny=yes
ResultInactive=yes
ResultActive=yes
---
chown -R root.root /etc/polkit-1/localauthority/50-local.d/50-libvirt-remote-access.pkla
systemctl restart nginx
systemctl restart libvirtd

验证

浏览器输入http://IP或者http://自定义域名
我这里使用的是自定义域名

图片_20190903165504.png
用户名是:root
密码是执行python manage syncdb时设置的超级管理员密码
图片.png
到这里基本就已经完成了,剩下的操作多实践几次就明白是怎么回事了

说明:

如果你是安装完qemu-kvm之后安装的webvirtmgr那么你现在正常可以看到你所有的虚拟机了。我这里是先安装qemu-kvm后再安装webvirtmgr的!
我这里没有使用noVNC
如果有人知道Failed to connect to server (code: 1000, reason: Target closed)问题咋处理,请留言

问题说明:

第一次通过web访问kvm时可能会一直访问不了,一直转圈,而命令行界面一直报错(too many open files)
    永久生效方法:
        修改/etc/security/limits.conf,在文件底部添加:
        * soft nofile 655360
        * hard nofile 655360
        星号代表全局, soft为软件,hard为硬件,nofile为这里指可打开文件数。
     
    另外,要使limits.conf文件配置生效,必须要确保 pam_limits.so 文件被加入到启动文件中。
    查看 /etc/pam.d/login 文件中有:
    session required /lib/security/pam_limits.so
上一篇下一篇

猜你喜欢

热点阅读