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")