手动处理
1、进入工作目录
cd /vmfs/volumes/安装虚拟机的磁盘目录
如:
cd /vmfs/volumes/5ee55a7f-08765a54-fbe3-00e06b68081a
2、创建新虚拟机目录
mkdir CentOS7-K8S-01
3、复制 vmx 文件处理
cp CentOS7-Docker/CentOS7-Docker.vmx CentOS7-K8S-01/CentOS7-K8S-01.vmx
4、替换虚拟机名称(使用Vi/Vim)
%s/原名称/新名称/g
如:
vi CentOS7-K8S-01/CentOS7-K8S-01.vmx
%s/CentOS7-Docker/CentOS7-K8S-01/g
5、虚拟磁盘类型转换
vmkfstools -i 原名称.vmdk 新名称.vmdk
如:
vmkfstools -i CentOS7-Docker/CentOS7-Docker.vmdk CentOS7-K8S-01/CentOS7-K8S-01.vmdk
6、Web界面注册新虚拟机(.vmx 右键)并启动
脚本处理
需自行修改对应的变量,脚本如下:
#/bin/bash
# ESXI 虚拟机拷贝脚本
# author: Onovo
## 虚拟机磁盘目录
VIRTUAL_MACHINES_BASE_PATH=/vmfs/volumes/datastore2
## 虚拟机模板
VIRTUAL_MACHINES_TEMPLATE=CentOS7-Base
VIRTUAL_MACHINES_TEMPLATE_PATH=${VIRTUAL_MACHINES_BASE_PATH}/${VIRTUAL_MACHINES_TEMPLATE}
## 虚拟机目标
VIRTUAL_MACHINES_CLONE=$1
VIRTUAL_MACHINES_CLONE_PATH=${VIRTUAL_MACHINES_BASE_PATH}/${VIRTUAL_MACHINES_CLONE}
echo "虚拟机磁盘目录为:${VIRTUAL_MACHINES_BASE_PATH}";
echo "模板虚拟机为:${VIRTUAL_MACHINES_TEMPLATE_PATH}";
echo "克隆虚拟机为:${VIRTUAL_MACHINES_CLONE_PATH}";
mkdir ${VIRTUAL_MACHINES_CLONE_PATH}
echo "拷贝 VMX 文件 ...";
cp ${VIRTUAL_MACHINES_TEMPLATE_PATH}/${VIRTUAL_MACHINES_TEMPLATE}.vmx ${VIRTUAL_MACHINES_CLONE_PATH}/${VIRTUAL_MACHINES_CLONE}.vmx
echo "修改虚拟机名称为 ${VIRTUAL_MACHINES_CLONE} ...";
sed -i "s/${VIRTUAL_MACHINES_TEMPLATE}/${VIRTUAL_MACHINES_CLONE}/g" ${VIRTUAL_MACHINES_CLONE_PATH}/${VIRTUAL_MACHINES_CLONE}.vmx
echo "转换虚拟磁盘类型 ..."
vmkfstools -i ${VIRTUAL_MACHINES_TEMPLATE_PATH}/${VIRTUAL_MACHINES_TEMPLATE}.vmdk ${VIRTUAL_MACHINES_CLONE_PATH}/${VIRTUAL_MACHINES_CLONE}.vmdk
echo "克隆虚拟机 ${VIRTUAL_MACHINES_CLONE} 成功!"
添加可执行权限:
[root@localhost:~] chmod +x clone.sh
使用脚本克隆虚拟:
[root@localhost:~] ./clone.sh DogeCoin
虚拟机磁盘目录为:/vmfs/volumes/datastore2
模板虚拟机为:/vmfs/volumes/datastore2/CentOS7-Base
克隆虚拟机为:/vmfs/volumes/datastore2/DogeCoin
拷贝 VMX 文件 ...
修改虚拟机名称为 DogeCoin ...
转换虚拟磁盘类型 ...
Destination disk format: VMFS zeroedthick
Cloning disk '/vmfs/volumes/datastore2/CentOS7-Base/CentOS7-Base.vmdk'...
Clone: 100% done.
克隆虚拟机 DogeCoin 成功!
最后通过Web界面注册新虚拟机(.vmx 右键)并启动即可。