摘要:作者運維博客博客地址文章地址相關話題是近兩年來發展較快,比較活躍,非常清新的一個管理平臺,提供對宿主機和虛機的統一管理,它有別于自帶的圖形管理工具,讓管理變得更為可視化,對中小型應用場景帶來了更多方便。
作者: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/
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/123641.html
摘要:題外話,由于使用經常需要編輯,我們可以借助來使語法高亮,看起來更清晰明了。移動到目錄在中添加再打開,已經有語法高亮了里面提供了很多可以調節優化的地方,這里簡要了解模塊的幾個常用參數。允許或禁止基于請求響應的壓縮。表示匹配的路徑。 Nginx是一款輕量級的Web服務器/反向代理服務器及電子郵件(IMAP/POP3)代理服務器。在Java的Web架構中,通常使用Tomcat和Nginx進行...
閱讀 713·2023-04-25 19:43
閱讀 3910·2021-11-30 14:52
閱讀 3784·2021-11-30 14:52
閱讀 3852·2021-11-29 11:00
閱讀 3783·2021-11-29 11:00
閱讀 3869·2021-11-29 11:00
閱讀 3557·2021-11-29 11:00
閱讀 6105·2021-11-29 11:00