ESXi 快速复制虚拟机脚本
Posted catoop
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ESXi 快速复制虚拟机脚本相关的知识,希望对你有一定的参考价值。
在 ESXi 命令行中,创建一个脚本,用来快速复制虚拟机,内容如下:
将以下脚本内容写入文件 copy.sh
,脚本和要复制的虚拟机文件夹在同一个目录中(平级):
#!/bin/sh
#命令使用方法示例 ./copy.sh centos7-2009-template k8s-dev-node2
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)
以上是关于ESXi 快速复制虚拟机脚本的主要内容,如果未能解决你的问题,请参考以下文章