安装 kvm 管理面板
系统环境
ubuntu 14.04, nginx, supervisor, kvm, WebVirtMgr, 公网 IP (内网IP需要端口映射或外网 nginx 代理)
如果没有安装 supervisor 和 nginx, 先安装 nginx 和 supervisor
安装 kvm
请先参考 使用 kvm 安装虚拟机.md 安装 kvm, 主要命令如下
apt-get install qemu-kvm libvirt-bin virtinst bridge-utils
安装完成后就可以使用 virsh 命令行工具管理 kvm 虚拟机了,下边介绍安装 WebVirtMgr 网页管理控制台
安装 WebVirtMgr
参考 [这里](https://github.com/retspen/webvirtmgr/wiki/Install-WebVirtMgr)
安装依赖
下载并配置 WebVirtMgr
cd /var/www
git clone git://github.com/retspen/webvirtmgr.git
cd webvirtmgr
pip install -r requirements.txt
./manage.py syncdb
./manage.py collectstatic
配置 nginx,如果有安全证书请使用 https,去掉 # 注释
listen 80;
#listen 443 ssl;
server_name kvm.example.com;
#ssl_certificate certs/kvm.example.com.chained.crt;
#ssl_certificate_key certs/kvm.example.com.key;
access_log /var/log/nginx/$host.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;
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,新建 /etc/supervisor/conf.d/webvirtmgr.conf 文件
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 -d
directory=/var/www/webvirtmgr
autostart=true
autorestart=true
stdout_logfile=/var/log/supervisor/webvirtmgr-console.log
redirect_stderr=true
user=www-data
修改 webvirtmgr
如果只是自己用,修改 webvirtmgr/conf/gunicorn.conf.py 文件, 修改 workers = get_workers() 为 workers = 1
为了避免安全隐患,修改 vnc 监听单口仅为 127.0.0.1,修改 vrtManager/create.py 文件,将
<listen type='address' address='0.0.0.0'/>
</graphics>
修改为
这样从网页控制台新建的虚拟机的 vnc 默认会监听在 127.0.0.1,只有本地的 websocket 代理可以访问,否则监听在 0.0.0.0 会被任何人通过 vnc 接入。
修改 webvirtmgr 不能访问 127.0.0.1 vnc 的 bug, 修改 console/webvirtmgr-console 文件,修改
为
如果使用安全的 wss 或 nginx 中使用了 https, 则需要修改 webvirtmgr/settings.py 文件,修改如下内容
WS_PUBLIC_HOST = 'kvm.example.com'
WS_CERT = '/etc/nginx/certs/kvm.example.com.pem'
如果没有 pem 文件,pem 文件可通过 cat kvm.example.com.key kvm.example.com.crt > kvm.example.com.pem 生成。
修改用户权限
chown -R www-data:www-data /var/www/webvirtmgr
启动服务
service nginx restart
网页控制台测试
使用 netstat -natp 查看,确保 0.0.0.0:80 127.0.0.1:8000 端口已打开
本地使用浏览器访问 kvm.example.com 测试控制台是否安装成功。
登陆时用户名和密码为使用 ./manage.py syncdb 命令创建的用户名和密码。
点击 Add Connection 添加 Local Socket, 输入名称后确认。点击新建的主机进入,选择 Storage->New Storage->ISO,输入路径为 /var/lib/libvirt/boot,点击 Create 创建。
选择 Storage->Add Storage->DIR,输入路径为 /var/lib/libvirt/images,名称为 default,点击 Create 创建。
新建一个 centos7 虚拟机实例
下载 centos7 镜像到 /var/lib/libvirt/boot 目录
wget http://mirrors.kernel.org/centos/7/isos/x86_64/CentOS-7-x86_64-Minimal-1511.iso
在网页控制台点击 New Instance -> Create micro -> Name (输入centos7) -> Create
选择 Settings -> Media -> CD ROM1 (centos7 …) -> connect,点击 Power -> Start
点击 Access -> Console 可以进入 novnc 管理界面安装系统了。如果出现了 time out 错误,只需要多刷新两次即可。
Tags: kvm nginx supervisor ubuntu 14.04 WebVirtMgr
发表评论