次のpythonコードを使用して、extra_configパラメーターbios.bootOrderを設定しています。
#!/bin/env python
from pysphere import VIServer, VITask
from pysphere.resources import VimService_services as VI
server = VIServer()
server.connect("vcenter-server", "myusername", "supersecrete")
vm = server.get_vm_by_name( 'targetvm' )
vm.set_extra_config({'bios.bootOrder': 'cdrom,hdd'}, sync_run=True)
残念ながら、再構成タスクは正常に終了しますが、ブートシーケンスは変更されません。伝えられるところによると、スクリプトはESXi4.xで動作しました。
誰かが同じ問題に直面する可能性がありますか?
私は解決策を見つけました。 APIはvSphere5で変更されたため、上記のコードは機能しなくなりました。
...他の誰かに役立つかもしれません: https://Gist.github.com/st0ne-dot-at/9984414
これはかなり大雑把なスクリプトですが、pyvmomiを使用して起動順序をcdに設定する例の目的を果たし、VMを起動するネットワーク(pxe)からの起動にも同様に機能します。
#!/ usr/bin/python import sys import time import time import atexit import argparse from pyVmomi import vim、vmodl from pyVim import connect from pyVim.connect import Interconnect、SmartConnect、GetSi system = sys.argv [1 ] 入力= {'vcenter_ip': 'ip.ad.re.ss'、 'vcenter_password': 'passwd'、 'vcenter_user': 'user'、 'vm_name':system、 'operation': 'stop'、 'force':True、 } #Functions def get_obj(content、vimtype、name): objct = None container = content.viewManager.CreateContainerView(content。 rootFolder、vimtype、True) for c in container.view: if c.name == name: objct = c break return objct si = connect.Connect(inputs ['vcenter_ip']、443、inpu ts ['vcenter_user']、inputs ['vcenter_password']) content = si.RetrieveContent() vm = get_obj(content、[vim.VirtualMachine]、inputs ['vm_name']) vm.PowerOff() #cd/networkから起動するように設定します。 # 'd outは、network/pxeブートに使用するものです #bn = vim.option.OptionValue(key =' bios.bootDeviceClasses '、value =' allow:cd ') bn = vim.option.OptionValue(key = 'bios.bootDeviceClasses'、value = 'allow:net') vmconf = vim.vm.ConfigSpec() vmconf。 extraConfig = [bn] vm.ReconfigVM_Task(vmconf) time.sleep(10) vm.PowerOnVM_Task() time.sleep(30) #システムをhddから再度起動するように設定 bn = vim.option.OptionValue(key = 'bios.bootDeviceClasses'、value = ' allow:hd、cd、fd、net ') vmconf = vim.vm.ConfigSpec() vmconf.extraConfig = [bn] vm.ReconfigVM_Task(vmconf)