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-utils
User 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 40G required 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