无法使用生成的 python 代码在 vSphere 服务器上打开 DRS
Cannot turn on DRS on vSphere server with generated python code
这是代码捕获功能生成的代码。
from pyVmomi import vim
spec = vim.cluster.ConfigSpecEx()
spec.drsConfig = vim.cluster.DrsConfigInfo()
spec.drsConfig.defaultVmBehavior = "fullyAutomated"
spec.drsConfig.scaleDescendantsShares = 'disabled'
spec.drsConfig.vmotionRate = 1
spec.drsConfig.enabled = True
spec.drsConfig.enableVmBehaviorOverrides = True
spec_drsConfig_option_0 = vim.option.OptionValue()
spec_drsConfig_option_0.value = '1'
spec_drsConfig_option_0.key = 'TryBalanceVmsPerHost'
spec_drsConfig_option_1 = vim.option.OptionValue()
spec_drsConfig_option_1.key = 'MaxVcpusPerCore'
spec.drsConfig.option = [spec_drsConfig_option_0,
spec_drsConfig_option_1]
spec.proactiveDrsConfig = vim.cluster.ProactiveDrsConfigInfo()
spec.proactiveDrsConfig.enabled = True
spec.dpmConfig = vim.cluster.DpmConfigInfo()
spec.dpmConfig.hostPowerActionRate = 3
spec.dpmConfig.enabled = False
modify = True
managedObject.ReconfigureComputeResource_Task(spec, modify) # ClusterComputeResource-domain-c8
Error: C:\python>python drsTestThing.py
Traceback (most recent call last):
File "C:\python\drsTestThing.py", line 38, in <module>
managedObject.ReconfigureComputeResource_Task(spec, modify) # ClusterComputeResource-domain-c8
NameError: name 'managedObject' is not defined
至此我根据这个https://vdc-download.vmware.com/vmwb-repository/dcr-public/da47f910-60ac-438b-8b9b-6122f4d14524/16b7274a-bf8b-4b4c-a05e-746f2aa93c8c/doc/vim.ComputeResource.html确定了ReconfigureComputeResource_Task函数的return是一个Task对象,必须是集群对象调用
我的问题是我不明白如何制作集群对象以及它如何连接到 vSphere 并更改集群的配置。
目前我正在使用 pyVim 库中的 SmartConnect 连接到主机。我也有这个与 powerCLI 一起工作但是连接 vi 服务器方法挂起所以我想用 python.
完成这个任务
您似乎从未将集群(或 ClusterComputeResource)建立为 managedObject
变量。这应该在创建 spec
变量之前完成,代码捕获输出中可能遗漏了。
这是代码捕获功能生成的代码。
from pyVmomi import vim
spec = vim.cluster.ConfigSpecEx()
spec.drsConfig = vim.cluster.DrsConfigInfo()
spec.drsConfig.defaultVmBehavior = "fullyAutomated"
spec.drsConfig.scaleDescendantsShares = 'disabled'
spec.drsConfig.vmotionRate = 1
spec.drsConfig.enabled = True
spec.drsConfig.enableVmBehaviorOverrides = True
spec_drsConfig_option_0 = vim.option.OptionValue()
spec_drsConfig_option_0.value = '1'
spec_drsConfig_option_0.key = 'TryBalanceVmsPerHost'
spec_drsConfig_option_1 = vim.option.OptionValue()
spec_drsConfig_option_1.key = 'MaxVcpusPerCore'
spec.drsConfig.option = [spec_drsConfig_option_0,
spec_drsConfig_option_1]
spec.proactiveDrsConfig = vim.cluster.ProactiveDrsConfigInfo()
spec.proactiveDrsConfig.enabled = True
spec.dpmConfig = vim.cluster.DpmConfigInfo()
spec.dpmConfig.hostPowerActionRate = 3
spec.dpmConfig.enabled = False
modify = True
managedObject.ReconfigureComputeResource_Task(spec, modify) # ClusterComputeResource-domain-c8
Error: C:\python>python drsTestThing.py
Traceback (most recent call last):
File "C:\python\drsTestThing.py", line 38, in <module>
managedObject.ReconfigureComputeResource_Task(spec, modify) # ClusterComputeResource-domain-c8
NameError: name 'managedObject' is not defined
至此我根据这个https://vdc-download.vmware.com/vmwb-repository/dcr-public/da47f910-60ac-438b-8b9b-6122f4d14524/16b7274a-bf8b-4b4c-a05e-746f2aa93c8c/doc/vim.ComputeResource.html确定了ReconfigureComputeResource_Task函数的return是一个Task对象,必须是集群对象调用
我的问题是我不明白如何制作集群对象以及它如何连接到 vSphere 并更改集群的配置。
目前我正在使用 pyVim 库中的 SmartConnect 连接到主机。我也有这个与 powerCLI 一起工作但是连接 vi 服务器方法挂起所以我想用 python.
完成这个任务您似乎从未将集群(或 ClusterComputeResource)建立为 managedObject
变量。这应该在创建 spec
变量之前完成,代码捕获输出中可能遗漏了。