Interact with virtualbox from nodejs using promises.
Obtain the package
$ npm install node-vbox [--save] [-g]Import package
const nodevbox = require('node-vbox'); const nodevbox = require('node-vbox');
nodevbox.list().then(vms => {
console.log(vms);
}).catch(error => {
console.log(error);
});More examples can be found on the test folder
nodevbox
-
version()Returns the current vbox version -
hostInformation()Returns information about the host running vbox -
systemProps()Returns vbox system infomation -
.create(vmname, ostype)Creates a new VM. Returns it's uuid. Checkvboxmanage list ostypesfor ostypes -
.start(uuid|vmname, gui)Starts a headless vm by default, to start with gui, pass true as second arguemtn -
.stop(uuid|vmname)Stops a VM -
.save(uuid|vmname)Saves the state of the vm -
.clone(uuid|vmname, newvmname)Clones a vm -
.screenshot(uuid|vmname, path)Takes a screenshot of a vm and saves it topath -
.setVrRam(uuid|vmname, ram)Changes vm ram amount (In mb) -
.bootOrder(uuid|vmname, boot1, boot2, boot3, boot4)Changes vm boot order. Valid options are none|floppy|dvd|disk|net -
.isRunning(uuid|vmname)Returns whatever a vm is running or not -
.getRunning()Returns a list of all running vms -
.list()Returns a list of all vms -
.vmInfo(uuid|vmname)Returns a list of vm properties -
.rdp.enableRdpAuth()Sets VBoxAuthSimple as the vbox rdp auth library.authType(uuid|vmname, null|external|guest)Changes the vm rdp auth type.setRdpStatus(uuid|vmname, true|false)Enables or disabled RDP for a specific vm.setPort(uuid|vmname, port)Sets the port in which the vm can be accessed via rdp.addUser(uuid|vmname, username, password)Creates a new RDP user on the vm.removeUser(uuid|vmname, username)Deleted a rdp user from the specified vm.listUsers(uuid|vmname)Lists all users that can connect to a vm via RDP
-
.snapshots.take(uuid|vmname, name, desc)Takes a snapshots from a vm, with name and optional description.restore(uuid|vmname, name)Restores the specified snapshot.list(uuid|vmname)List all snapshots for a vm.delete(uuid|vmname, name)Deletes a created snapshot
-
.metrics.enable(uuid|vmname)Enables metrics collection on a vm.disable(uuid|vmname)Disables metrics collection on a vm.query(uuid|vmname)Returns metrics for a vm
-
.storage.listAllVdi()Lists all created VDI disks.listMounted(uuid|vmname)Lists all disks on a vm by controller.attachVdi(uuid|vmname, path, storagectl, device, port)Adds vdi to vm (Default SATA controller, port 0, device 0).attachISO(uuid|vmname, path, storagectl, device, port)Adds iso to vm (Default IDE controller, port 0, device 0).detach(uuid|vmname, storagectl, device, port)Detaches device on storagectl, port, device of a vm.resizeVdi(uuid|vdipath, newsize)Resizes vdi to newsize in MB.createVdi(path, size)Creates a new vdi file