新手也能看懂!用 vSphere API 一键创建自定义虚拟机类教程
以前创建 vSphere 自定义虚拟机类只能靠 UI 手动操作又繁琐还不支持自动化对新手很不友好!好在 vSphere 7.0 Update2 版本推出了自动化 REST 接口还能搭配现成的 PowerShell 脚本实现高效管理。本文专为小白打造用通俗的语言拆解自定义虚拟机类的核心概念、操作流程从脚本引入到虚拟机类的创建、查询、删除每一步都附详细代码和说明就算不懂复杂技术也能跟着做还会分享 vSphere 9.0 的新增功能帮你轻松搞定虚拟机配置模板管理!一、先搞懂什么是虚拟机类?为什么要用 API 管理?简单说虚拟机类就像给虚拟机预设的 “配置模板”里面包含了 CPU 核心数、内存大小等关键参数。比如开发环境的虚拟机需要 8 核 CPU、16G 内存生产环境需要 32 核 CPU、96G 内存提前创建好对应的虚拟机类后续创建同类虚拟机时直接调用模板不用重复设置能大幅提升效率。早在 2020 年想要创建自定义虚拟机类只能通过 vSphere 的图形界面(UI)操作没有专门的编程接口(API)。虽然当时能直接连接到 vSphere Supervisor 控制平面但这种方式没有得到官方支持操作风险高还没法实现自动化批量创建。直到 vSphere 7.0 Update2 版本发布官方增强了 vSphere 自动化 REST 接口专门加入了管理虚拟机类的功能。现在借助这个 API再搭配简单的 PowerShell 脚本就能轻松实现虚拟机类的自动化管理不管是批量创建还是批量删除都能一键完成对新手和企业用户来说都特别实用。二、核心工具PowerShell 脚本及功能介绍为了方便大家使用 vSphere API 管理虚拟机类有开发者专门制作了一个 PowerShell 脚本(命名为 NamespaceVirtualMachineClass.ps1)里面包含了 5 个核心功能函数相当于把复杂的 API 操作打包成了 “傻瓜式工具”小白直接调用就行连接 - VSphere 自动化会话(Connect-VSphereAutomationSession)用来登录 vCenter 服务器建立操作连接;断开连接 - VSphere 自动化会话(Disconnect-VSphereAutomationSession)操作完成后断开连接保障安全;获取命名空间虚拟机类(Get-NamespaceVirtualMachineClass)查看当前已创建的所有虚拟机类;新建命名空间虚拟机类(New-NamespaceVirtualMachineClass)创建自定义的虚拟机类可指定 CPU、内存等参数;删除命名空间虚拟机类(Remove-NamespaceVirtualMachineClass)删除不需要的虚拟机类。三、一步一步操作小白也能上手的完整流程1. 准备工作下载并引入脚本首先需要下载 NamespaceVirtualMachineClass.ps1 脚本文件(可从原文作者提供的链接获取)将脚本保存到电脑的任意文件夹(比如桌面)。打开 PowerShell 软件通过命令切换到脚本所在的文件夹(比如脚本在桌面就输入 “cd Desktop” 并回车)。然后运行下面的命令把脚本引入到 PowerShell 环境中(注意两个点之间有空格)https://github.com/lamw/vmware-scripts/blob/master/powershell/NamespaceVirtualMachineClass.ps1powershell. .\NamespaceVirtualMachineClass.ps12. 登录 vCenter 服务器建立操作连接想要操作虚拟机类首先需要登录到你的 vCenter 服务器。运行下面的命令其中 “Server” 后面填写 vCenter 服务器的完整域名(比如 sfo-m01-vc01.sfo.rainpole.io小白可替换成自己的服务器域名)执行后会弹出窗口输入你的 vCenter 账号和密码即可登录powershell$session Connect-VSphereAutomationSession -Server sfo-m01-vc01.sfo.rainpole.io -Credential (Get-Credential)3. 查询虚拟机类看看已有哪些模板登录成功后想要查看当前服务器上已有的虚拟机类直接运行下面的命令就能列出所有虚拟机类的详细信息(比如名称、CPU、内存配置等)powershellGet-NamespaceVirtualMachineClass -Session $session | ft4. 创建自定义虚拟机类按需求设置参数这是核心步骤!根据自己的需求创建虚拟机类比如要创建生产环境、测试环境、开发环境 3 个不同规格的 Postgres 数据库虚拟机类可分别运行下面 3 条命令。其中 “-CpuCount” 指定 CPU 核心数“-MemoryMB” 指定内存大小(1G1024MB)“-Name” 是虚拟机类名称“-Description” 是备注说明小白可根据实际需求修改参数powershell# 创建生产环境Postgres虚拟机类(32核CPU、96G内存) New-NamespaceVirtualMachineClass -Session $session -CpuCount 32 -MemoryMB 98304 -Name postgres-large -Description PostgresDB 生产环境 # 创建测试环境Postgres虚拟机类(16核CPU、48G内存) New-NamespaceVirtualMachineClass -Session $session -CpuCount 16 -MemoryMB 49152 -Name postgres-medium -Description PostgresDB 测试环境 # 创建开发环境Postgres虚拟机类(8核CPU、16G内存) New-NamespaceVirtualMachineClass -Session $session -CpuCount 8 -MemoryMB 16384 -Name postgres-small -Description PostgresDB 开发环境创建完成后重新运行步骤 3 的查询命令就能看到刚刚创建的 3 个自定义虚拟机类啦!5. 删除虚拟机类清理不需要的模板如果某个虚拟机类不再使用可运行下面的命令删除(将 “-Name” 后面的名称替换成要删除的虚拟机类名称即可)powershell# 删除生产环境Postgres虚拟机类 Remove-NamespaceVirtualMachineClass -Session $session -Name postgres-large # 删除测试环境Postgres虚拟机类 Remove-NamespaceVirtualMachineClass -Session $session -Name postgres-medium # 删除开发环境Postgres虚拟机类 Remove-NamespaceVirtualMachineClass -Session $session -Name postgres-small四、额外惊喜vSphere 9.0 的增强功能随着 vSphere 9.0 版本的发布虚拟机类的功能得到了进一步升级!现在除了设置 CPU 和内存还能给虚拟机类添加额外的设备配置(比如网络适配器、存储控制器等)让虚拟机类的模板更贴合实际使用场景。后续如果升级到 vSphere 9.0还能体验到更多灵活的配置选项自动化管理会更高效。总结以前看似复杂的 vSphere 自定义虚拟机类管理借助 vSphere API 和 PowerShell 脚本小白也能轻松上手!从登录服务器到创建、查询、删除虚拟机类每一步都有明确的命令和说明不用编写复杂代码就能实现自动化操作。不管是个人搭建实验环境还是企业批量管理虚拟机这套方法都能帮你节省时间、减少出错。赶紧下载脚本跟着步骤尝试创建自己的虚拟机类吧!如果在操作中遇到问题可留言咨询