【云计算】KVM虚拟化部署

一、安装kvm

#在宿主机上安装kvm套件

bash 复制代码
yum groupinstall kvm
yum -y install qemu-kvm libvirt virt-install bridge-utils virt-manager

#加载kvm模块

bash 复制代码
modprobe kvm
modprobe kvm_intel #需要cpu支持虚拟化并在bios中开启该支持

#宿主机关闭NetworkManager服务

bash 复制代码
systemctl stop NetworkManager
systemctl disable NetworkManager

#启动libvirtd服务

bash 复制代码
systemctl start libvirtd
systemctl enable libvirtd

#创建网桥

#系统中还会有一个virbr0,是kvm自动管理的,是NAT模式会用到的网卡

#新建的网桥名称注意不要与virbr0冲突

bash 复制代码
brctl addbr br0
brctl addif br0 eno3
brctl stp br0 on

#修改配置文件

bash 复制代码
vim /etc/sysconfig/network-script/ifc-br0

DEVICE=br0
TYPE=Bridge
BOOTPROTO=static
DEFROUTE=yes
IPADDR=172.16.30.11  #写原服务器主网卡的ip
PREFIX=24
GATEWAY=173.16.30.1
DNS1=202.99.192.68
ONBOOT=yes

#修改宿主机网卡设置

bash 复制代码
vim /etc/sysconfig/network-script/ifc-eno3
#把IPADDR GATEWAY PREFIX DNS1四行去掉,添加以下行
BRIDGE=br0

#重启网络服务,试一下服务器网络是否正常,能否远程登录

bash 复制代码
systemctl restat network

#创建虚拟机

虚拟机运行之后不要轻易重启宿主机网络服务,会导致虚拟机网络中断,可能需要宿主机重启才能恢复(本地测试时存在的问题)

#命令行创建虚拟机

#创建40G大小的虚拟磁盘

bash 复制代码
dd if=/dev/zero  of=/kvm/kvm01.img  bs=2M count=20480

#生成10img,格式:qcow2,这种格式随容量大小变化,直到超过限定值。生成很快,文件也很小,拷贝很方便。

bash 复制代码
qemu-img create -f qcow2 centos.img  10G

#将光盘内容复制为本机上的iso文

bash 复制代码
dd if=/dev/cdrom of=/opt/rhel.iso bs=2048

#在虚拟磁盘上创建第一个虚拟机

bash 复制代码
virt-install -n kvm01 -r 2048 --vcpus=2 -no-acpi -f /kvm/kvm01.img  --vnc -c /opt/rhel.iso

#克隆虚拟机

bash 复制代码
virt-clone --connect=qemu:///system -o blog-web-1 -n blog-web-2 -f /var/lib/libvirt/images/blog-web-2.img 

#在克隆之前现行修改网卡信息(注释掉HAADDR,修改ip地址)

#使用已有的虚拟机配置文件创建新的虚拟机

bash 复制代码
virsh dumpxml node1 >/etc/libvirt/qemu/node2.xml
vi /etc/libvirt/qeme/node2.xml
virsh define /etc/libvirt/qemu/node2.xml
virsh start node2

#虚拟机管理

#配置文件

bash 复制代码
/etc/libvirt/qeum/node_name.xml
#编辑虚拟机配置文件
virsh edit node_name
#虚拟机开启vnc
<graphics type='vnc' port='-1' autoport='yes' listen='127.0.0.1' keymap='en-us'/>
   #port='-1' autoport='yes':port自动分配,监听回环网络(virt-manager管理需要listen='127.0.0.1'),无密码
改为
<graphics type='vnc' port='5904' autoport='no' listen='0.0.0.0' keymap='en-us' passwd='xiaobai'/>
#固定vnc管理端口5904,不自动分配,vnc密码xiaobai,监听所有网络

virsh list
virsh destroy #强行关闭
virsh create  /etc/libvirt/qeum/kvm01.xml  #使用配置文件启动虚拟机
virt-viwer  -c qemu///system  

#
push test

#可视化页面创建虚拟机

二、VNC部署

#服务器安装了桌面环境,可以使用vnc远程连接到服务器的桌面环境进行操作,即使服务器运行在字符模式下。

bash 复制代码
yum group install -y "GNOME Desktop"

#安装vnc-server

bash 复制代码
yum install tigervnc-server

#设置为服务

bash 复制代码
cp /lib/systemd/system/vncserver@.service /etc/systemd/system/vncserver@:1.service

修改此服务配置 #以下为root用户的配置,每一个用户,都需要单独设置一个监听服务,且配置不同

bash 复制代码
vim /etc/systemd/system/vncserver@\:1.service

[Unit]
Description=Remote desktop service (VNC)
After=syslog.target network.target

[Service]
Type=forking
User=root

#Clean any existing files in /tmp/.X11-unix environment
ExecStartPre=-/usr/bin/vncserver -kill %i
ExecStart=/sbin/runuser -l root -c "/usr/bin/vncserver %i"
PIDFile=/root/.vnc/%H%i.pid
ExecStop=-/usr/bin/vncserver -kill %i

[Install]
WantedBy=multi-user.target

#对于普通用户,加入用户名为:Amos

#下面举例进行设置: 首先一样复制一个server配置,改名为vncserver@:2.service

bash 复制代码
cp /lib/systemd/system/vncserver@.service /etc/systemd/system/vncserver@:2.service

#然后进行修改

bash 复制代码
vim /etc/systemd/system/vncserver@\:2.service

[Unit]
Description=Remote desktop service (VNC)
After=syslog.target network.target

[Service]
Type=forking
User=root

Clean any existing files in /tmp/.X11-unix environment

ExecStartPre=-/usr/bin/vncserver -kill %i
ExecStart=/usr/bin/vncserver %i
PIDFile=/home/Amos/.vnc/%H%i.pid
ExecStop=-/usr/bin/vncserver -kill %i

[Install]
WantedBy=multi-user.target

#设置vncserver的连接密码:

vncpasswd

#不添加只读账号密码

#每个不用的系统用户,设置密码时,需要切换到该用户下,执行此命令

#如:su Amos 切换到Amos用户再执行上vncpasswd,设置密码

#启动服务,设置自启动

bash 复制代码
systemctl daemon-reload
systemctl start vncserver@\:1.service
systemctl enable vncserver@\:1.service

#若服务启动不了,删除vnc被锁文件再启动

bash 复制代码
vncserver
rm -rf /tmp.X1-lock
rm -rf /tmp/.X11-unix/X1

#windows跳板机下载vnc客户端,输入服务器内网IP:5901,访问服务器桌面

相关推荐
yuanManGan4 分钟前
走进Linux的世界:初识操作系统(Operator System)
android·linux·运维
i_am_a_div_日积月累_23 分钟前
jenkins打包报错
运维·rust·jenkins·jenkins打包报错
一个处女座的暖男程序猿26 分钟前
2G2核服务器安装ES
服务器·elasticsearch·jenkins
GIOTTO情30 分钟前
舆情处置的自动化实践:基于Infoseek舆情系统的技术解析与落地指南
运维·自动化·linq
Thexhy34 分钟前
在 CentOS 7 的 Linux 系统中配置 NFS
linux·运维·学习·centos
咯哦哦哦哦1 小时前
linux vscode+cmake+clangd
linux·ide·vscode
曹天骄1 小时前
Let’s Encrypt 证书申请与多服务器 HTTPS 配置指南
运维·服务器·https
lang201509281 小时前
如何在 Linux 中获取更多信息
linux·运维·服务器
DeBuggggggg1 小时前
linux 安装Python3.9 且支持SSL
linux·运维·ssl
我是标同学1 小时前
vmware17安装ubuntu2204版本qemu运行armv8处理器uboot运行调试(包括windows)的一些工作
linux·运维·服务器