背景
一般情况下,虚拟机承载主机上不止跑一台虚拟机,那么问题来了,如何快速批量部署?难道每台都从头根据系统提示一步一步进行安装?我真会疯掉的,那有没有什么好点的办法解决?办法肯定是有的,可以通过克隆技术制作相同的虚拟机,实现虚拟机快速部署。下面我就简单介绍两种实现方式。
实现方式:
通过“virt-clone”命令,实现虚拟机克隆。
通过复制磁盘、配置文件,实现虚拟机克隆。
虚拟机承载主机系统:
CentOS 7.2.1511 X86_64
命令实现
前提条件
虚拟机的磁盘格式类型为qcow2。
被克隆主机需要关机。
克隆虚拟机
[[email protected] ~]# virt-clone --original windows_2k3 --name windows_2k3_01 --file /data/pool/windows_2k3_01 |
说明:
--original:指定克隆系统源
--name:指定新虚拟机名称
--file:指定新虚拟机存放位置
修改虚拟配置文件
[[email protected] ~]# virsh edit windows_2k3_01 <graphics type=‘vnc‘ port=‘-1‘ autoport=‘yes‘> 改为 <graphics type=‘vnc‘ port=‘5911‘ autoport=‘no‘> |
或者
[[email protected] ~]# vim /etc/libvirt/qemu/windows_2k3_01.xml [[email protected] ~]# virsh define /etc/libvirt/qemu/windows_2k3_01.xml |
添加VNC窗口
[[email protected] ~]# cp /lib/systemd/system/[email protected] /lib/systemd/system/[email protected]:11.service |
启动虚拟机
[[email protected] ~]# virsh start windows_2k3_01 |
连接VNC
注意:如果克隆的是linux系统,启动系统后需要处理虚拟网络。
Copy 实现
Copy 磁盘镜像、配置文件
[[email protected] ~]# cp /data/pool/windows_2k3 /data/pool/windows_2k3_02 [[email protected] ~]# cp /etc/libvirt/qemu/windows_2k3.xml /etc/libvirt/qemu/windows_2k3_02.xml |
修改配置文件
[[email protected] ~]# vim /etc/libvirt/qemu/windows_2k3_02.xml 改为:<name>windows_2k3_02</name> 删除:<uuid>3230baaa-88e9-4289-8c96-d6621c35cd97</uuid> 改为:<source file=‘/data/pool/windows_2k3_02‘/> 删除:<mac address=‘52:54:00:87:c2:2a‘/> 改为:<graphics type=‘vnc‘ port=‘5912‘ autoport=‘no‘> [[email protected] ~]# virsh define /etc/libvirt/qemu/windows_2k3_02.xml |
添加VNC窗口
[[email protected] ~]# cp /lib/systemd/system/[email protected]:11.service /lib/systemd/system/[email protected]:12.service |
启动虚拟机
[[email protected] ~]# virsh start windows_2k3_02 |
查看虚拟机列表
[[email protected] ~]# virsh list --all Id 名称 状态 ---------------------------------------------------- 12 windows_2k3_01 running 13 windows_2k3_02 running - windows_2k3 关闭 |
连接VNC
信息对比
网络对比
扩展内容
对配置文件不熟悉,修改起来比较困难,能否自动生成配置文件?可以的,只需要复制磁盘镜像,通过执行“virt-install”命令,就可实现自动生成配置文件,前提需要知道被克隆虚拟主机创建时的硬件配置参数(最重要的是磁盘信息)。
比如之前创建windows_2k3的命令如下
virt-install -n windows_2k3 -r 1024 -vcpus=1 -c /data/iso/windows_server_2003.iso --disk path=/data/pool/windows_2k3,format=qcow2,size=30,bus=ide --hvm --os-type=windows --vnc --vncport 5910 --network network=default --force --autostart |
改为
virt-install -n windows_2k3_03 -r 1024 -vcpus=1 -c /data/iso/windows_server_2003.iso --disk path=/data/pool/windows_2k3_03,format=qcow2,size=30,bus=ide --hvm --os-type=windows --vnc --vncport 5913 --network network=default --force --autostart |
注意:只需要修改三个地方:-n 、--disk path、--vncport。
FQA
Q:克隆虚拟机能使用远程桌面连接?
A:可以,需要在被克隆主机配置固定IP、创建用户密码、开启远程功能,系统克隆后就可使用远程桌面进行连接,连接需要修改IP地址,否则下一虚拟机的克隆会存在IP冲突。
Q:网络有重名
A:我的电脑--属性--计算机名--更改--输入新计算机名称--重启系统即可。
Q:克隆linux系统,启动如何处理网络问题?
A:需要处理70-persistent-net.rules和ifcfg-eth0文件
[[email protected]_Clinet ~]# rm -rf /etc/udev/rules.d/70-persistent-net.rules
[[email protected]_Clinet ~]# vi /etc/sysconfig/network-scripts/ifcfg-eth0
删除MAC跟UUID,还可以手动配置静态IP(不是比改项),然后重启系统。