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 快速复制虚拟机脚本的主要内容,如果未能解决你的问题,请参考以下文章

三种虚拟机工具的命令行实践

esxi 6 虚拟机安装复制

linux dhcp服务启动失败

linux之怎么在使用脚本快速创建虚拟机?怎么从别的主机拷贝一个虚拟机过来?

esxi 虚拟机性能问题?

克隆esxi虚拟机怎么修改mac地址