摘要:作者运维博客博客地址文章地址相关话题是近两年来发展较快,比较活跃,非常清新的一个管理平台,提供对宿主机和虚机的统一管理,它有别于自带的图形管理工具,让管理变得更为可视化,对中小型应用场景带来了更多方便。
作者:SRE运维博客
博客地址: https://www.cnsre.cn/
WebVirtMgr
是近两年来发展较快,比较活跃,非常清新的一个KVM管理平台,提供对宿主机和虚机的统一管理,它有别于kvm自带的图形管理工具(virtual machine manager),让kvm
管理变得更为可视化,对中小型kvm
应用场景带来了更多方便。
WebVirtMgr采用几乎纯Python开发,其前端是基于Python的Django,后端是基于Libvirt的Python接口,将日常kvm的管理操作变的更加的可视化。
操作简单,易于使用 、通过libvirt的API接口对kvm进行管理、提供对虚拟机生命周期管理
宿主机管理支持以下功能、CPU利用率、内存利用率、网络资源池管理、存储资源池管理、虚拟机镜像、虚拟机克隆、快照管理、日志管理、虚机迁移、虚拟机管理支持以下功能、CPU利用率、内存利用率、光盘管理、关/开/暂停虚拟机、安装虚拟机、VNC console连接、创建快照
https://github.com/retspen/webvirtmgr/wiki/Install-WebVirtMgr
安装一些依赖包
yum -y install git python-pip libvirt-python libxml2-python python-websockify supervisor nginx gcc python-devel wget vim net-tools lrzsz
wget https://bootstrap.pypa.io/get-pip.py python get-pip.py pip -V
pip install numpy
git clone git://github.com/retspen/webvirtmgr.git
rpm -Uvh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm yum install nginx -y
安装参考
https://www.2cto.com/kf/201712/702837.html
开机自启参考
https://blog.csdn.net/binggoogle/article/details/53203991
cat /etc/supervisord.conf
{{< alert theme="warning" dir="ltr" >}}
⚠️ 注意
如果没有这个文件按照一下步骤安装
有的话忽略此步骤
{{< /alert >}}
pip install supervisormkdir /etc/supervisord.d/echo_supervisord_conf > /etc/supervisord.conf
新建文件夹
vim /etc/supervisord.d/app.conf
配置文件 app.conf
内容为
[program:appname]command=/root/soft/push.apidirectory=/root/soft/push.apiautostart=trueautorestart=trueuser=rootstdout_logfile = /var/log/supervisor/pushapi.logstderr_logfile = /var/log/supervisor/pushapi-error.log
修改 在配置文件最下方修改为
vim /etc/supervisord.conf[include]files = /etc/supervisord.d/*.ini
supervisord -c /etc/supervisord.conf/usr/bin/supervisorctl start all/usr/bin/supervisorctl stop all
cd webvirtmgr pip install -r requirements.txt
./manage.py syncdb
输入以下用户信息
You just installed Djangos auth system, which means you dont have any superusers defined.Would you like to create one now? (yes/no): yesUsername (leave blank to use root): adminEmail address: 275301281@qq.comPassword: adminPassword (again):admin Superuser created successfully.Installing custom SQL ...Installing indexes ...Installed 6 object(s) from 1 fixture(s)./manage.py collectstatic
./manage.py createsuperuser
WARNING:root:No local_settings file found.Username (leave blank to use root): yesEmail address: 275301281@qq.comPassword: Lenovo@123Password (again): Lenovo@123Superuser created successfully.
a、使用:8000端口
webvirtmgr
目录到 /var/www
下cd ..mv webvirtmgr /var/www/
{{< alert theme="warning" dir="ltr" >}}
⚠️ 注意:
webvirtmgr 目录下还有一个名称为webvirtmgr 的文件夹
不要多带带移动 webvirtmgr/webvirtmgr 文件
{{< /alert >}}
vim /etc/nginx/conf.d/webvirtmgr.confserver { 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 }}
(如果不设置开机自启动,重启服务器supervisor无法管理Django进程),并开机自启动supervisord
/etc/init.d/nginx start
或者
systemctl restart nginx systemctl enable supervisord
分配权限
chown nginx.nginx /var/www/webvirtmgr
在/etc/supervisord.conf
末尾加入下面的配置:
vi /etc/supervisord.conf[program:webvirtmgr]command=/usr/bin/python /var/www/webvirtmgr/manage.py run_gunicorn -c /var/www/webvirtmgr/conf/gunicorn.conf.pydirectory=/var/www/webvirtmgrautostart=trueautorestart=truelogfile=/var/log/supervisor/webvirtmgr.loglog_stderr=trueuser=nginx[program:webvirtmgr-console]command=/usr/bin/python /var/www/webvirtmgr/console/webvirtmgr-consoledirectory=/var/www/webvirtmgrautostart=trueautorestart=true#stdout_logfile=/var/log/supervisor/webvirtmgr-console.logredirect_stderr=trueuser=nginx
{{< alert theme="warning" dir="ltr" >}}
⚠️ 注意
进程无法启动或者报错 可以选择吧 log 注释取消
{{< /alert >}}
开机自启参考
https://blog.csdn.net/binggoogle/article/details/53203991
设置完之后重启即可
systemctl restart supervisord.servicesystemctl enable supervisord.servicesystemctl status supervisord.service
cd /var/www/webvirtmgr git pull
./manage.py collectstatic
systemctl restart supervisord
./manage.py runserver 0:8000#或者后台运行脚本nohup python /var/www/webvirtmgr/manage.py runserver 0:8000 >/dev/null &nohup python /var/www/console/webvirtmgr-console >/dev/null &
访问:http://x.x.x.x:8000(x.x.x.x - your server IP address ),输入创建的用户和密码,如果没有创建,请用python manager.py createsuperuser,命令创建。登录后如下图所示
配置虚拟机所在宿主机
webvirtmgr客户端就这样搭建完了,接下来需要配置虚拟机所在宿主机的,参考git地址.
如果虚拟机比较多,该脚本执行时间会比较长,因为会执行 service libvirt-guests restart
,会将所有运行的虚拟机挂起然后再恢复,感觉这一步不是必须的,因为我有一台只设置ssh认证,也可以正常连接。
curl http://retspen.github.io/libvirt-bootstrap.sh | sudo sh
如果没有curl就用wget
wget -O - http://retspen.github.io/libvirt-bootstrap.sh | sudo sh
iptables -I INPUT -m state --state NEW -m tcp -p tcp --dport 16509 -j ACCEPT
参考:https://github.com/retspen/webvirtmgr/wiki/Setup-TCP-authorization
webvirtmgr新建服务器连接时需要此账号
saslpasswd2 -a libvirt cnsrePassword: cnsreAgain (for verification): cnsre
sasldblistusers2 -f /etc/libvirt/passwd.db cnsre@webvirtmgr.cn: userPassword
ssh-keygen -t rsa # 产生公私钥
直接回车,回车,回车
ssh-copy-id 192.168.1.120
{{< alert theme="warning" dir="ltr" >}}
⚠️ 注意
由于这里webvirtmgr和kvm服务部署在同一台机器,所以这里本地信任。
如果kvm部署在其他机器,那么这个是其他它的ip 同时也要设置ssh key密钥
{{< /alert >}}
提示输入密码的时候直接输入之前1.120的密码
ssh 192.168.1.120 -L localhost:8000:localhost:8000 -L localhost:6080:localhost:6080
在部署web管理的主机上执行命令
ssh-keygen -t rsa
然后在执行
ssh-copy-id 192.168.1.165
添加新的kvm宿主机
查看新加的kvm宿主机状态 看有无报错
sudo saslpasswd2 -a libvirt -d cnsre
virsh -c qemu+tcp://IP_address/system nodeinfo(virsh -c qemu+tcp://192.168.1.50/system nodeinfo)Please enter your authentication name: cnsrePlease enter your password: xxxxxxCPU model: x86_64CPU(s): 2CPU frequency: 2611 MHzCPU socket(s): 1Core(s) per socket: 2Thread(s) per core: 1NUMA cell(s): 1Memory size: 2019260 kB
{{< alert theme="warning" dir="ltr" >}}
⚠️ 注意
账号全名带hostname,如 cnsre@webvirtmgr.cn
测试的时候这一步测试没有成功 但是可以链接
{{< /alert >}}
{{< notice warning "注意" >}}
ssh和tcp设置一种即可,其实就是设置无密码登录,要注意的是从webvirtmgr的什么用户到宿主机的什么用户的无密码登录,比如我用root跑的django webvirtmgr,而宿主机也是root跑的virsh,所以需要设置root到root的无密码登录。而git官网推荐的是用nginx用户跑django webvirtmgr,webvirtmgr用户跑的virsh,所以设置的是nginx用户到宿主机webvirtmgr用户的无密码登录。
{{< /notice >}}
参考:https://github.com/retspen/webvirtmgr/wiki/Setup-SSH-Authorizatio
访问:http://192.168.1.120:8000,xxxx是webvirtmgr的ip地址,点击new connection
基础架构可以看到一些vm虚拟机
网页控制台 远程链接报错1006
安装vnc即可
yum install -y novnc
网页控制台 远程链接报错505
cd /var/www/console/./webvirtmgr-console &
后台运行脚本
nohup python /var/www/webvirtmgr/manage.py runserver 0:8000 >/dev/null & nohup python /var/www/console/webvirtmgr-console >/dev/null &
作者:SRE运维博客
博客地址: https://www.cnsre.cn/
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/123641.html
摘要:题外话,由于使用经常需要编辑,我们可以借助来使语法高亮,看起来更清晰明了。移动到目录在中添加再打开,已经有语法高亮了里面提供了很多可以调节优化的地方,这里简要了解模块的几个常用参数。允许或禁止基于请求响应的压缩。表示匹配的路径。 Nginx是一款轻量级的Web服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器。在Java的Web架构中,通常使用Tomcat和Nginx进行...
阅读 712·2023-04-25 19:43
阅读 3906·2021-11-30 14:52
阅读 3783·2021-11-30 14:52
阅读 3851·2021-11-29 11:00
阅读 3782·2021-11-29 11:00
阅读 3868·2021-11-29 11:00
阅读 3556·2021-11-29 11:00
阅读 6102·2021-11-29 11:00