Files
virtualbox/GUI/gui.py
2023-11-23 16:13:06 +01:00

40 lines
1.3 KiB
Python

from vboxapi import VirtualBoxManager
def create_vm(vm_name, base_image_path, memory_size_mb=1024, cpus=1):
# Verbindung zum VirtualBox-Manager herstellen
mgr = VirtualBoxManager(None, None)
vbox_mgr = mgr.vboxManager
# Festplatten-Controller erstellen
storage_ctl = vbox_mgr.getHardDiskController("SATA")
# Festplatte erstellen und an den Controller anhängen
base_image = vbox_mgr.createHardDisk("VDI", base_image_path)
storage_ctl.attachDevice(base_image)
# VM erstellen
vm = vbox_mgr.createMachine("", vm_name, [], "Linux", "Ubuntu_64", [])
# Speicher hinzufügen
vm.memorySize = memory_size_mb
# CPU-Einstellungen hinzufügen
vm.cpuCount = cpus
# Netzwerkadapter hinzufügen (optional)
nic = vm.getNetworkAdapter(0)
nic.attachmentType = mgr.constants.NetworkAttachmentType_Bridged
# VM starten und anhalten, um Einstellungen zu speichern
session = mgr.mgr.getSessionObject(vbox_mgr)
progress = vm.launchVMProcess(session, "gui", "")
progress.waitForCompletion(-1)
session.console.powerDown()
session.unlockMachine()
print(f"VM '{vm_name}' wurde erfolgreich erstellt.")
if __name__ == "__main__":
# Beispielaufruf
create_vm("MeineVM", "/Pfad/zur/basis_disk.vdi")