MS Windows image builder for OpenStack Murano¶
Introduction¶
This repository contains MS Windows templates, powershell scripts and bash scripted logic used to create qcow2 images for QEMU/KVM based virtual machines used in OpenStack.
MS Windows Versions¶
Supported by builder versions with en_US localization:
Windows 2012 R2
Windows 2012 R2 Core
Windows 2008 R2
Windows 2008 R2 Core
Getting Started¶
Trial versions of Windows 2008 R2 / 2012 R2 used by default. You could use these images for 180 days without activation. You could download evaluation versions from official Microsoft website:
System requirements¶
Debian based Linux distribution, like Ubuntu, Mint and so on.
Packages required:
qemu-kvm virt-manager virt-goodies virtinst bridge-utils libvirt-bin uuid-runtime samba samba-common cifs-utilsUser should be able to run sudo without password prompt!
sudo echo "${USER} ALL = NOPASSWD: ALL" > /etc/sudoers.d/${USER} sudo chmod 440 /etc/sudoers.d/${USER}
Free disk space > 50G on partition where script will spawn virtual machines because of
40Grequired by virtual machine HDD image.Internet connectivity.
Samba shared resource.
Configuring builder¶
Configuration parameters to tweak:
[default]
workdir- place where script would prepare all software required by build scenarios. By default is not set, i.e. script directory would used as root of working space.vmsworkdir- must contain valid path, this parameter tells script where it should spawn virtual machines.runparallel- true of false, false set by default. This parameter describes how to start virtual machines, one by one or in launch them in background.
[samba]
mode- local or remote. In local mode script would try to install and configure Samba server locally. If set to remote, you should also provide information about connection.host- in local mode - is 192.168.122.1, otherwise set proper ip address.user- set to guest by default in case of guest rw access.domain- Samba server user domain, if not set host value used.password- Samba server user password.image-builder-share- Samba server remote directory.
MS Windows install preparation:
[win2k12r2] or [win2k8r2] - shortcuts for 2012 R2 and 2008 R2.
enabled- true of false, include or exclude release processing by script.editions- standard, core or both(space used as delimiter).iso- local path to iso file
By default [win2k8r2] - disabled, if you need you can enable this release in config.ini file.
Run¶
Preparation¶
Run chmod +x *.sh in builder directory to make script files executable.
Command line parameters:¶
runme.sh - the main script
--help- shows usage--forceinstall-dependencies- Runs dependencies install.--check-smb- Run checks or configuration of Samba server.--download-requirements- Download all required and configures software except MS Windows ISO.--show-configured- Shows configured and available to use MS Windows releases.--run- normal run
Experimental options:¶
--config-file- Set configuration file location instead of default.
Use cases¶
All examples below describes changes in config.ini file
I want to build one image for specific version and edition. For example: version - 2012 R2 and edition - standard. Steps to reach the goal:
Disable
[win2k8r2]from script processing.[win2k8r2] enabled=false
Update
[win2k12r2]with desired edition(standard).[win2k12r2] enabled=true editions=standard
Execute
runme.sh --run
I want to build two images for specific version with all supported by script editions. For example: 2012 R2 and editions - standard and core. Steps to reach the goal:
Disable [win2k8r2] from script processing.
[win2k8r2] enabled=falseUpdate
[win2k12r2]with desired editions(standard and core).[win2k12r2] enabled=true editions=standard coreExecute
runme.sh --run
I want to build two images for all supported by script versions with specific editions. For example: versions - 2012 R2 and 2008 R2 and edition - core. Steps to reach the goal:
Update
[win2k8r2]with desired edition(core).[win2k8r2] enabled=true editions=coreUpdate
[win2k12r2]with desired edition(core).[win2k12r2] enabled=true editions=coreExecute
runme.sh --run