deb-murano/doc/source/image_builders/windows.rst
Ekaterina Fedorova e2e00a2382 Add new articles to documentation
Add converted into rst fromat the following articles:
  * Windows image builder
  * Linux image builder
  * Uploading image to Glance
  * Lab preparation and system requiremnts added in installation section
  * SSL configuration

Change-Id: I6b4c7e7e6670690e5722ea906e6464faff2a369b
Signed-off-by: Ekaterina Fedorova <efedorova@mirantis.com>
2014-05-14 15:52:50 +04:00

439 lines
14 KiB
ReStructuredText
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

..
Copyright 2014 Mirantis, Inc.
Licensed under the Apache License, Version 2.0 (the "License"); you may
not use this file except in compliance with the License. You may obtain
a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
License for the specific language governing permissions and limitations
under the License.
=============
Windows Image
=============
Murano requires a Windows Image in QCOW2 format to be builded and
uploaded into Glance.
The easiest way to build Windows image for Murano is to build it on the
host where your OpenStack is installed.
Install Required Packages
=========================
**Note**
Please check that hardware virtualization supported and enabled in
BIOS.
The following packages should be installed on any host which will be
used to build Windows Image:
* ipxe-qemu
* kvm-ipxe
* qemu-kvm
* munin-libvirt-plugins
* python-libvirt
* virt-goodies
* virt-manager
* virt-top
* virt-what
* virtinst
* python
On Ubuntu you could install them using the command below:
::
># apt-get install ipxe-qemu kvm-ipxe qemu-kvm virt-goodies \
virtinst virt-manager libvirt0 libvirt-bin \
munin-libvirt-plugins python python-libvirt \
python-libxml2 python-minimal python-pycurl \
python-pyorbit python-requests python-six \
samba samba-common openssh-server virt-top virt-what
Configure Shared Resource
=========================
**Configure samba based share.**
::
># mkdir -p /opt/samba/share
># chown -R nobody:nogroup /opt/samba/share
**Configure samba server (/etc/samba/smb.conf).**
::
...
[global]
...
security = user
...
[share]
comment = Deployment Share
path = /opt/samba/share
browsable = yes
read only = no
create mask = 0755
guest ok = yes
guest account = nobody
...
**Restart services.**
::
># service smbd restart
># service nmbd restart
Prerequisites
===============
Download the files below and copy them into their places in your
**${SHARE\_PATH}** folder (we usually use **/opt/samba/share** as
**${SHARE\_PATH}**):
* *Windows 2012 Server ISO evaluation version*
* ${SHARE\_PATH}/libvirt/images/ws-2012-eval.iso
* `http://technet.microsoft.com/en-us/evalcenter/hh670538.aspx`_
* *VirtIO drivers for Windows*
* ${SHARE\_PATH}/libvirt/images/virtio-win-0.1-74.iso
* `http://alt.fedoraproject.org/pub/alt/virtio-win/stable/virtio-win-0.1-74.iso`_
* *CloudBase-Init for Windows*
* ${SHARE\_PATH}/share/files/CloudbaseInitSetup\_Beta.msi
* `https://www.cloudbase.it/downloads/CloudbaseInitSetup_Beta.msi`_
* *Far Manager*
* ${SHARE\_PATH}/share/files/Far30b3367.x64.20130717.msi
* `http://www.farmanager.com/files/Far30b3525.x64.20130717.msi`_
* Git client
* ${SHARE\_PATH}/share/files/Git-1.8.1.2-preview20130601.exe
* `https://msysgit.googlecode.com/files/Git-1.8.3-preview20130601.exe`_
* *Sysinternals Suite*
* ${SHARE\_PATH}/share/files/SysinternalsSuite.zip
* `http://download.sysinternals.com/files/SysinternalsSuite.zip`_
* *unzip.exe tool*
* ${SHARE\_PATH}/share/files/unzip.exe
* `https://www.dropbox.com/sh/zthldcxnp6r4flm/AACwiyfcrlGDt3ygCFHrbwMra/unzip.exe`_
* *PowerShell v3*
* ${SHARE\_PATH}/share/files/Windows6.1-KB2506143-x64.msu
* `http://www.microsoft.com/en-us/download/details.aspx?id=34595`_
* *.NET 4.0*
* ${SHARE\_PATH}/share/files/dotNetFx40\_Full\_x86\_x64.exe
* `http://www.microsoft.com/en-us/download/details.aspx?id=17718`_
* *.NET 4.5*
* ${SHARE\_PATH}/share/files/dotNetFx45\_Full\_setup.exe
* `http://www.microsoft.com/en-us/download/details.aspx?id=30653`_
* *Murano Agent*
* ${SHARE\_PATH}/share/files/MuranoAgent.zip
* `https://www.dropbox.com/sh/zthldcxnp6r4flm/AADh6LkVkcw2j8nKZevqedHja/MuranoAgent.zip`_
.. _`http://technet.microsoft.com/en-us/evalcenter/hh670538.aspx`: http://technet.microsoft.com/en-us/evalcenter/hh670538.aspx
.. _`http://alt.fedoraproject.org/pub/alt/virtio-win/stable/virtio-win-0.1-74.iso`: http://alt.fedoraproject.org/pub/alt/virtio-win/stable/virtio-win-0.1-74.iso
.. _`https://www.cloudbase.it/downloads/CloudbaseInitSetup_Beta.msi`: https://www.cloudbase.it/downloads/CloudbaseInitSetup_Beta.msi
.. _`http://www.farmanager.com/files/Far30b3525.x64.20130717.msi`: http://www.farmanager.com/files/Far30b3525.x64.20130717.msi
.. _`https://msysgit.googlecode.com/files/Git-1.8.3-preview20130601.exe`: https://msysgit.googlecode.com/files/Git-1.8.3-preview20130601.exe
.. _`http://download.sysinternals.com/files/SysinternalsSuite.zip`: http://download.sysinternals.com/files/SysinternalsSuite.zip
.. _`https://www.dropbox.com/sh/zthldcxnp6r4flm/AACwiyfcrlGDt3ygCFHrbwMra/unzip.exe`: https://www.dropbox.com/sh/zthldcxnp6r4flm/AACwiyfcrlGDt3ygCFHrbwMra/unzip.exe
.. _`http://www.microsoft.com/en-us/download/details.aspx?id=34595`: http://www.microsoft.com/en-us/download/details.aspx?id=34595
.. _`http://www.microsoft.com/en-us/download/details.aspx?id=17718`: http://www.microsoft.com/en-us/download/details.aspx?id=17718
.. _`http://www.microsoft.com/en-us/download/details.aspx?id=30653`: http://www.microsoft.com/en-us/download/details.aspx?id=30653
.. _`https://www.dropbox.com/sh/zthldcxnp6r4flm/AADh6LkVkcw2j8nKZevqedHja/MuranoAgent.zip`: https://www.dropbox.com/sh/zthldcxnp6r4flm/AADh6LkVkcw2j8nKZevqedHja/MuranoAgent.zip
Additional Software
===================
This section describes additional software which is required to build an
Windows Image.
**Windows ADK**
*Windows Assessment and Deployment Kit (ADK) for Windows® 8* is required
to build your own answer files for auto unattended Windows installation.
You can dowload it from `http://www.microsoft.com/en-us/download/details.aspx?id=30652`_.
**PuTTY**
PuTTY is a useful tool to manage your Linux boxes via SSH.
You can download it from
`http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html`_.
**Windows Server ISO image**
We use the following Windows installation images:
* Windows Server 2008 R2
* Image Name:
7601.17514.101119-1850\_x64fre\_server\_eval\_en-us-GRMSXEVAL\_EN\_DVD.iso
* URL:
`http://www.microsoft.com/en-us/download/details.aspx?id=11093`_
* Windows Server 2012
* Image Name:
9200.16384.WIN8\_RTM.120725-1247\_X64FRE\_SERVER\_EVAL\_EN-US-HRM\_SSS\_X64FREE\_EN-US\_DV5.iso
* URL:
`http://technet.microsoft.com/en-US/evalcenter/hh670538.aspx?ocid=&wt.mc\_id=TEC\_108\_1\_33`_
**VirtIO Red Hat drivers ISO image**
**Warning**
Please, choose stable version instead of latest, Weve got errors
with unstable drivers during guest unattended install.
Download drivers from
`http://alt.fedoraproject.org/pub/alt/virtio-win/stable/`_
**Floppy Image With Unattended File**
Run following commands as root:
1. Create emtpy floppy image in your home folder
::
># dd bs=512 count=2880 \
if=/dev/zero of=~/floppy.img \
mkfs.msdos ~/floppy.img
2. Mount the image to **/media/floppy**
::
># mkdir /media/floppy mount -o loop \
~/floppy.img /media/floppy
3. Download **autounattend.xml** file from
`https://raw.githubusercontent.com/stackforge/murano-deployment/master/image-builder/share/files/ws-2012-std/autounattend.xml.template`_
::
># cd ~
># wget https://raw.githubusercontent.com/stackforge/murano-deployment/master/image-builder/share/files/ws-2012-std/autounattend.xml.template
4. Copy our **autounattend.xml** to **/media/floppy**
::
># cp ~/autounattend.xml /media/floppy
5. Unmount the image
::
># umount /media/floppy
.. _`http://www.microsoft.com/en-us/download/details.aspx?id=30652`: http://www.microsoft.com/en-us/download/details.aspx?id=30652
.. _`http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html`: http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html
.. _`http://www.microsoft.com/en-us/download/details.aspx?id=11093`: http://www.microsoft.com/en-us/download/details.aspx?id=11093
.. _`http://technet.microsoft.com/en-US/evalcenter/hh670538.aspx?ocid=&wt.mc\_id=TEC\_108\_1\_33`: http://technet.microsoft.com/en-US/evalcenter/hh670538.aspx?ocid=&wt.mc\_id=TEC\_108\_1\_33
.. _`http://alt.fedoraproject.org/pub/alt/virtio-win/stable/`: http://alt.fedoraproject.org/pub/alt/virtio-win/stable/
.. _`https://raw.githubusercontent.com/stackforge/murano-deployment/master/image-builder/share/files/ws-2012-std/autounattend.xml.template`: https://raw.githubusercontent.com/stackforge/murano-deployment/master/image-builder/share/files/ws-2012-std/autounattend.xml.template
Build Windows Image (Automatic Way)
===================================
1. Clone **murano-deployment** repository
::
># git clone git://github.com/stackforge/murano-deployment.git
2. Change directory to **murano-deployment/image-builder** folder.
3. Create folder structure for image builder
::
># make build-root
4. Create shared resource
**Add to /etc/samba/smb.conf.**
::
[image-builder-share]
comment = Image Builder Share
browsable = yes
path = /opt/image-builder/share
guest ok = yes
guest user = nobody
read only = no
create mask = 0755
**Restart samba services.**
::
># restart smbd && restart nmbd
5. Test that all required files are in place
::
># make test-build-files
6. Get list of available images
::
># make
7. Run image build process
::
># make ws-2012-std
8. Wait until process finishes
9. The image file **ws-2012-std.qcow2** should be stored under
**/opt/image-builder/share/images** folder.
Build Windows Image (Manual Way)
================================
**Warning**
Please note that the preferred way to build images is to use
**Automated Build** described in the previous chapter.
**Get Post-Install Scripts**
There are a few scripts which perform all the required post-installation
tasks.
Package installation tasks are performed by script named **wpi.ps1**.
Download it from `https://raw.github.com/stackforge/murano-deployment/master/image-builder/share/scripts/ws-2012-std/wpi.ps1`_
**Note**
There are a few scripts named **wpi.ps1**, each supports only one
version of Windows image. The script above is intended to be used to
create Windows Server 2012 Standard. To build other version of
Windows please use appropriate script from **scripts** folder.
Clean-up actions to finish image preparation are performed by
**Start-Sysprep.ps1** script.
Download it from `https://raw.github.com/stackforge/murano-deployment/master/image-builder/share/scripts/ws-2012-std/Start-Sysprep.ps1`_
These scripts should be copied to the shared resource folder, subfolder
**Scripts**.
**Create a VM**
This section describes steps required to build an image of Windows
Virtual Machine which could be used with Murano. There are two possible
ways to create it - from CLI or using GUI tools. We describe both in
this section.
**Note**
Run all commands as root.
**Way 1: Using CLI Tools**
This section describes the required step to launch a VM using CLI tools
only.
1. Preallocate disk image
::
># qemu-img create -f raw /var/lib/libvirt/images/ws-2012.img 40G
2. Start the VM
::
># virt-install --connect qemu:///system --hvm --name WinServ \
--ram 2048 --vcpus 2 --cdrom /opt/samba/share/9200.16384.WIN8_RTM\
.120725-1247_X64FRE_SERVER_EVAL_EN-US-HRM_SSS_X64FREE_EN-US_DV5.ISO \
--disk path=/opt/samba/share/virtio-win-0.1-52.iso,device=cdrom \
--disk path=/opt/samba/share/floppy.img,device=floppy \
--disk path=/var/lib/libvirt/images/ws-2012.qcow2\
,format=qcow2,bus=virtio,cache=none \
--network network=default,model=virtio \
--memballoon model=virtio --vnc --os-type=windows \
--os-variant=win2k8 --noautoconsole \
--accelerate --noapic --keymap=en-us --video=cirrus --force
**Way 2: Using virt-manager UI**
A VM also could be lauched via GUI tools like virt-manager.
1. Launch *virt-manager* from shell as root
2. Set a name for VM and select Local install media
3. Add one cdrom and attach Windows Server ISO image to it
4. Select OS type **Windows**
5. Set CPU and RAM amount
6. Deselect option **Enable storage for this virtual machine**
7. Add second cdrom for ISO image with virtio drivers
8. Add a floppy drive and attach our floppy image to it
9. Add (or create new) HDD image with Disk bus **VirtIO** and storage format **RAW**
10. Set network device model **VirtIO**
11. Start installation process and open guest vm screen through **Console** button
**Convert the image from RAW to QCOW2 format.**
The image must be converted from RAW format to QCOW2 before being
imported into Glance.
::
># qemu-img convert -O qcow2 /var/lib/libvirt/images/ws-2012.raw \
/var/lib/libvirt/images/ws-2012-ref.qcow2
.. _`https://raw.github.com/stackforge/murano-deployment/master/image-builder/share/scripts/ws-2012-std/wpi.ps1`: https://raw.github.com/stackforge/murano-deployment/master/image-builder/share/scripts/ws-2012-std/wpi.ps1
.. _`https://raw.github.com/stackforge/murano-deployment/master/image-builder/share/scripts/ws-2012-std/Start-Sysprep.ps1`: https://raw.github.com/stackforge/murano-deployment/master/image-builder/share/scripts/ws-2012-std/Start-Sysprep.ps1