Cara mengatur bootorder untuk vm di vsphere 5.x dengan pysphere

1

Saya menggunakan kode python berikut untuk mengatur parameter ekstra_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)

Sayangnya tugas konfigurasi ulang selesai dengan sukses tetapi urutan boot tidak berubah. Menurut laporan, skrip tersebut berfungsi dengan ESXi 4.x.

Adakah yang bisa menghadapi masalah yang sama?

st0ne
sumber

Jawaban:

1

Berikut ini adalah skrip yang cukup kasar, tetapi melayani tujuan contoh yang menggunakan pyvmomi untuk mengatur urutan boot ke cd, berfungsi sama baiknya untuk mem-boot dari jaringan (pxe) juga mem-boot VM:

#! / usr / bin / python
impor sys
waktu impor
waktu impor
impor atexit
impor argparse
dari pyVmomi vim import, vmodl
dari impor pyVim terhubung
dari pyVim.connect import Disconnect, SmartConnect, GetSi

system = sys.argv [1]

        input = {'vcenter_ip': 'ip.ad.re.ss',
          'vcenter_password': 'passwd',
          'vcenter_user': 'user',
          'vm_name': system,
          'operasi': 'berhenti',
          'force': Benar,
          }

# Fungsi

def get_obj (konten, vimtype, nama):
    objct = Tidak ada
    container = content.viewManager.CreateContainerView (content.rootFolder, vimtype, True)
    untuk c dalam wadah. lihat:
        jika c.name == name:
            keberatan = c
            istirahat
    kembali keberatan


si = connect.Connect (input ['vcenter_ip'], 443, input ['vcenter_user'], input ['vcenter_password'])
content = si.RetrieveContent ()
vm = get_obj (konten, [vim.VirtualMachine], masukan ['vm_name'])
vm.PowerOff ()


# Atur untuk boot dari cd / jaringan. # out adalah apa yang akan Anda gunakan untuk boot jaringan / 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)


# Atur sistem untuk boot dari hdd lagi

bn = vim.option.OptionValue (key = 'bios.bootDeviceClasses', value = 'bolehkan: hd, cd, fd, net')
vmconf = vim.vm.ConfigSpec ()
vmconf.extraConfig = [bn]
vm.ReconfigVM_Task (vmconf)

Graeme Brooks-Crawford
sumber