title: ESXI通过 ovftool命令行部署与备份虚拟机
id: 737
date: 2023-03-03 00:40:15
auther: mengkai
cover: https://s2.loli.net/2022/07/18/rlaL2y9kVYiAmWf.png
excerpt: ESXI通过 ovftool命令行部署与备份虚拟机ESXI6.0之后管理为WEB,OVF导出/部署是个渣渣,如果虚拟机文件过大,一般会报网络异常中断而失败,可使用官方ovftool工具解决,快而方便,支持linux和Mac OSX,可脚本操作,批量处理等。在windows如已经安装vmware wo
permalink: /archives/737
categories:
- 教程
- virtualization
tags: - esxi
虚拟机
ESXI通过 ovftool命令行部署与备份虚拟机
ESXI6.0之后管理为WEB,OVF导出/部署是个渣渣,如果虚拟机文件过大,一般会报网络异常中断而失败,可使用官方ovftool工具解决,快而方便,支持linux和Mac OSX,可脚本操作,批量处理等。
在windows如已经安装vmware workstation,有个OVFTool目录直接可使用。如Workstation版本较老,那还是建议安装新版本的独立工具包,README.txt中能看到版本号。
下载地址(需注册登录)
https://my.vmware.com/group/vmware/downloads/details?downloadGroup=OVFTOOL440&productId=974
安装VMware-ovftool-4.4.0-15722219-win.x86_64.msi
默认C:\Program Files\VMware\VMware OVF Tool当前目录下运行CMD窗口。
OVA导出备份
首先管理员权限运行CMD
1.打开路径
cd /ovftool的安装路径
继续输入命令:
ovftool.exe --noSSLVerify vi://root@10.10.10.10/openwrt C:\123\456.ova
命令解释
–noSSLVerify 这个参数是跳过 VI 连接的 SSL 验证
10.10.10.30 是你esxi后台的IP
openwrt 是虚拟机名称
C:\123 是导出文件的路径
456.ova 是导出后OVA虚拟机的名称
比如下面我自己的命令行:
ovftool.exe --noSSLVerify vi://root@10.10.10.30/iStoreOS C:\Users\mengkai\Desktop\OVA\iStoreOS.ova
```
ovftool.exe --noSSLVerify vi://root@10.10.10.30/Synology C:\Users\mengkai\Desktop\OVA\Synology.ova
~~~
ovftool.exe --noSSLVerify vi://root@10.10.10.30/Debian-Docker C:\Users\mengkai\Desktop\OVA\Debian-Docker.ova
~~~
ovftool.exe --noSSLVerify vi://root@10.10.10.30/HomeAssistant C:\Users\mengkai\Desktop\OVA\HomeAssistant.ova
~~~
ovftool.exe --noSSLVerify vi://root@10.10.10.30/QuTScloud C:\Users\mengkai\Desktop\OVA\QuTScloud.ova
~~~
ovftool.exe --noSSLVerify vi://root@10.10.10.30/win7 C:\Users\mengkai\Desktop\OVA\win7.ova
~~~
ovftool.exe --noSSLVerify vi://root@10.10.10.30/iKuai C:\Users\mengkai\Desktop\OVA\iKuai.ova
OVF导出
ovftool.exe vi://root:@192.168.222.8/CentOS7.4 D:\OVF\CentOS7.4-out.ovf
- 如导出.ovf目标为目录不带文件名,那出来是一个vm原名的文件夹。
- 也可以导出为.ova单文件,ovftool也有格式互转功能。
- 如vm带了光驱文件,那iso也会下来,先剔除吧。
- 导出过程不可带密码运行,这不如linux版的便利。
备份教程到此为止 建议使用OVA的
下面内容可随意看看
部署OVF
ovftool.exe -ds=SSDmx-500 -dm=thin -n=CentOS7.4new “D:\OVF\CentOS7.4-out.ovf” vi://root:@192.168.222.8
-ds为目标存储名,按你的实际填写
使用ovftool.exe部署由vSphere Client出来的ovf成品也相同方式,没毛病!
vSphere Client部署该成品
直接部署会出现SHA-256校验错误,删除.mf文件重来一次即可。
如部署为该成品的.ova单文件,先解压即可是ovf目录格式,删除.mf文件即可。
*linux*版本的安装及使用
chmod +x VMware-ovftool-4.4.1-16812187-lin.x86_64.bundle
sh VMware-ovftool-4.4.1-16812187-lin.x86_64.bundle
在大空间存储下创建OVF导出位置
mkdir /opt/OVF
cd /opt/OVF
导出
ovftool vi://root@192.168.222.8/CentOS7.4 ./CentOS7.4.ovf
可直接带密码操作
ovftool vi://root:'PassWd#9'@192.168.222.8/CentOS7.4 ./CentOS7.4.ovf
带多功能参数的导出
ovftool --powerOffSource -o --X:logFile=./ovf.log vi://root:'PassWd#9'@192.168.222.8/CentOS7.4 ./CentOS7.4date +%Y%m%d.ova
–powerOffSource 先切断电源关机
-o 同名覆盖(导出导入)
–X:logFile 输入详细日志
带多功能参数的部署
ovftool --powerOn -ds=SSDmx-500 -dm=thin --network='vlan-253' -n=CentOS7.4-new "CentOS7.4.ovf" vi://root:'PassWd#9'@192.168.222.8
–powerOn 部署完毕自动开机
-dm=thin 还可以选择Thick(厚置备延迟置零—省略值) eagerZeroedThick(厚置备置零)
–network 部署选择网卡标签
使用proxy代理
ovftool --proxy=http://192.168.253.99:8118 vi://root@192.168.222.8/CentOS7.4 ./CentOS7.4proxy.ovf
批量部署
( 有多个ova文件,加个for循环用shell脚本自动部署)
`#!/bin/bash filename=find /opt/ovf/ -name *.ova
*#find all ova template*
for ova in $filename
do
/usr/bin/ovftool --X:logFile=./ovflog-date +%Y%m%d -ds=SSDmx-500 -dm=thin echo $ova 'vi://root:'PassWd#9'@192.168.222.8'
`continue``
与vcenter的格式
'vi://username:password@pod01-vcenter/POD01(TEST-POD)/host/POD01-CLU01/pod01-clu01-h001.cdscloud.local'
pod01-vcenter 是vcenter的名称;
POD01(TEST-POD) 是数据中心的名称;
host后面接模板部署目标host位置,CLU01代表集群,pod1-clu01-h001.jx.local是集群下的一台宿主机;
需要注意的是,这里的dns要设置好,或者也可用ip地址代替,比如:
vi://username:password@192.168.1.1/?ip=192.168.100.1'
192.168.1.1是vcenter的地址,192.168.100.1是目标宿主机的ip地址;
这里跟vcenter的连接也可以用http的形式,具体详见官方文档。
注意:
以上全文验证账户与导出/入过程都使用443目标端口。
镜像格式转换ovftool CentOS7.4.ovf CentOS7.4.ova (可互转)
评论区