记住用户名密码
一、介绍
github地址https://github.com/retspen/webvirtmgr
WebVirtMgr是一个基于libvirt的Web界面,用于管理虚拟机。它允许您创建和配置新域,并调整域的资源分配。VNC查看器为来宾域提供完整的图形控制台。KVM是目前唯一支持的虚拟机管理程序。
IP 安装软件
192.168.209.133 KVM、
192.168.209.134 KVM、WebVirtMgr、nginx
二、查看本机环境
1.查看服务器版本号,建议使用7 cat /etc/redhat-release 2.内核版本 uname -r 3.关闭Selinux & 防火墙 systemctl stop firewalld systemctl disable firewalld setenforce 0 sed -i '/SELINUX/s/enforcing/disabled/' /etc/selinux/config 4.设置Yum源 curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo yum makecache 5.查看是否支持虚拟化 cat /proc/cpuinfo | grep -E 'vmx|svm' 6.查看KVM 驱动是否加载 lsmod | grep kvm 如果没有加载kvm驱动,利用命令加载驱动 modprobe -a kvm modprobe -a kvm_intel 7.本次Python版本 python -V 8、本地解析 vim /etc/hosts 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6 192.168.209.133 abcdocker-node 192.168.209.134 abcdocker-kvm 9、免密 管理端生成 ssh-keygen 设置免密,因为自己也同时提供KVM虚拟机,所以也需要配置免密 ssh-copy-id -i .ssh/id_rsa.pub root@abcdocker-kvm ssh-copy-id -i .ssh/id_rsa.pub root@abcdocker-node
# kvm属于内核态,不需要安装。但是需要一些管理工具包 yum install -y qemu-kvm libvirt libvirt-python libguestfs-tools virt-install virt-manager python-virtinst libvirt-client virt-viewer qemu-kvm-tool # 启动librirt systemctl start libvirtd.service systemctl enable libvirtd.service
# 管理端安装 yum -y install git python-pip libvirt-python libxml2-python python-websockify supervisor gcc python-devel # 使用pip安装Python扩展程序库 pip install numpy -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com
4.2 git克隆配置并运行WebVirMgr
# 创建data目录,将WebVirtMgr移动到data目录,同时创建KVM存储目录 mkdir /data/kvm -pv # 克隆项目 cd /data git clone git://github.com/retspen/webvirtmgr.git cd webvirtmgr pip install -r requirements.txt -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com # 说明:requirements.txt主要是用于记录所有依赖包及其精确的版本号。以便新环境部署 # 初始化环境 ./manage.py syncdb ## 这里需要我们输入Yes,配置管理员用户 配置信息如下 Would you like to create one now? (yes/no): yes #是否现在创建管理员用户 Username (leave blank to use 'root'): root #用户名称 Email address: #邮箱地址 (可以不填) Password: #管理员用户密码 Password (again): #重复输入密码 Superuser created successfully. #创建成功 # 配置Django 静态页面 ./manage.py collectstatic 输入Yes即可 # 如果还想继续添加管理员用户,可以执行下面的命令 ./manage.py createsuperuser
4.3 启动WebVirMgr
前台启动WebVirMgr,默认是Debug模式同时日志打印在前台 ./manage.py runserver 0:8000
访问:http://192.168.209.134:8000
4.4 安装Nginx
1.安装依赖 yum install -y gcc glibc gcc-c++ prce-devel openssl-devel pcre-devel 2.安装编译Nginx cd /root/ wget http://nginx.org/download/nginx-1.16.1.tar.gz useradd -s /sbin/nologin nginx -M tar xf nginx-1.16.1.tar.gz && cd nginx-1.16.1.tar.gz ./configure --prefix=/usr/local/nginx-1.16.1 --user=nginx --group=nginx --with-http_ssl_module --with-http_stub_status_module make && make install ln -s /usr/local/nginx-1.16.1 /usr/local/nginx # 修改配置文件 cd /usr/local/nginx/conf vim nginx.conf worker_processes 1; user nginx; events { worker_connections 1024; } http { include mime.types; default_type application/octet-stream; sendfile on; keepalive_timeout 65; server { listen 80; server_name kvm.i4t.com; 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 $remote_addr; proxy_connect_timeout 600; proxy_read_timeout 600; proxy_send_timeout 600; client_max_body_size 5120M; } location /static/ { root /data/webvirtmgr; expires max; } } } # 启动Nginx /usr/local/nginx/sbin/nginx -t /usr/local/nginx/sbin/nginx
4.5 创建supervisor配置文件
WebVirtMgr默认使用supervisor进行管理(启动停止服务) cat > /etc/supervisord.d/webvirtmgr.ini << EOF [program:webvirtmgr] command=/usr/bin/python /data/webvirtmgr/manage.py run_gunicorn -c /data/webvirtmgr/conf/gunicorn.conf.py directory=/data/webvirtmgr autostart=true autorestart=true logfile=/var/log/supervisor/webvirtmgr.log log_stderr=true user=root [program:webvirtmgr-console] command=/usr/bin/python /data/webvirtmgr/console/webvirtmgr-console directory=/data/webvirtmgr autostart=true autorestart=true stdout_logfile=/var/log/supervisor/webvirtmgr-console.log redirect_stderr=true user=root EOF # 启动 systemctl start supervisord systemctl enable supervisord # 检查 supervisorctl status # 重启所以(非执行) supervisorctl restart all
1.Add Connection 添加宿主机(即KVM主机) 2.点击SSH连接 3.Label 为主机名,必须为主机名做免密 4.IP 为宿主机IP 5.用户名为服务器用户名 6.点击添加
# 创建镜像目录 mkdir /data/kvm
5.2 上传镜像
创建一个IOS镜像目录
# 下载镜像 wget -P /opt/ https://mirrors.aliyun.com/centos/7/isos/x86_64/CentOS-7-x86_64-DVD-2003.iso
虚拟机直接导入镜像
[root@kvm ~]# dd if=/dev/cdrom of=/opt/CentOS-7-x86_64-DVD-1810.iso 8962048+0 records in 8962048+0 records out 4588568576 bytes (4.6 GB) copied, 40.6923 s, 113 MB/s [root@kvm ~]# ll /opt/ total 4481024 -rw-r--r-- 1 root root 4588568576 Jun 29 09:50 CentOS-7-x86_64-DVD-1810.iso # 刷新页面就可以看到了
解决: grep -rn "client_max_body_size" /usr/local/nginx/conf/nginx.conf 30: client_max_body_size 5120M; # 平滑重启 /usr/local/nginx/sbin/nginx -t /usr/local/nginx/sbin/nginx -s reload
5.3 创建桥接网卡
默认KVM虚拟机的网络为NAT,只可以宿主机访问
温馨提示:以下操作有风险,需要做好网络断开的准备!
1.编辑宿主机网卡 ## 注释原来的IP,添加一行BRIDGE=br0 [root@kvm ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth0 TYPE=Ethernet BOOTPROTO=none NAME=eth0 DEVICE=eth0 ONBOOT=yes #IPADDR=192.168.209.134 #NETMASK=255.255.255.0 #GATEWAY=192.168.209.254 #DNS1=180.76.76.76 #DNS2=223.5.5.5 BRIDGE=br0 2.添加bro虚拟网卡 ## br0网卡除了添加基础信息,还需要将IP和DNS添加上即可 [root@kvm ~]# cat /etc/sysconfig/network-scripts/ifcfg-br0 DEVICE=br0 BOOTPROTO=none ONBOOT=yes TYPE=Bridge IPADDR=192.168.209.134 NETMASK=255.255.255.0 GATEWAY=192.168.209.254 DNS1=180.76.76.76 DNS2=223.5.5.5 3.重启网卡 systemctl restart network 4.验证 ip a
# 说明 如果添加还没开启vSwithch会提示internal error: Unable to add port vnet0 to OVS bridge br0 vSwitch(Virtual Switch)指虚拟交换机或虚拟网络交换机,工作在二层数据网络,通过软件方式实现物理交换机的二层(和部分三层)网络功能。
目前有 0 条留言 其中:访客:0 条, 博主:0 条