Hi All, [Draft] proposal of new API: *IVirtualBox::IUnattended*
My vbox-unattended project is progressing well, now at v0.6.3 BETA: https://forums.virtualbox.org/viewtopic.php?f=10&t=46798&p=214565#p214565 ----------------- Currently I am aware of 4 projects trying to achieve Unattended installs with VirtualBox, to varying degrees (openSUSE openQA, Technologov's vbox-unattended, pallet, vagrant-VeeWee) In order to remove duplicate of effort, it is a good idea to implement this at the Main API level. It will let GUI, CLI and python users alike to share same code, and, more importantly, customize to own needs. The low-level stuff is pretty similar to my "libunattended.cpp". What should it do ? /* Generic functions: */ Low-level: This one will replace 4 parameters: user, password, ProductKey, arch. Input file = template_script, outfile = MachineFolder/target_script prepareGenericScript() This one will create a FAT12-formatted floppy image at given path, like MachineFolder/floppy.img prepareFormattedFloppy() This one will copy up to 2 files into a given FAT12-formatted floppy image (we don't need more than 2) copyFilesToFloppy(file1, file2) This will extract Linux Guest Additions: extractLinuxAdditionsFromISO() This is a generic function to crate bootable Linux ISO image with ISOLINUX bootloader and unattended script: prepareUnattendedLinuxCD() /* Guest OS specific functions: */ Low-level: prepareRHELScript() <-- similar to prepareGenericScript(), but more RHEL specifics. extractFromRedHatISO( path_to_ISO ) <-- extracting Linux kernel, initrd and isolinux bootloader, Red Hat-way. extractFromDebianISO( path_to_ISO ) <-- extracting Linux kernel, initrd and isolinux bootloader, Debian-way. extractFromSuseISO( path_to_ISO ) <-- extracting Linux kernel, initrd and isolinux bootloader, SUSE-way. High-level: constructUnattendedScript( IGuestOSType ) <-- will edit scripts automatically, and put them into correct places ( MachineFolder/... ) NOTE: between those 2 stages, it is possible for the API user to edit those files, either manually (in case of VBoxManage CLI user) or via stream editor, such as "sed". This will give us pretty customizable solution. packageUnattendedScript( IGuestOSType? ) <-- will copy into floppy / CD images, and put them into correct places ( MachineFolder/... ) Windows guests do not need any specifics, because the generic functions are sufficient for them. It will auto-detect VM folder, and put ready scripts and ready images there, by using IVirtualBox::composeMachineFilename() and similar helpers... -- -Alexey Eromenko "Technologov"
_______________________________________________ vbox-dev mailing list vbox-dev@virtualbox.org https://www.virtualbox.org/mailman/listinfo/vbox-dev