如何从 jenkins 管道内获取 vSphere 云中所有虚拟机的列表? 我在 Jenkins 的 vSphere 插件中找不到这样的选项。 谢谢
如果您想要 *nix 替代方案,GOVC 的 find 命令也很有用:
govc find . -type m
在管道中或在管理 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}"
}