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)