Will download ISO from microsoft site, will then build basebox (storing in VAGRANT_BASEBOX_STORAGE) and will then build with vagrant.
If Basebox is not present SecGen will prompt whether to use packer (requires download from packer website in README.md and for the binary to be in the system path) to build the Basebox.
*** Changes ***
constants.rb
51-57: Added the 2 constants PUPPET_VERSION: version of puppet to install on the newly generated system, and VAGRANT_BASEBOX_STORAGE which stores generated baseboxes (currently set to SecGen_root/.generated).
project_files_creator.rb
48-80: Added logic to check for existing basebox and to generate new basebox if not present.
base_metadata_schema.xsd
11: Added windows to platform options type
45-50: Added extra packer helper tags, packerfile_path (path to packer file in the layout of base_module_name/Packerfile_name) and product_key (will use a trial version if product key is not present)
vulnerability_metadata_schema.xsd
32: Added windows value to platformOptions type to allow for windows system implementation.
Vagrantfile.erb
21: Changed --hwvirtex to default of on without gui output, problems can occur if this is not set to on.
23,28,31: Removed - tags before ending %>, this was causing an error with the vagrantfile as the options were not being placed on different lines.
48-56: Added the use of winrm instead of the default ssh for the base module if the base module is windows.
puppet_install/LICENSE
Added Mozilla Public License Version 2.0 (GPL v3 compatable) that came with the puppet_install/windows.ps1 script, the script to install puppet can be rewritten with a more simple implementation, however this script should do error checking to add an extra level of stability to the puppet install.
puppet_install/windows.ps1
Will install puppet on the Windows machine.
virtualbox_guest_install/windows.bat
Will install the virtualbox guest additions on the Windows machine.
Autounattend.xml.erb
Aurounattend script that allows for setting out the system layout including system information, disk configuration and product keys.
Packerfile.erb
Packerfile that builds the machine via packer, was going to be fully parameterised with all options being in the SecGen metadata (it still can be converted to this easily) however this lead to a large SecGen_metadata file with multiple tags which were only used if the basebox is not present, therefore only the product_key and packerfile_path keys were added to the SecGen_metadata file. Although the product_key data may be moved to a central product_key file later on.
secgen_metadata.xml
SecGen metadata file for the new windows basebox.