最近做应用 Demo,比较依赖纯净的虚拟机和容器做验证。两个月前在 NUC8 上安装过 ESXi 7 ,对于提升效率起到了不少帮助。

但是 VMware 官方并未提供针对 NUC8 可以直接使用的 ESXi 软件包,缺少 NUC8等设备使用的网卡驱动,而网上大批文章还在介绍使用古老的“ESXi-Customizer-PS”脚本来完成镜像安装,准备步骤极其繁琐、复杂。

所以,本篇文章就来分享一下如何制作带有 Intel 网卡驱动的 ESXi 镜像,支持各种“非官方认证设备”,以及如何相对科学的在 NUC 上安装 ESXi 7。

写在前面

虽然 ESXi 是一款商业软件,但是我们可以通过申请免费授权来长期稳定的使用它,下面是两个主要版本的授权申请地址:

这里建议先进行授权申请,耐心等待授权通过,再跟着文章继续操作。

获取相关软件包

在授权申请完成之后,我们就可以从官网网站下载 ESXi 的软件包了。

授权完成之后,从官网下载软件

这里选择 “VMware vSphere Hypervisor (ESXi) Offline Bundle” ,方便我们后续制作带有 Intel 网卡驱动的镜像,本篇文章使用的版本如下:

VMware vSphere Hypervisor (ESXi) Offline Bundle
2021-04-29 | 7.0U2a | 372.47 MB | zip

Contains VIB packages and image profiles for ESXi including VMware Tools. Use the image profiles and the VIB packages with VMware Image Builder and VMware Auto Deploy to create custom image/ISO generation for ESXi deployments.

MD5SUM(¹): 9b676a33ef191221f8e456b63d46dd55
SHA1SUM(¹): ea71d5cf770e64359d1668a6ca49d5c4758d51f9
SHA256SUM(¹): e1e7988553ed6845cc68309d6c6022dedc747ab7d08eb97d7e0bd9fca15bb283

下载完毕,将文件保存为“VMware-ESXi-7.0U2a-17867351-depot.zip”,等待使用。

获取社区网卡驱动

接着访问 Community Networking Driver for ESXi ,获取最新的 1.2 版本的社区网卡驱动。将文件保存为“Net-Community-Driver_1.2.0.0-1vmw.700.1.0.15843807_18028830.zip” ,等待使用。

VMware Power CLI

虽然 VMware Power CLI 可以通过命令获取,但是因为依赖众多,安装比较费事,不如直接使用离线版本。

获取 VMware Power CLI

继续访问 VMware Power CLI 资源站,获取最新版本的 12.3.0 软件包,将文件保存为“VMware-PowerCLI-12.3.0-17860403.zip”,等待使用。

准备构建环境

构建 ESXi 镜像,依赖 PowerShell 环境,虽然 PowerShell 有 Docker 镜像,但是 Docker 镜像使用的是“Core”版本的 Shell, 会导致构建命令不能够正常使用,直接运行会获得类似下面的错误信息:

Exception: The VMware.ImageBuilder module is not currently supported on the Core edition of PowerShell.

所以,这里我们需要一台标准的 Windows 系统环境,来运行 PowerShell ,进行镜像构建。

构建使用的云服务器配置

我个人没有 Windows 主机环境,所以这里选择了使用按量付费的云主机进行镜像构建,我这里选择的是4c8g的主机,系统选择 Windows Server 2019,带宽拉满大概100M。

构建使用的云服务器支出

总成本大概 1块钱左右。如果你有 Windows 环境,那么这个成本可以省去。系统选择 Win10,应该是可以正常构建的。

HFS - HTTP File Server

这里因为使用云服务器,所以需要将之前下载好的相关的软件包上传到服务器。这里我偷懒不写代码了,直接使用开源软件 HFS,开启一个支持上传功能的文件服务器,就能从浏览器对服务器进行快捷的文件上传下载了。

使用 HFS 上传刚刚的软件包

启动 HFS,根据软件提示,启动服务,开启上传功能,将上文中的 zip 压缩包依次上传到服务器。

进行镜像构建

以管理员身份启动一个 PowerShell,先进行 VMware PowerCLI 的安装。

首先获取 PowerShell 的模块路径,然后将下载的 PowerCLI 压缩包放置模块目录,并进行解压缩。

# 查看模块环境变量
PS C:\> $env:PSModulePath

C:\Users\Administrator\Documents\WindowsPowerShell\Modules;C:\Program Files\WindowsPowerShell\Modules;C:\Windows\system32\WindowsPowerShell\v1.0\Modules

# 移动软件包到模块路径
PS C:\> mv .\VMware-PowerCLI-12.3.0-17860403.zip '.\Program Files\WindowsPowerShell\Modules\'

# 切换工作目录
PS C:\> cd '.\Program Files\WindowsPowerShell\Modules\'

# 尝试解压缩软件包
PS C:\Program Files\WindowsPowerShell\Modules> unzip .\VMware-PowerCLI-12.3.0-17860403.zip

# 如果系统没有 unzip 命令,则可以使用 Expand-Archive 替代
PS C:\Program Files\WindowsPowerShell\Modules> Expand-Archive .\VMware-PowerCLI-12.3.0-17860403.zip -DestinationPath ./

解压缩之后,就可以进行模块安装了,如果你看到类似的结果,那么说明安装一切正常。

# 安装 CLI 软件
PS C:\Program Files\WindowsPowerShell\Modules\VMware-PowerCLI-12.3.0-17860403> Get-ChildItem * -Recurse | Unblock-File

# 查看软件是否安装就绪
PS C:\Program Files\WindowsPowerShell\Modules\VMware-PowerCLI-12.3.0-17860403> Get-Module -Name VMware.PowerCLI -ListAvailable


    目录: C:\Program Files\WindowsPowerShell\Modules\VMware-PowerCLI-12.3.0-17860403


ModuleType Version    Name                                ExportedCommands
---------- -------    ----                                ----------------
Manifest   12.3.0.... VMware.PowerCLI

接着切换到合适的目录下,进行镜像构建的主要步骤,操作步骤类似 docker 基于某个镜像进行二次构建:

# 将 ESXi 官方软件包添加到当前 PowerCLI Session 中
PS C:\> Add-EsxSoftwareDepot .\VMware-ESXi-7.0U2a-17867351-depot.zip

Depot Url
---------
zip:C:\VMware-ESXi-7.0U2a-17867351-depot.zip?index.xml

# 将社区网卡软件包进行同样添加
PS C:\> Add-EsxSoftwareDepot .\Net-Community-Driver_1.2.0.0-1vmw.700.1.0.15843807_18028830.zip

Depot Url
---------
zip:C:\Net-Community-Driver_1.2.0.0-1vmw.700.1.0.15843807_18028830.zip?index.xml

# 查看当前 ESXi 镜像名称,提供给后续步骤使用
PS C:\> Get-EsxImageProfile

Name                           Vendor          Last Modified   Acceptance Level
----                           ------          -------------   ----------------
ESXi-7.0U2a-17867351-no-tools  VMware, Inc.    2021/4/9 5:5... PartnerSupported
ESXi-7.0U2a-17867351-standard  VMware, Inc.    2021/4/29 0:... PartnerSupported

# 复制一个镜像配置,作为后续要输出镜像的配置模版
PS C:\> New-EsxImageProfile -CloneProfile "ESXi-7.0U2a-17867351-standard" -name "ESXi-7.0U2a-17867351-nuc" -vendor "soulteary"

Name                           Vendor          Last Modified   Acceptance Level
----                           ------          -------------   ----------------
ESXi-7.0U2a-17867351-nuc       soulteary       2021/4/29 0:... PartnerSupported


# 将社区网卡软件包添加到输出镜像模版中
PS C:\> Add-EsxSoftwarePackage -ImageProfile  "ESXi-7.0U2a-17867351-nuc" -SoftwarePackage "net-community"

Name                           Vendor          Last Modified   Acceptance Level
----                           ------          -------------   ----------------
ESXi-7.0U2a-17867351-nuc       soulteary       2021/6/22 14... PartnerSupported

# 将上述的镜像进行打包,并导出 ESXi7.iso 镜像文件
PS C:\> Export-EsxImageProfile -ImageProfile  "ESXi-7.0U2a-17867351-nuc" -ExportToIso -FilePath ESXi7.iso

稍等几秒,你会得到一个名为 ESXi7.iso 的镜像文件,使用 USB 启动盘烧录软件将镜像烧录至 U 盘,启动安装即可。

安装就绪后的 ESXi

安装就绪后,使用浏览器访问 ESXi IP 地址,会被自动重定向到 HTTPS 模式,接受“不安全”的证书,访问控制台,就能开启低成本、快捷的 “虚拟化”之旅啦。

最后

虽然网上有许多“方法”可以使用 ESXi,但是我希望这篇文章的读者可以去试着申请授权,使用正确的、合理合法的方式来使用这个软件。

–EOF