- webvirtmgr所在主机安装centos 7.4(官方镜像安装桌面版)
- 虚拟机所在主机安装centos 7.4(官方桌面版镜像以minimal方式安装)
(一)安装相关软件
yum install -y qemu-kvm libvirt libvirt-python libguestfs-tools virt-install bridge-utils cyrus-sasl-md5
(二)配置libvirt(以qemu+tcp方式访问libvirt)
1、编辑文件/etc/sysconfig/libvirtd,修改相关项如下所示
LIBVIRTD_CONFIG=/etc/libvirt/libvirtd.conf LIBVIRTD_ARGS="--listen"
2、编辑文件/etc/libvirt/libvirtd.conf,修改相关项如下所示
listen_tls = 0 listen_tcp = 1 tcp_port = "16509" listen_addr = "0.0.0.0" auth_tcp = "sasl"
3、创建远程连接libvirtd的账户
注:USER是自定义的用户名
saslpasswd2 -a libvirt USER -f /etc/libvirt/passwd.db
4、查看用户是否创建成功
注:USER是自定义的用户名
sasldblistusers2 -f /etc/libvirt/passwd.db
5、编辑文件/etc/sasl2/libvirt.conf,将相关项修改为如下值
mech_list: digest-md5 sasldb_path: /etc/libvirt/passwd.db
6、重启libvirtd服务
service libvirtd restart
7、配置防火墙
(1)查看相关网卡所属区域
firewall-cmd --get-active-zones
(2)修改相关区域防火墙规则
- 注:nic_zone表示网卡所属区域。依次打开的是libvirtd,vnc,novnc的端口
firewall-cmd --zone={nic_zone} --add-port 16509/tcp --permanent firewall-cmd --zone={nic_zone} --add-port=5900-6000/tcp --permanent firewall-cmd --zone={nic_zone} --add-port=6080/tcp --permanent
示例:
firewall-cmd --zone=public --add-port 16509/tcp --permanent firewall-cmd --zone=public --add-port=5900-6000/tcp --permanent firewall-cmd --zone=public --add-port=6080/tcp --permanent
(3)重新加载防火墙
firewall-cmd --reload
8、在另外一台机器上确认是否能访问libvirtd服务(需输入saslpasswd2创建的用户及密码)
virsh -c qemu+tcp://{libvirt_host_ip}/system nodeinfo
(三)物理主机上建立网桥
1、关闭NetworkManager
service NetworkManager stop systemctl disable NetworkManager
2、新建文件/etc/sysconfig/network-scripts/ifcfg-br,写入以下内容
注:根据环境配置ip等变量
DEVICE="br" ONBOOT="yes" TYPE="Bridge" BOOTPROTO=static ZONE=public IPADDR=XXX.XXX.XXX.XXX NETMASK=YYY.YYY.YYY.YYY GATEWAY=ZZZ.ZZZ.ZZZ.ZZZ
示例:
DEVICE="br" ONBOOT="yes" TYPE="Bridge" BOOTPROTO=static ZONE=public IPADDR=10.0.112.39 NETMASK=255.255.255.0 GATEWAY=10.0.112.1
3、修改物理网卡配置文件/etc/sysconfig/network-scripts/ifcfg-eth0,注释原内容,加入如下内容
- 注:请根据实际情况修改对应的网卡配置文件(有可能不是ifcfg_eth0),并将变量DEVICE和NAME修改为对应值
DEVICE="eth0" NM_CONTROLLED="no" ONBOOT="yes" TYPE=Ethernet BOOTPROTO=none BRIDGE="br" NAME="eth0" ZONE=public
4、重启网络
service network restart
(一)安装软件包
yum -y install http://dl.fedoraproject.org/pub/epel/7/x86_64/Packages/e/epel-release-7-11.noarch.rpm yum -y install git python-pip libvirt-python libxml2-python python-websockify supervisor nginx yum -y install gcc python-devel pip install numpy
(二)下载webvirtmgr
下载地址:https://github.com/retspen/webvirtmgr/releases
使用的webvirtmgr版本号是v4.8.9
wget -c https://github.com/retspen/webvirtmgr/releases/download/v4.8.9/webvirtmgr.tar.gz
(三)安装webvirtmgr
mkdir -p /data/wwwroot/ tar zxvf webvirtmgr.tar.gz -C /data/wwwroot cd /data/wwwroot/webvirtmgr/ pip install -r requirements.txt
(四)创建webvirtmgr登录用户名及密码
cd /data/wwwroot/webvirtmgr/ ./manage.py syncdb
(五)配置Django运行环境
cd /data/wwwroot/webvirtmgr/ ./manage.py collectstatic
(六)配置Nginx
1、编辑文件/etc/nginx/nginx.conf
在server段后追加下述内容,将原server段内容注释掉
server { listen 80 default; #80端口也可以改为其他端口,加强控制面板安全性 server_name $hostname; root /data/wwwroot/webvirtmgr/webvirtmgr; location /static/ { root /data/wwwroot/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 $scheme; proxy_connect_timeout 600; proxy_read_timeout 600; proxy_send_timeout 600; client_max_body_size 1024M; } }
2、启动nginx
(1)测试nginx配置文件是否正确
nginx -t
(2)启动nginx
chown -R nginx:nginx /data/wwwroot/webvirtmgr/ systemctl enable nginx service nginx restart
(七)配置Supervisor
1、创建文件/etc/supervisord.d/webvirtmgr.ini,写入以下内容
[program:webvirtmgr] command=/usr/bin/python /data/wwwroot/webvirtmgr/manage.py run_gunicorn -c /data/wwwroot/webvirtmgr/conf/gunicorn.conf.py directory=/data/wwwroot/webvirtmgr autostart=true autorestart=true logfile=/var/log/supervisor/webvirtmgr.log log_stderr=true user=nginx [program:webvirtmgr-console] command=/usr/bin/python /data/wwwroot/webvirtmgr/console/webvirtmgr-console directory=/data/wwwroot/webvirtmgr autostart=true autorestart=true stdout_logfile=/var/log/supervisor/webvirtmgr-console.log redirect_stderr=true user=nginx
2、启动supervisord服务
systemctl enable supervisord service supervisord restart
(八)打开防火墙
1、查看相关网卡所在区域
firewall-cmd --get-active-zones
2、打开nginx端口
注:zone是网卡所在区域,80是nginx配置文件中的端口
firewall-cmd --zone={zone} --add-port 80/tcp --permanent firewall-cmd --reload
示例:
firewall-cmd --zone=public --add-port 80/tcp --permanent firewall-cmd --reload
(九)关闭selinux
1、编辑文件/etc/selinux/config,将相关内容配置为如下
SELINUX=disabled
2、重启机器,重启后在浏览器中以下述地址访问即可
注:ip为webvirtmgr所在主机ip
{ip}:80
或
{ip}
登录webvirtmgr后,点击右上角的“Add Connection”按钮,在弹出页面中选择“TCP 连接”,填写好相关信息后即可加入前面配置好的宿主机。
注1:“用户名”和“密码”是前面使用saslpasswd2创建的用户名和密码。
注2:在连接ceph存储时,由于centos7.4的libvirt版本不支持secret,需要修改webvirtmgr的源码。