Webvirtmgr на Debian Jessie. Веб интерфейс для Linux KVM: различия между версиями

Материал из support.qbpro.ru
imported>Vix
Нет описания правки
imported>Vix
Нет описания правки
 
Строка 96: Строка 96:
  su -s /bin/bash www-data
  su -s /bin/bash www-data
  ssh-keygen
  ssh-keygen
  ssh-copy-id root@YOUR_KVM_HOST
  ssh-copy-id user@192.168.0.5
  you need to accept add key
  you need to accept add key
  exit
  exit


'''Настраиваем доступ на хост для webvirtmgr через nginx'''
'''Настраиваем доступ на хост для webvirtmgr через nginx'''
  mcedit /etc/nginx/sites-available/webkvm
  mcedit /etc/nginx/sites-available/webkvm
 
# пример рабочего конфиг-файла
  server {
  server {
     listen      192.168.1.3:88;
     listen      192.168.0.5:88;
     server_name $hostmane;
     server_name $hostmane;
     location /static/ {
     location /static/ {
         root /home/www/webvirtmgr/webvirtmgr; # or /srv instead of /var
         root /varwww/webvirtmgr/webvirtmgr; # or /srv instead of /var
         expires max;
         expires max;
     }
     }
Строка 124: Строка 125:
  }
  }


ln -s /etc/nginx/sites-available/webkvm /etc/nginx/sites-enable/webkvm
systemctl restart nginx
   
   
Открываем порты
Открываем порты
  iptables -I INPUT 1 -m state --state RELATED,ESTABLISHED -j ACCEPT
  iptables -I INPUT 1 -m state --state RELATED,ESTABLISHED -j ACCEPT
  iptables -I INPUT 2 -s 192.168.10.0/24 -d 192.168.10.1 -i eth0 -p tcp -m state --state NEW -m multiport --dports 80,6080,8000,16509 -j ACCEPT
  iptables -I INPUT 2 -s 192.168.10.0/24 -d 192.168.10.1 -i eth0 -p tcp -m state --state NEW -m multiport --dports 80,6080,88,16509 -j ACCEPT
  invoke-rc.d iptables save
  invoke-rc.d iptables save


Веб интерфейс будет доступен по адресу http://example.com:8000
Веб интерфейс будет доступен по адресу http://example.com:88


'''Источники:'''
'''Источники:'''

Текущая версия от 10:17, 21 апреля 2021

Установка необходимых пакетов:

aptitude update
aptitude install git python-pip python-libvirt python-libxml2 novnc supervisor qemu-kvm libvirt-bin virtinst sasl2-bin bridge-utils 
insserv nginx

Настраиваем KVM

vim /etc/default/libvirtd:
libvirtd_opts="-d -l"
vim /etc/libvirt/libvirtd.conf:
listen_tls = 0
listen_tcp = 1
invoke-rc.d libvirtd restart

Делаем сетевой мост для KVM

vim /etc/network/interfaces:
auto br0
allow-hotplug br0
iface br0 inet static
       address 192.168.10.1
       gateway 192.168.10.1
       bridge_ports eth0
       bridge_stp off
       bridge_maxwait 0
invoke-rc.d networking stop && invoke-rc.d networking start

Настраиваем webvirtmgr

cd /var/www
git clone git://github.com/retspen/webvirtmgr.git

или просто скачиваем архив: webvirtmgr

cd webvirtmgr
pip install -r requirements.txt
./manage.py syncdb
./manage.py collectstatic
vim conf/gunicorn.conf.py:

bind = '0.0.0.0:8000'
chown -R www-data:www-data /var/www/webvirtmgr

Добавляем пользователя, который получит доступ к веб интерфейсу

/var/www/webvirtmgr/manage.py createsuperuser

Потом для того же пользователя

saslpasswd2 -a libvirt user

Статус пользователей

sasldblistusers2 -f /etc/libvirt/passwd.db
vim /etc/supervisor/conf.d/webvirtmgr.conf:
[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=www-data 

[program:webvirtmgr-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=www-data 
invoke-rc.d supervisor restart
invoke-rc.d supervisor restart
invoke-rc.d novnc stop
insserv -r novnc
vim /etc/insserv/overrides/novnc:
#!/bin/sh
### BEGIN INIT INFO
# Provides:          nova-novncproxy
# Required-Start:    $network $local_fs $remote_fs $syslog
# Required-Stop:     $remote_fs
# Default-Start:     
# Default-Stop:      
# Short-Description: Nova NoVNC proxy
# Description:       Nova NoVNC proxy
### END INIT INFO 
--

Настраиваем доступ по ключу ssh

su -s /bin/bash www-data
ssh-keygen
ssh-copy-id user@192.168.0.5
you need to accept add key
exit

Настраиваем доступ на хост для webvirtmgr через nginx

mcedit /etc/nginx/sites-available/webkvm
# пример рабочего конфиг-файла
server {
    listen      192.168.0.5:88;
    server_name $hostmane;
    location /static/ {
        root /varwww/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 
    }
}
ln -s /etc/nginx/sites-available/webkvm /etc/nginx/sites-enable/webkvm
systemctl restart nginx

Открываем порты

iptables -I INPUT 1 -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -I INPUT 2 -s 192.168.10.0/24 -d 192.168.10.1 -i eth0 -p tcp -m state --state NEW -m multiport --dports 80,6080,88,16509 -j ACCEPT
invoke-rc.d iptables save

Веб интерфейс будет доступен по адресу http://example.com:88

Источники: