centos7下部署kvm并安装web管理客户端


参考链接

https://www.cnblogs.com/root0/p/9356205.html
https://www.cnblogs.com/kcxg/p/11049829.html
https://blog.csdn.net/weixin_43695104/article/details/88554443#31_kvm_60
https://www.cnblogs.com/nulige/p/9236191.html

 

1.基础环境配置

setenforce 0
systemctl stop firewalld
systemctl disable firewalld
sed -i "s/SELINUX=enforcing/SELINUX=disabled/g" /etc/selinux/config
yum install -y wget
ls /etc/yum.repos.d/
rm -rf /etc/yum.repos.d/*
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
yum install epel-release -y
yum makecache
vi /etc/resolv.conf 

2.安装kvm

yum makecache #上面没有刷新yum源刷新一下
yum install qemu-kvm libvirt libvirt-python libguestfs-tools virt-install virt-manager #virt-manager为图形管理工具可以选择安装
systemctl enable libvirtd
systemctl start libvirtd
lsmod | grep -i kvm
brctl show #查看网络
virsh net-list #查看网络
virsh net-dumpxml default #默认的网络连接方式

3.桥接设置

3.1vi /etc/sysconfig/network-scripts/ifcfg-ens192 #删除ip的设置并添加红字部分

TYPE="Ethernet"
PROXY_METHOD="none"
BROWSER_ONLY="no"
BOOTPROTO="none"
DEFROUTE="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_FAILURE_FATAL="no"
IPV6_ADDR_GEN_MODE="stable-privacy"
NAME="ens192"
UUID="fe8d89d2-fe1a-418b-aea2-682643e8661a"
DEVICE="ens192"
ONBOOT="yes"
IPV6_PRIVACY="no"
BRIDGE=br0
NM_CONTROLLED=no

3.2 vi /etc/sysconfig/network-scripts/ifcfg-br0 #桥接ip设置

TYPE=Bridge
DEVICE=br0
NM_CONTROLLED=no
BOOTPROTO=static
NAME=br0
ONBOOT=yes
IPADDR="192.168.120.54"
PREFIX="24"
GATEWAY="192.168.120.1"
DNS1="223.5.5.5"

3.3 重启网卡并测速网络

systemctl restart network
ping www.baidu.com

3.4下载虚拟机镜像为后面做好准备

 cd /var/lib/libvirt/boot/
wget https://mirrors.aliyun.com/centos/7.6.1810/isos/x86_64/CentOS-7-x86_64-Minimal-1810.iso

4.安装webvirmgr  web管理工具

yum -y install git python-pip libvirt-python libxml2-python python-websockify supervisor nginx
yum -y install gcc python-devel
pip install numpy -i https://mirrors.aliyun.com/pypi/simple/ #用阿里源安装numpy组件
cd /server/tools/
mkdir /server/tools/ -p
git clone git://github.com/retspen/webvirtmgr.git #github克隆文件太慢可以下载zip文件解压安装
yum install -y unzip zip

unzip webvirtmgr-master.zip
mv webvirtmgr-master webvirtmgr
cd webvirtmgr/
pip install -r requirements.txt -i https://mirrors.aliyun.com/pypi/simple #安装所需的pip环境

5.设置连接信息并同步配置

5.1
./manage.py syncdb #设置登录web登录账号密码 admin可以换成root

You just installed Django's auth system, which means you don't have any superusers defined. Would you like to create one now? (yes/no): yes Username (leave blank to use 'root'): admin Email address: test@163.com Password: 123456 Password (again): 123456 Superuser created successfully. Installing custom SQL ... Installing indexes ... Installed 6 object(s) from 1 fixture(s)

5.2 .
/manage.py collectstatic #生成配置文件 输入yes
Type 'yes' to continue, or 'no' to cancel: yes

6.配置nginx解析

6.1

cd ..
mkdir /var/www
mv webvirtmgr /var/www/
cd /etc/nginx/conf.d/

vi /etc/nginx/conf.d/webvirtmgr.conf

server {
    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
    }
}

6.2 关闭默认解析

vi /etc/nginx/nginx.conf #从server行开始注释 只留最后一个大括号

#    server {
#        listen       80 default_server;
#        listen       [::]:80 default_server;
#        server_name  _;
#       root         /usr/share/nginx/html;

#       # Load configuration files for the default server block.
#        include /etc/nginx/default.d/*.conf;

#       location / {
#        }

#        error_page 404 /404.html;
#            location = /40x.html {
#        }

#        error_page 500 502 503 504 /50x.html;
#            location = /50x.html {
#        }
#    }

....
#        error_page 500 502 503 504 /50x.html;
#            location = /50x.html {
#        }
#    }

 }

6.3

ls /var/www/webvirtmgr/webvirtmgr
chown -R nginx:nginx /var/www/webvirtmgr
service nginx restart #重启nginx生效

6.4 设置nginx开机启动

vi /etc/supervisord.d/webvirtmgr.ini

[program:webvirtmgr]
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
logfile=/var/log/supervisor/webvirtmgr.log
log_stderr=true
user=nginx

[program:webvirtmgr-console]
command=/usr/bin/python /var/www/webvirtmgr/console/webvirtmgr-console
directory=/var/www/webvirtmgr
autostart=true
autorestart=true
stdout_logfile=/var/log/supervisor/webvirtmgr-console.log
redirect_stderr=true
user=nginx
service supervisord stop
service supervisord start

http://192.168.120.54/

admin #上面设置的web登录密码
123456

7 配置宿主机-如果虚拟机比较多,该脚本执行时间会比较长

curl http://retspen.github.io/libvirt-bootstrap.sh | sudo sh

配置ssh连接

sudo su - nginx -s /bin/bash
-bash-4.2$ ssh-keygen

+-----------------+-bash-4.2$ touch ~/.ssh/config && echo -e "StrictHostKeyChecking=no\nUserKnownHostsFile=/dev/null" >> ~/.ssh/config
-bash-4.2$ chmod 0600 ~/.ssh/config
-bash-4.2$ cat .ssh/id_rsa.pub 

-bash-4.2$ ssh-copy-id root@192.168.120.54 #拷贝密钥到认证文件夹下

然后复制客户端在root下执行

vi /etc/polkit-1/localauthority/50-local.d/50-libvirt-remote-access.pkla

[Remote libvirt SSH access]
Identity=unix-user:root
Action=org.libvirt.unix.manage
ResultAny=yes
ResultInactive=yes
ResultActive=yes
chown -R root.root /etc/polkit-1/localauthority/50-local.d/50-libvirt-remote-access.pkla
systemctl restart nginx
systemctl restart libvirtd

8. 然后登录web连接kvm

http://192.168.120.54/login/

admin

123456

1.添加连接

 

用root用户 因为上面拷贝密钥用的root用户的

-bash-4.2$ ssh-copy-id root@192.168.120.54 #拷贝密钥到认证文件夹下

 注意 编辑完点击这里其实是54 点击其他地方w无法进入后台  之前添加做了lab ip 后期无法修改

 

 

 

9.创建虚拟机

9.1创建存储池

 

拷贝之前下载虚拟机iso镜像到默认目录

cp /var/lib/libvirt/boot/CentOS-7-x86_64-Minimal-1810.iso /var/lib/libvirt/images/

进入存储目录

可以看到iso文件

 

9.2 添加系统使用的硬盘

 

 

 

9.3 网络管理添加桥接网络

 

网络类型桥接 名称br0 然后创建

 

 

准备工作做完开始创建实例

10.

10.1

 10.2

10.3设置连接cdrom

设置web 密码 应该是vnc的密码

启动虚拟机  我已经开机 现在只能关闭虚拟机

web控制台

 

 

 

特别注意 我是在exsi环境做的测试 开始 无法和外网通信 是网卡需要设置混杂模式 设置后网络正常

 

virt-manager 管理工具
https://www.cnblogs.com/weilu2/p/kvm_bridge_centos7.html
用云镜像创建虚拟机
https://www.cnblogs.com/kcxg/p/11049829.html
[root@localhost centos7-vm1]# ssh-keygen -t ed25519 -C "VM Login ssh key"

[root@localhost centos7-vm1]# virsh net-dhcp-leases default
 2019-07-16 18:32:04  52:54:00:98:46:59  ipv4      192.168.122.53/24         centos7-vm1     -


[root@localhost ~]# cat .ssh/id_ed25519.pub 
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIBnkO6rNDbgZbtGsq69NvOfqpLtkEJWIxrC29ymjwTx0 VM Login ssh key

[root@localhost centos7-vm1]# ssh vivek@192.168.122.53

[vivek@centos7-vm1 ~]$ sudo passwd root
123456

web界面 可能花屏

修改默认的显卡模式为

然后关闭虚拟机 再开机虚拟机就正常了

 虚拟机 压缩和转换

qemu-img convert -c -O qcow2 /var/lib/libvirt/images/centos7-vm1/centos7-vm1.qcow2 /var/lib/libvirt/images/centos7-vm1/centos7-new.qcow2

qemu-img convert -c -f raw -O qcow2 /path/old.raw /path/new.qcow2

https://www.cnblogs.com/sixloop/p/8515099.html

转换

[root@localhost images]# qemu-img info linux66.img #名字是img 实际是qcow2格式

qemu-img convert -c -f raw -O qcow2 /path/old.raw /path/new.qcow2

qemu-img convert -c -O qcow2  /var/lib/libvirt/images/linux66.img /var/lib/libvirt/images/centos7-60.qcow2

virtio驱动

https://blog.csdn.net/yasyal515/article/details/77649486
https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/archive-virtio/virtio-win-0.1.141-1/virtio-win-0.1.141.iso
https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/archive-virtio/

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM