Jenkins 管道 - 获取 vSphere 虚拟机列表

问题描述 投票:0回答:3

如何从 jenkins 管道内获取 vSphere 云中所有虚拟机的列表? 我在 Jenkins 的 vSphere 插件中找不到这样的选项。 谢谢

jenkins-pipeline virtual-machine vsphere esx
3个回答
0
投票

如果您想要 *nix 替代方案,GOVC 的 find 命令也很有用:

govc find . -type m

0
投票

通过执行使用 vSphere PowerCLI 命令的 powershell 脚本(使用 jenkins powershell 插件)来解决:

获取虚拟机

VMware Get-VM


0
投票

在管道中或在管理 Jenkins > 脚本控制台下尝试以下脚本。如果您想针对特定的 jenkins 节点,请取消注释带有 NODENAME 的行:

import hudson.model.Computer.ListPossibleNames

//def NODENAME = "Enter_Agent_Name_Here"
for(mynode in jenkins.model.Jenkins.instance.nodes)
{
  //if(NODENAME != mynode.getNodeName()) {continue } 
  nodeName = mynode.getNodeName()
  labels = mynode.getLabelString() 
  //Running state of a Node is called Computer.
  vmName = mynode.toComputer().class.metaClass.methods*.name.any{it=='getVmName'} ? mynode.toComputer().getVmName() : "VM_NAME_DOESNT_EXIST"  
  isOnline = mynode.toComputer().isOnline()
  ipAddress = isOnline ? mynode.toComputer().getChannel().call(new ListPossibleNames())[0] : "NODE_IS_OFFLINE"
  println "nodeName:${nodeName} vmName:${vmName} labels:${labels} isOnline:${isOnline} ipAddress:${ipAddress}"
}
© www.soinside.com 2019 - 2024. All rights reserved.