在 ESXi 命令行中,创建一个脚本,用来快速复制虚拟机,内容如下:
将以下脚本内容写入文件 copy.sh
,脚本和要复制的虚拟机文件夹在同一个目录中(平级):
#!/bin/sh
in=$1
out=$2
if [ "$in" = "" -o "$out" = "" ]; then
echo "参数缺失,命令示例:./copy.sh centos7-2009-template k8s-dev-node2"
else
echo in=$1 out=$2
cp -R ${in} ${out}
cd ${out}
mv ${in}-flat.vmdk ${out}-flat.vmdk
mv ${in}.nvram ${out}.nvram
mv ${in}.vmdk ${out}.vmdk
mv ${in}.vmsd ${out}.vmsd
mv ${in}.vmx ${out}.vmx
mv ${in}.vmxf ${out}.vmxf
sed -i -e 's/'${in}'/'${out}'/g' ${out}.vmdk
sed -i -e 's/'${in}'/'${out}'/g' ${out}.vmx
fi
脚本完成后,以复制虚拟机文件夹 ,复制后的虚拟机文件夹
为例,命令如下:
[root@localhost:/vmfs/volumes/63f2f000-xxxxxx-xxx-xxxxxx] ll
total 1860096
drwxr-xr-t 1 root root 73728 Feb 20 08:13 .
drwxr-xr-x 1 root root 512 Feb 20 08:20 ..
drwxr-xr-x 1 root root 73728 Feb 20 06:23 centos7-2009-template
-rwxr-xr-x 1 root root 562 Feb 20 08:13 copy.sh
[root@localhost:/vmfs/volumes/63f2f000-xxxxxx-xxx-xxxxxx] ./copy.sh centos7-2009-template k8s-dev-node3
in=centos7-2009-template out=k8s-dev-node3
拷贝虚拟机文件时间比较长,因为虚拟机 flat 文件很大,所以要等。
完整的虚拟机文件复制完毕后,到 ESXi UI 界面的存储中,右键 k8s-dev-node3.vmx
文件注册虚拟机。
最后到虚拟机列表中,开启虚拟机,弹出的提示框询问是 “已移动” “已复制”,选择 “已复制” 即可(告诉它已复制的意思是它会生成新的 mac 地址不会和之前虚拟机发生网络冲突)。
(END)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)