You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Pulumi关闭vCenter上的现有虚拟机?

用Pulumi管理vSphere虚拟机关机的方案

可行实现方式

1. 利用forcePowerOff参数触发关机

Pulumi的vsphere.VirtualMachine资源没有直接的输入型powerState参数,但可以通过forcePowerOff参数触发强制关机:

  • 在代码中将目标虚拟机的forcePowerOff设为true
  • 执行pulumi up,Pulumi会触发虚拟机强制关机
  • 关机完成后建议将forcePowerOff改回false,避免后续更新重复执行该操作

示例代码(TypeScript):

import * as vsphere from "@pulumi/vsphere";

const remoteDesktopVm = new vsphere.VirtualMachine("remote-desktop-vm", {
    // 虚拟机基础配置(略)
    forcePowerOff: true, // 开启强制关机
});

2. 直接调用vSphere API控制电源状态

如果需要软关机、重启等更灵活的操作,可绕过Pulumi资源更新流程,直接调用vSphere API:

  • 通过vsphere.getVirtualMachine获取虚拟机的标识信息
  • 调用vSphere的PowerOffVM_Task(软关机)或PowerOffVM(强制关机)API接口
  • 这种方式适合频繁的电源状态变更,无需触发基础设施更新

关键参数说明

  • shutdownWaitTimeout:仅在销毁虚拟机时生效,用于等待操作系统正常关机的超时时间,超时后会强制关机
  • poweronTimeout:虚拟机开机过程的超时设置,与关机操作无关
  • powerState:仅作为输出参数,用于读取当前虚拟机的电源状态,无法通过修改它控制电源

内容的提问来源于stack exchange,提问作者bobby

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.11 02:55:23