MS Windows image builder for OpenStack Murano

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

  1. 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
  1. 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=false
    
  • Update [win2k12r2] with desired editions(standard and core).

    [win2k12r2]
    enabled=true
    editions=standard core
    
  • Execute runme.sh --run

  1. 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=core
    
  • Update [win2k12r2] with desired edition(core).

    [win2k12r2]
    enabled=true
    editions=core
    
  • Execute runme.sh --run

Creative Commons Attribution 3.0 License

Except where otherwise noted, this document is licensed under Creative Commons Attribution 3.0 License. See all OpenStack Legal Documents.