957 lines
48 KiB
XML
957 lines
48 KiB
XML
<?xml version="1.0" encoding="UTF-8"?>
|
|
<!--
|
|
Copyright (c) 2013 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.
|
|
-->
|
|
<book xmlns="http://docbook.org/ns/docbook"
|
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
|
xmlns:xlink="http://www.w3.org/1999/xlink"
|
|
xsi:schemaLocation="http://docbook.org/ns/docbook http://www.docbook.org/xml/5.0/xsd/docbook.xsd
|
|
http://www.w3.org/1999/xlink http://www.w3.org/1999/xlink.xsd"
|
|
version="5.0">
|
|
<info>
|
|
<title>Murano Administrator's Guide</title>
|
|
<author>
|
|
<affiliation>
|
|
<orgname></orgname>
|
|
</affiliation>
|
|
</author>
|
|
<copyright>
|
|
<year></year>
|
|
<holder></holder>
|
|
</copyright>
|
|
<releaseinfo>v0.2</releaseinfo>
|
|
<productname>Murano</productname>
|
|
<pubdate>2013-09-09</pubdate>
|
|
<legalnotice role="apache2">
|
|
<annotation>
|
|
<remark> Copyright details are filled in by the template. Change the value of the
|
|
role attribute on the legalnotice element to change the license. </remark>
|
|
</annotation>
|
|
</legalnotice>
|
|
<abstract>
|
|
<para> This document is intended for individuals who wish to install and use our product
|
|
or intend to contribute. </para>
|
|
</abstract>
|
|
<cover>
|
|
<para>this is a placeholder for the front cover</para>
|
|
</cover>
|
|
<cover>
|
|
<para>this is a placeholder for the back cover</para>
|
|
</cover>
|
|
</info>
|
|
<chapter xml:id="_general_deployment_steps">
|
|
<title>General Deployment Steps</title>
|
|
<section xml:id="_configure_your_environment">
|
|
<title>Prepare A Lab For Murano</title>
|
|
<para>This section provides basic information about lab's system requirements. It also
|
|
contains a description of a test which you may use to check if your hadrware fits
|
|
the requirements. To do this, run the test and compare the results with baseline
|
|
data provided.</para>
|
|
<section xml:id="_lab_requirements">
|
|
<title>Lab Requirements</title>
|
|
<table xml:id="_hardware_requirements" frame="all">
|
|
<title>Hardware requirements</title>
|
|
<tgroup cols="3" align="left" rowsep="1" colsep="1">
|
|
<colspec colname="col1" colwidth="1*"/>
|
|
<colspec colname="col2" colwidth="3*"/>
|
|
<colspec colname="col3" colwidth="3*"/>
|
|
<thead>
|
|
<row>
|
|
<entry>Criteria</entry>
|
|
<entry>Minimal</entry>
|
|
<entry>Recommended</entry>
|
|
</row>
|
|
</thead>
|
|
<tbody>
|
|
<row>
|
|
<entry>CPU</entry>
|
|
<entry>4 core @ 2.4 GHz</entry>
|
|
<entry>24 core @ 2.67 GHz</entry>
|
|
</row>
|
|
<row>
|
|
<entry>RAM</entry>
|
|
<entry>8 GB</entry>
|
|
<entry>24 GB or more</entry>
|
|
</row>
|
|
<row>
|
|
<entry>HDD</entry>
|
|
<entry>2 x 500 GB (7200 rpm)</entry>
|
|
<entry>4 x 500 GB (7200 rpm)</entry>
|
|
</row>
|
|
<row>
|
|
<entry>RAID</entry>
|
|
<entry>Software RAID-1 (use mdadm as it will improve read
|
|
performance almost two times)
|
|
</entry>
|
|
<entry>Hardware RAID-10</entry>
|
|
</row>
|
|
</tbody>
|
|
</tgroup>
|
|
</table>
|
|
<para>There are a few possible storage configurations except the shown above. All of
|
|
them were tested and were working well.</para>
|
|
<para>
|
|
<itemizedlist>
|
|
<listitem>
|
|
<para>1x SSD 500+ GB</para>
|
|
</listitem>
|
|
<listitem>
|
|
<para>1x HDD (7200 rpm) 500+ GB and 1x SSD 250+ GB (install the system
|
|
onto the HDD and mount the SSD drive to folder where VM images
|
|
are)</para>
|
|
</listitem>
|
|
<listitem>
|
|
<para>1x HDD (15000 rpm) 500+ GB</para>
|
|
</listitem>
|
|
</itemizedlist>
|
|
</para>
|
|
<para>The list of OSes which we used in our lab is shown below.</para>
|
|
<table xml:id="_software_requirements" frame="all">
|
|
<title>OS Requirements</title>
|
|
<tgroup cols="1" align="left" rowsep="1" colsep="1">
|
|
<colspec colname="col1" colwidth="1*"/>
|
|
<thead>
|
|
<row>
|
|
<entry>List</entry>
|
|
</row>
|
|
</thead>
|
|
<tbody>
|
|
<row>
|
|
<entry>Ubuntu Server 12.04 LTS</entry>
|
|
</row>
|
|
</tbody>
|
|
</tgroup>
|
|
</table>
|
|
</section>
|
|
<section xml:id="_how_to_test_your_host_performance">
|
|
<title>Test Your Lab Host Performance</title>
|
|
<para>We have measured time required to boot 1 to 5 instances of Windows system simultaneously. You
|
|
can use this data as the baseline to check if your system is fast enough.
|
|
</para>
|
|
<para>You should use sysprepped images for this test, to simulate VM first boot.</para>
|
|
<para>Steps to reproduce test:</para>
|
|
<orderedlist numeration="arabic">
|
|
<listitem>
|
|
<para>
|
|
Prepare Windows 2012 Standard (with GUI) image in QCOW2 format. Let's assume that its
|
|
name is ws-2012-std.qcow2
|
|
</para>
|
|
</listitem>
|
|
<listitem>
|
|
<para> Ensure that there is NO KVM PROCESSES on the host. To do this, run
|
|
command:
|
|
<screen>># ps aux | grep kvm </screen></para>
|
|
</listitem>
|
|
<listitem>
|
|
<para>
|
|
Make 5 copies of Windows image file:
|
|
</para>
|
|
<screen>># for i in $(seq 5); do cp ws-2012-std.qcow2 ws-2012-std-$i.qcow2; done</screen>
|
|
</listitem>
|
|
<listitem>
|
|
<para>
|
|
Create script start-vm.sh in the folder with .qcow2 files:
|
|
</para>
|
|
<screen>#!/bin/bash
|
|
[ -z $1 ] || echo "VM count not provided!"; exit 1
|
|
for i in $(seq $1); do
|
|
echo "Starting VM $i ..."
|
|
kvm \
|
|
-m 1024 \
|
|
-drive file=ws-2012-std-$i.qcow2,if=virtio \
|
|
-net user -net nic,model=virtio \
|
|
-nographic \
|
|
-usbdevice tablet \
|
|
-vnc :$i &
|
|
done </screen>
|
|
</listitem>
|
|
<listitem>
|
|
<para>
|
|
Start ONE instance with command below (as root) and measure time between VM’s launch
|
|
and the moment when Server Manager window appears. To view VM’s desktop, connect with
|
|
VNC viewer to your host to VNC screen :1 (port 5901):
|
|
</para>
|
|
<screen>># ./start-vm.sh 1</screen>
|
|
</listitem>
|
|
<listitem>
|
|
<para>
|
|
Turn VM off. You may simply kill all KVM processes by
|
|
</para>
|
|
<screen>># killall kvm</screen>
|
|
</listitem>
|
|
<listitem>
|
|
<para>
|
|
Start FIVE instances with command below (as root) and measure time interval between ALL VM’s
|
|
launch and the moment when LAST Server Manager window appears. To view VM’s desktops,
|
|
connect with VNC viewer to your host to VNC screens :1 thru :5 (ports 5901-5905):
|
|
</para>
|
|
<screen>># ./start-vm.sh 5</screen>
|
|
</listitem>
|
|
<listitem>
|
|
<para>
|
|
Turn VMs off. You may simply kill all KVM processes by
|
|
</para>
|
|
<screen>># killall kvm</screen>
|
|
</listitem>
|
|
</orderedlist>
|
|
</section>
|
|
<section xml:id="_baseline_data">
|
|
<title>Baseline Bata</title>
|
|
<para>The table below provides baseline data which we've got in our
|
|
environment.</para>
|
|
<para><emphasis role="bold">Avg. Time</emphasis> refers to the lab with recommended
|
|
hardware configuration, while <emphasis role="bold">Max. Time</emphasis> refers
|
|
to minimal hardware configuration.</para>
|
|
<informaltable
|
|
frame="all"
|
|
rowsep="1" colsep="1"
|
|
>
|
|
<tgroup cols="3">
|
|
<colspec colname="col_1" colwidth="33*"/>
|
|
<colspec colname="col_2" colwidth="33*"/>
|
|
<colspec colname="col_3" colwidth="33*"/>
|
|
<thead>
|
|
<row>
|
|
<entry/>
|
|
<entry>Boot ONE instance</entry>
|
|
<entry>Boot FIVE instances</entry>
|
|
</row>
|
|
</thead>
|
|
<tbody>
|
|
<row>
|
|
<entry align="left" valign="top">
|
|
<para>Avg. Time</para>
|
|
</entry>
|
|
<entry align="left" valign="top">
|
|
<para>3m:40s</para>
|
|
</entry>
|
|
<entry align="left" valign="top">
|
|
<para>8m</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry align="left" valign="top">
|
|
<para>Max. Time</para>
|
|
</entry>
|
|
<entry align="left" valign="top">
|
|
<para>5m</para>
|
|
</entry>
|
|
<entry align="left" valign="top">
|
|
<para>20m</para>
|
|
</entry>
|
|
</row>
|
|
</tbody>
|
|
</tgroup>
|
|
</informaltable>
|
|
</section>
|
|
<section xml:id="_host_optimizations">
|
|
<title>Host Optimizations</title>
|
|
<para>Default KVM installation could be improved to provide better
|
|
performance.</para>
|
|
<para>The following optimizations may improve host performance up to 30%:</para>
|
|
<itemizedlist>
|
|
<listitem>
|
|
<para>
|
|
change default scheduler from
|
|
<emphasis role="strong">CFQ</emphasis>
|
|
to
|
|
<emphasis role="strong">Deadline</emphasis>
|
|
</para>
|
|
</listitem>
|
|
<listitem>
|
|
<para>
|
|
use
|
|
<emphasis role="strong">ksm</emphasis>
|
|
</para>
|
|
</listitem>
|
|
<listitem>
|
|
<para>
|
|
use
|
|
<emphasis role="strong">vhost-net</emphasis>
|
|
</para>
|
|
</listitem>
|
|
</itemizedlist>
|
|
</section>
|
|
</section>
|
|
<section xml:id="_install_software">
|
|
<title>Install OpenStack</title>
|
|
<para>Currently we use Devstack (<link xlink:href="http://devstack.org/">http://devstack.org/</link>) to
|
|
build our lab environment.
|
|
</para>
|
|
<para>Use Devstack's guide to install single VM OpenStack (<link
|
|
xlink:href="http://devstack.org/guides/single-vm.html">
|
|
http://devstack.org/guides/single-vm.html</link>) </para>
|
|
<formalpara>
|
|
<title>localrc example</title>
|
|
<para>
|
|
<screen>HOST_IP=
|
|
FLAT_INTERFACE=
|
|
FLOATING_RANGE=
|
|
|
|
ADMIN_PASSWORD=swordfish
|
|
MYSQL_PASSWORD=swordfish
|
|
RABBIT_PASSWORD=swordfish
|
|
SERVICE_PASSWORD=swordfish
|
|
SERVICE_TOKEN=tokentoken
|
|
|
|
ENABLED_SERVICES+=,heat,h-api,h-api-cfn,h-api-cw,h-eng
|
|
|
|
# Image's cache is in $TOP_DIR/files
|
|
IMAGE_URLS+=",http://fedorapeople.org/groups/heat/prebuilt-jeos-images/F17-x86_64-cfntools.qcow2"
|
|
|
|
# /etc/nova/nova.conf
|
|
EXTRA_OPTS=(force_config_drive=true libvirt_images_type=qcow2 force_raw_images=false)
|
|
|
|
# Logging
|
|
SCREEN_LOGDIR=/opt/stack/log/
|
|
LOGFILE=$SCREEN_LOGDIR/stack.sh.log </screen>
|
|
</para>
|
|
</formalpara>
|
|
<para>If you need to image builder only, then install only packages required to run
|
|
<emphasis role="strong">KVM</emphasis>
|
|
.
|
|
</para>
|
|
</section>
|
|
<section xml:id="_configure_openstack_installation">
|
|
<title>Configure OpenStack</title>
|
|
<para>New OpenStack installation requires configuration. However, if you are using
|
|
Devstack, then it's have been done.</para>
|
|
<para>Otherwise, configure your OpenStack before proceed.</para>
|
|
</section>
|
|
</chapter>
|
|
<chapter>
|
|
<title>Install Murano Components</title>
|
|
<para>Murano Components installation notes are described in Murano developer's guide. Please
|
|
consult that document.</para>
|
|
</chapter>
|
|
<chapter xml:id="_build_windows_image">
|
|
<title>Prepare Image Builder</title>
|
|
<para>Murano requires a Windows Image in QCOW2 format to be builded and uploaded into
|
|
Glance.</para>
|
|
<para>The easiest way to build Windows image for use with Murano is to build it right on the
|
|
host where your OpenStack is installed.</para>
|
|
<section xml:id="_image_builder">
|
|
<title>Image Builder</title>
|
|
<para>The following packages should be installed on any host which will be used to build
|
|
Windows Image.</para>
|
|
<section>
|
|
<title>Install Required Packages</title>
|
|
<note>
|
|
<para>Please check that hardware virtualization supported and enabled in
|
|
BIOS.</para>
|
|
</note>
|
|
<table frame="all" rowsep="1" colsep="1">
|
|
<title>Required Packages</title>
|
|
<tgroup cols="2">
|
|
<colspec colname="col_1" colwidth="50*"/>
|
|
<colspec colname="col_2" colwidth="50*"/>
|
|
<thead>
|
|
<row>
|
|
<entry>Package Name</entry>
|
|
<entry>Package Version</entry>
|
|
</row>
|
|
</thead>
|
|
<tbody>
|
|
<row>
|
|
<entry align="left" valign="top">
|
|
<para>ipxe-qemu</para>
|
|
</entry>
|
|
<entry align="left" valign="top">
|
|
<para>1.0.0+git-4.d6b0b76-0ubuntu2</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry align="left" valign="top">
|
|
<para>kvm-ipxe</para>
|
|
</entry>
|
|
<entry align="left" valign="top">
|
|
<para>1.0.0+git-4.d6b0b76-0ubuntu2</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry align="left" valign="top">
|
|
<para>qemu-kvm</para>
|
|
</entry>
|
|
<entry align="left" valign="top">
|
|
<para>1.4.0+dfsg-1expubuntu4</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry align="left" valign="top">
|
|
<para>munin-libvirt-plugins</para>
|
|
</entry>
|
|
<entry align="left" valign="top">
|
|
<para>0.0.6-1</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry align="left" valign="top">
|
|
<para>python-libvirt</para>
|
|
</entry>
|
|
<entry align="left" valign="top">
|
|
<para>1.0.2-0ubuntu11</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry align="left" valign="top">
|
|
<para>libvirt-bin</para>
|
|
</entry>
|
|
<entry align="left" valign="top">
|
|
<para>1.0.2-0ubuntu11</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry align="left" valign="top">
|
|
<para>libvirt0</para>
|
|
</entry>
|
|
<entry align="left" valign="top">
|
|
<para>1.0.2-0ubuntu11</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry align="left" valign="top">
|
|
<para>munin-libvirt-plugins</para>
|
|
</entry>
|
|
<entry align="left" valign="top">
|
|
<para>0.0.6-1</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry align="left" valign="top">
|
|
<para>python-libvirt</para>
|
|
</entry>
|
|
<entry align="left" valign="top">
|
|
<para>1.0.2-0ubuntu11</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry align="left" valign="top">
|
|
<para>virt-goodies</para>
|
|
</entry>
|
|
<entry align="left" valign="top">
|
|
<para>0.4-2</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry align="left" valign="top">
|
|
<para>virt-manager</para>
|
|
</entry>
|
|
<entry align="left" valign="top">
|
|
<para>0.9.4-2ubuntu3</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry align="left" valign="top">
|
|
<para>virt-top</para>
|
|
</entry>
|
|
<entry align="left" valign="top">
|
|
<para>1.0.7-1</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry align="left" valign="top">
|
|
<para>virt-what</para>
|
|
</entry>
|
|
<entry align="left" valign="top">
|
|
<para>1.12-1</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry align="left" valign="top">
|
|
<para>virtinst</para>
|
|
</entry>
|
|
<entry align="left" valign="top">
|
|
<para>0.600.3-3ubuntu1</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry align="left" valign="top">
|
|
<para>python</para>
|
|
</entry>
|
|
<entry align="left" valign="top">
|
|
<para>2.7.4-0ubuntu1</para>
|
|
</entry>
|
|
</row>
|
|
</tbody>
|
|
</tgroup>
|
|
</table>
|
|
<screen>># 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 </screen>
|
|
</section>
|
|
<section>
|
|
<title>Configure Shared Resource</title>
|
|
<formalpara>
|
|
<title>Configure samba based share</title>
|
|
<para>
|
|
<screen>># mkdir -p /opt/samba/share
|
|
># chown -R nobody:nogroup /opt/samba/share </screen>
|
|
</para>
|
|
</formalpara>
|
|
<formalpara>
|
|
<title>Configure samba server (/etc/samba/smb.conf)</title>
|
|
<para>
|
|
<screen>...
|
|
[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
|
|
... </screen>
|
|
</para>
|
|
</formalpara>
|
|
<formalpara>
|
|
<title>Restart services</title>
|
|
<para>
|
|
<screen>># service smbd restart
|
|
># service nmbd restart</screen>
|
|
</para>
|
|
</formalpara>
|
|
</section>
|
|
</section>
|
|
<section xml:id="_additional_software">
|
|
<title>Additional Software</title>
|
|
<para>This section describes additional software which is required to build an Windows
|
|
Image.</para>
|
|
<section xml:id="_windows_adk">
|
|
<title>Windows ADK</title>
|
|
<para><emphasis role="italic">Windows Assessment and Deployment Kit (ADK) for
|
|
Windows® 8</emphasis> is required to build your own answer files for auto
|
|
unattended Windows installation.</para>
|
|
<para>You can dowload it from <link
|
|
xlink:href="http://www.microsoft.com/en-us/download/details.aspx?id=30652">
|
|
http://www.microsoft.com/en-us/download/details.aspx?id=30652 </link>
|
|
.</para>
|
|
</section>
|
|
<section xml:id="_putty">
|
|
<title>Putty</title>
|
|
<para>PuTTY is a useful tool to manage your Linux boxes via SSH.</para>
|
|
<para>You can download it from <link
|
|
xlink:href="http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html"
|
|
> http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html </link>
|
|
</para>
|
|
</section>
|
|
<section xml:id="_windows_server_2012_iso_image">
|
|
<title>Windows Server 2012 ISO image</title>
|
|
<para>We use the following Windows installation images:</para>
|
|
<informaltable frame="all" rowsep="1" colsep="1">
|
|
<tgroup cols="2">
|
|
<colspec colname="col_1" colwidth="1*"/>
|
|
<colspec colname="col_2" colwidth="2.28*"/>
|
|
<thead>
|
|
<row>
|
|
<entry>Windows Version</entry>
|
|
<entry>Image Name</entry>
|
|
</row>
|
|
</thead>
|
|
<tbody>
|
|
<row>
|
|
<entry align="left" valign="top">
|
|
<para>Windows Server 2008 R2</para>
|
|
</entry>
|
|
<entry align="left" valign="top">
|
|
<para>7601.17514.101119-1850_x64fre_server_eval_en-us-GRMSXEVAL_EN_DVD.iso
|
|
</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry align="left" valign="top">
|
|
<para>Windows Server 2012</para>
|
|
</entry>
|
|
<entry align="left" valign="top">
|
|
<para>
|
|
9200.16384.WIN8_RTM.120725-1247_X64FRE_SERVER_EVAL_EN-US-HRM_SSS_X64FREE_EN-US_DV5.iso
|
|
</para>
|
|
</entry>
|
|
</row>
|
|
</tbody>
|
|
</tgroup>
|
|
</informaltable>
|
|
<para>You may download them using one of the following links:</para>
|
|
<informaltable frame="all" rowsep="1" colsep="1">
|
|
<tgroup cols="2">
|
|
<colspec colname="col_1" colwidth="1*"/>
|
|
<colspec colname="col_2" colwidth="2.3*"/>
|
|
<thead>
|
|
<row>
|
|
<entry>Windows Version</entry>
|
|
<entry>Download Link</entry>
|
|
</row>
|
|
</thead>
|
|
<tbody>
|
|
<row>
|
|
<entry align="left" valign="top">
|
|
<para>Windows Server 2008 R2</para>
|
|
</entry>
|
|
<entry align="left" valign="top">
|
|
<para>
|
|
<link
|
|
xlink:href="http://www.microsoft.com/en-us/download/details.aspx?id=11093"
|
|
>
|
|
http://www.microsoft.com/en-us/download/details.aspx?id=11093
|
|
</link>
|
|
</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry align="left" valign="top">
|
|
<para>Windows Server 2012</para>
|
|
</entry>
|
|
<entry align="left" valign="top">
|
|
<para>
|
|
<link
|
|
xlink:href="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
|
|
</link>
|
|
</para>
|
|
</entry>
|
|
</row>
|
|
</tbody>
|
|
</tgroup>
|
|
</informaltable>
|
|
</section>
|
|
<section xml:id="_virtio_red_hat_drivers_iso_image">
|
|
<title>VirtIO Red Hat drivers ISO image</title>
|
|
<para>Download drivers from <link
|
|
xlink:href="http://alt.fedoraproject.org/pub/alt/virtio-win/stable/">
|
|
http://alt.fedoraproject.org/pub/alt/virtio-win/stable/ </link>
|
|
</para>
|
|
<para>Please, choose stable version instead of latest, we’ve got errors with
|
|
unstable drivers during guest unattended install. </para>
|
|
</section>
|
|
<section xml:id="_create_floppy_drive_image">
|
|
<title>Floppy Image With Unattended File</title>
|
|
<para>Run following commands as root:</para>
|
|
<orderedlist numeration="arabic">
|
|
<listitem>
|
|
<para> Create empty floppy image in your home folder </para>
|
|
<screen>># dd bs=512 count=2880 \
|
|
if=/dev/zero of=~/floppy.img \
|
|
mkfs.msdos ~/floppy.img </screen>
|
|
</listitem>
|
|
<listitem>
|
|
<para> Mount the image to <emphasis role="strong">/media/floppy</emphasis>
|
|
</para>
|
|
<screen>># mkdir /media/floppy mount -o loop \
|
|
~/floppy.img /media/floppy </screen>
|
|
</listitem>
|
|
<listitem>
|
|
<para> Download <emphasis role="strong">autounattend.xml</emphasis> file
|
|
from <link
|
|
xlink:href="https://raw.github.com/stackforge/murano-deployment/master/image-builder/share/files/ws-2012-std/autounattend.xml"
|
|
>
|
|
https://raw.github.com/stackforge/murano-deployment/master/image-builder/share/files/ws-2012-std/autounattend.xml
|
|
</link>
|
|
</para>
|
|
<screen>># cd ~
|
|
># wget https://raw.github.com/stackforge/murano-deployment\
|
|
/master/image-builder/share/files/ws-2012-std/autounattend.xml </screen>
|
|
</listitem>
|
|
<listitem>
|
|
<para> Copy our <emphasis role="strong">autounattend.xml</emphasis> to
|
|
<emphasis role="strong">/media/floppy</emphasis>
|
|
</para>
|
|
<screen>># cp ~/autounattend.xml /media/floppy</screen>
|
|
</listitem>
|
|
<listitem>
|
|
<para> Unmount the image </para>
|
|
<screen>># umount /media/floppy</screen>
|
|
</listitem>
|
|
</orderedlist>
|
|
</section>
|
|
</section>
|
|
</chapter>
|
|
<chapter xml:id="_automated_build">
|
|
<title>Build Windows Image (Automatic Way)</title>
|
|
<orderedlist numeration="arabic">
|
|
<listitem>
|
|
<para> Clone <emphasis role="strong">murano-deployment</emphasis> repository </para>
|
|
<screen>># git clone git://github.com/stackforge/murano-deployment.git</screen>
|
|
</listitem>
|
|
<listitem>
|
|
<para> Change directory to <emphasis role="strong"
|
|
>murano-deployment/image-builder</emphasis> folder. </para>
|
|
</listitem>
|
|
<listitem>
|
|
<para> Create folder structure for image builder </para>
|
|
<screen>># make build-root</screen>
|
|
</listitem>
|
|
<listitem>
|
|
<para> Create shared resource </para>
|
|
<formalpara>
|
|
<title>Add to /etc/samba/smb.conf</title>
|
|
<para>
|
|
<screen>[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 </screen>
|
|
</para>
|
|
</formalpara>
|
|
<formalpara>
|
|
<title>Restart samba services</title>
|
|
<para>
|
|
<screen>># restart smbd && restart nmbd</screen>
|
|
</para>
|
|
</formalpara>
|
|
</listitem>
|
|
<listitem>
|
|
<para> Test that all required files are in place </para>
|
|
<screen>># make test-build-files</screen>
|
|
</listitem>
|
|
<listitem>
|
|
<para> Get list of available images </para>
|
|
<screen>># make</screen>
|
|
</listitem>
|
|
<listitem>
|
|
<para> Run image build process </para>
|
|
<screen>># make ws-2012-std</screen>
|
|
</listitem>
|
|
<listitem>
|
|
<para> Wait until process finishes </para>
|
|
</listitem>
|
|
<listitem>
|
|
<para> The image file <emphasis role="strong">ws-2012-std.qcow2</emphasis> should be
|
|
stored under <emphasis role="strong">/opt/image-builder/share/images</emphasis>
|
|
folder. </para>
|
|
</listitem>
|
|
</orderedlist>
|
|
</chapter>
|
|
<chapter xml:id="_manual_build">
|
|
<title>Build Windows Image (Manual Way)</title>
|
|
<warning>
|
|
<para>Please note that the preferred way to build images is to use <emphasis
|
|
role="strong">Automated Build</emphasis> described later in this book. </para>
|
|
</warning>
|
|
<section xml:id="_get_windows_post_install_script">
|
|
<title>Get Windows Post Install script</title>
|
|
<para>All post-install actions are performed by script named <emphasis role="strong"
|
|
>wpi.ps1</emphasis>. You may download it using the link <link
|
|
xlink:href="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
|
|
</link>
|
|
</para>
|
|
<para>To finish image preparation <emphasis role="strong">Start-Sysprep.ps1</emphasis>
|
|
script is used. You may download it using the link <link
|
|
xlink:href="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
|
|
</link>
|
|
</para>
|
|
<note>
|
|
<para>There are a few scripts named <emphasis role="strong">wpi.ps1</emphasis>, 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 <emphasis role="strong">scripts</emphasis>
|
|
folder. </para>
|
|
</note>
|
|
</section>
|
|
<section xml:id="_copy_scripts_to_the_shared_folder">
|
|
<title>Copy scripts to the shared folder</title>
|
|
<para>All scripts should be copied to the shared resource folder, subfolder<emphasis
|
|
role="strong"> Scripts</emphasis>. </para>
|
|
</section>
|
|
<section xml:id="_create_guest_vm">
|
|
<title>Create guest VM</title>
|
|
<section xml:id="_way_1_from_console">
|
|
<title>Way 1 - from console</title>
|
|
<para>Run all commands as root.</para>
|
|
<formalpara>
|
|
<title>Preallocate disk image</title>
|
|
<para>
|
|
<screen>># qemu-img create -f qcow2 -o preallocation=metadata \
|
|
/var/lib/libvirt/images/winserv_vio.qcow2 20G </screen>
|
|
</para>
|
|
</formalpara>
|
|
<formalpara>
|
|
<title>Start guest install</title>
|
|
<para>
|
|
<screen>># 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/flop.img,device=floppy \
|
|
--disk path=/var/lib/libvirt/images/winserv_vio.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 </screen>
|
|
</para>
|
|
</formalpara>
|
|
</section>
|
|
<section xml:id="_way_2_from_virt_manager_ui">
|
|
<title>Way 2 - from virt-manager UI</title>
|
|
<itemizedlist>
|
|
<listitem>
|
|
<para> launch virt-manager from shell as root </para>
|
|
</listitem>
|
|
<listitem>
|
|
<para> set Guest VM name and Local install media </para>
|
|
</listitem>
|
|
<listitem>
|
|
<para> add 1 cdrom - Windows Server ISO image </para>
|
|
</listitem>
|
|
<listitem>
|
|
<para> set OS type: Windows and version: Windows Server 2008 </para>
|
|
</listitem>
|
|
<listitem>
|
|
<para> set CPU and RAM amount </para>
|
|
</listitem>
|
|
<listitem>
|
|
<para> deselect Enable storage for this virtual machine </para>
|
|
</listitem>
|
|
<listitem>
|
|
<para> select Customize configuration before install </para>
|
|
</listitem>
|
|
<listitem>
|
|
<para> add 2 cdrom - virtio ISO image </para>
|
|
</listitem>
|
|
<listitem>
|
|
<para> add floppy - our floppy image </para>
|
|
</listitem>
|
|
<listitem>
|
|
<para> add/or create HDD image with Disk bus: VirtIO and storage format:
|
|
QCOW2 </para>
|
|
</listitem>
|
|
<listitem>
|
|
<para> set network device model: VirtIO </para>
|
|
</listitem>
|
|
<listitem>
|
|
<para> If everything OK - start installation process, guest vm screen
|
|
accessible through Console button </para>
|
|
</listitem>
|
|
</itemizedlist>
|
|
</section>
|
|
</section>
|
|
<section xml:id="_finish_process">
|
|
<title>Finish process</title>
|
|
<para>After install process finished for reference image compression run as root</para>
|
|
<screen>># qemu-img convert -O qcow2 /var/lib/libvirt/images/winserv_vio.qcow2 \
|
|
/var/lib/libvirt/images/winserv_vio_ref.qcow2 </screen>
|
|
</section>
|
|
</chapter>
|
|
<chapter xml:id="_post_building_setup">
|
|
<title>Upload Image Into Glance</title>
|
|
<para>
|
|
Services deployed by Murano require specially prepared images, that can be created manually or via
|
|
automated scripts. Please refer to corresponding chapters of this book to create image. After images are
|
|
created they should be registered in Openstack Glance - image operation service.
|
|
</para>
|
|
<orderedlist>
|
|
<listitem>
|
|
<para> Use the glance image-create command to import your disk image to Glance:
|
|
<<<<<<< HEAD
|
|
<screen width="50">>$ glance image-create --name <NAME> --is-public true \
|
|
--disk-format qcow2 --container-format bare --file <IMAGE_FILE> \
|
|
--property <IMAGE_METADATA></screen>
|
|
=======
|
|
<screen>>$ glance image-create --name <NAME> --is-public true \
|
|
--disk-format qcow2 --container-format bare --file <IMAGE_FILE> \
|
|
--property <IMAGE_METADATA></screen>
|
|
>>>>>>> 33f5a6d52739bea6bc661c7b12c37b0b4dcb5b84
|
|
</para>
|
|
<para>
|
|
Replace the command line arguments to glance image-create with the
|
|
appropriate values for your environment and disk image:
|
|
</para>
|
|
<itemizedlist>
|
|
<listitem>
|
|
<para>Replace <emphasis role="bold"><NAME></emphasis> with the name that
|
|
users will refer to the disk image by. E.g. '<emphasis role="bold"
|
|
>ws-2012-std</emphasis>'</para>
|
|
</listitem>
|
|
<listitem>
|
|
<para> Replace <emphasis role="bold"><IMAGE_FILE></emphasis> with the
|
|
local path to the image file to upload. E.g. '<emphasis role="bold"
|
|
>ws-2012-std.qcow2</emphasis>'.</para>
|
|
</listitem>
|
|
<listitem>
|
|
<para> Replace IMAGE_METADATA with the following property string
|
|
<<<<<<< HEAD
|
|
<screen width="50">murano_image_info='{"title": "Windows 2012 Core Edition", "type": "ws-2012-core"}</screen>where<itemizedlist>
|
|
=======
|
|
<screen>murano_image_info='{"title": "Windows 2012 Core Edition", "type": "ws-2012-core"}</screen>where<itemizedlist>
|
|
>>>>>>> 33f5a6d52739bea6bc661c7b12c37b0b4dcb5b84
|
|
<listitem>
|
|
<para>title - user-friendly description of the image</para>
|
|
</listitem>
|
|
<listitem>
|
|
<para>type - one of possible image types<itemizedlist>
|
|
<listitem>
|
|
<para>ws-2012-std - Windows Server 2012 Standart
|
|
Edition</para>
|
|
</listitem>
|
|
<listitem>
|
|
<para>ws-2012-core - Windows 2012 Core
|
|
Edition</para>
|
|
</listitem>
|
|
<listitem>
|
|
<para>ws-2008r2-std - Windows Server 2008R2 Standart
|
|
Edition</para>
|
|
</listitem>
|
|
<listitem>
|
|
<para>ws-2008r2 - Windows Server 2012R2</para>
|
|
</listitem>
|
|
</itemizedlist></para>
|
|
</listitem>
|
|
</itemizedlist><warning>
|
|
<para>Setting <emphasis>murano_image_info</emphasis> property is
|
|
required to pick up image from Murano Dashboard.</para>
|
|
</warning>
|
|
</para>
|
|
</listitem>
|
|
</itemizedlist>
|
|
</listitem>
|
|
<listitem>
|
|
<para>To update metadata of the existing image run the command:</para>
|
|
<screen>>$ glance image-update <IMAGE-ID> --property <IMAGE_MATADATA></screen>
|
|
<itemizedlist>
|
|
<listitem>
|
|
<para>Replace <emphasis role="bold"><IMAGE-ID></emphasis> with image id
|
|
from the previous command output.</para>
|
|
</listitem>
|
|
<listitem>
|
|
<para> Replace <emphasis role="bold"><IMAGE_METADATA></emphasis> with
|
|
murano_image_info property,
|
|
<<<<<<< HEAD
|
|
e.g.<screen width="50">murano_image_info='{"title": "Windows 2012 Core Edition","type": "ws-2012-core"}'</screen></para>
|
|
=======
|
|
e.g.<screen>murano_image_info='{"title": "Windows 2012 Core Edition","type": "ws-2012-core"}'</screen></para>
|
|
>>>>>>> 33f5a6d52739bea6bc661c7b12c37b0b4dcb5b84
|
|
</listitem>
|
|
</itemizedlist>
|
|
</listitem>
|
|
</orderedlist>
|
|
<para>After these steps desired image can be chosen in Murano dashboard and used for services platform.</para>
|
|
</chapter>
|
|
</book>
|