Cherry-pick new commits from master branch:
* Correct some typoes * Update installation part 1) remove manual way installation and appendix with vm configuration for developer guide (temprory) 2) Add css for developer guide 3) add link to additional linux repos in installation guide * Add folder with style files to git * Update installation commands * Add installation from venv chapter * Update ADMIN guide * Typos and style fixes. * Move installation chapter to admin guide Change-Id: I7c33a55de13a5974f41676ee9a77010d73a12050
This commit is contained in:

committed by
Ekaterina Fedorova

parent
215a89eab5
commit
a61ebd6d91
@@ -40,6 +40,14 @@
|
||||
<configuration>
|
||||
<xincludeSupported>true</xincludeSupported>
|
||||
<chunkSectionDepth>100</chunkSectionDepth>
|
||||
<postProcess>
|
||||
<copy todir="target/docbkx/webhelp/administrators-guide/style">
|
||||
<fileset dir="src/docbkx/style">
|
||||
<include name="**/*.css"/>
|
||||
<include name="**/*.xsl"/>
|
||||
</fileset>
|
||||
</copy>
|
||||
</postProcess>
|
||||
</configuration>
|
||||
</plugin>
|
||||
</plugins>
|
||||
|
@@ -16,18 +16,13 @@
|
||||
limitations under the License.
|
||||
-->
|
||||
<book xmlns="http://docbook.org/ns/docbook"
|
||||
xmlns:xi="http://www.w3.org/2001/XInclude"
|
||||
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>
|
||||
version="5.0"> <info>
|
||||
<title>Murano Administrator's Guide</title>
|
||||
<author>
|
||||
<affiliation>
|
||||
<orgname></orgname>
|
||||
</affiliation>
|
||||
</author>
|
||||
<copyright>
|
||||
<year></year>
|
||||
<holder></holder>
|
||||
@@ -38,7 +33,7 @@
|
||||
<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>
|
||||
role attribute on the legal notice element to change the license. </remark>
|
||||
</annotation>
|
||||
</legalnotice>
|
||||
<abstract>
|
||||
@@ -52,893 +47,9 @@
|
||||
<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 hardvare 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>
|
||||
(see below).
|
||||
</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 followinf commands as root:</para>
|
||||
<orderedlist numeration="arabic">
|
||||
<listitem>
|
||||
<para> Create emtpy 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:
|
||||
<screen>>$ glance image-create --name <NAME> \
|
||||
--is-public true --disk-format qcow2 \
|
||||
--container-format bare \
|
||||
--file <IMAGE_FILE> \
|
||||
--property <IMAGE_METADATA></screen>
|
||||
</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<screen>murano_image_info='{"title": "Windows 2012 Core Edition", "type": "ws-2012-core"}</screen>where<itemizedlist>
|
||||
<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,
|
||||
e.g.<screen>murano_image_info='{"title": "Windows 2012 Core Edition",\
|
||||
"type": "ws-2012-core"}'</screen></para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
</listitem>
|
||||
</orderedlist>
|
||||
<para>After these steps desired image can be chosen in Murano dashboard and used for services platform.</para>
|
||||
</chapter>
|
||||
<xi:include href="./content/general.xml" xlink:title="General Deployment Steps"/>
|
||||
<xi:include href="./content/installation-guide.xml" xlink:title="Install Murano"/>
|
||||
<xi:include href="./content/image-bulder.xml" xlink:title="Image Builder"/>
|
||||
<xi:include href="./content/troubleshooting.xml" xlink:title="Troubleshooting"/>
|
||||
<xi:include href="./content/appendix.xml" xlink:title="Appendix"/>
|
||||
</book>
|
||||
|
@@ -0,0 +1,956 @@
|
||||
<?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>
|
@@ -48,39 +48,26 @@
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>Enable Cloud Archive repository</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>Update installed OS and packages</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>Add lines below to the
|
||||
<filename>/etc/apt/sources.list.d/grizzly.list</filename>
|
||||
file
|
||||
<programlisting>
|
||||
deb http://ubuntu-cloud.archive.canonical.com/ubuntu
|
||||
<para>Create and add the following lines to the
|
||||
<filename>/etc/apt/sources.list.d/grizzly.list</filename>
|
||||
file
|
||||
<programlisting>
|
||||
deb http://ubuntu-cloud.archive.canonical.com/ubuntu \
|
||||
precise-updates/grizzly main
|
||||
deb http://archive.gplhost.com/debian grizzly main
|
||||
deb http://archive.gplhost.com/debian grizzly-backports main
|
||||
</programlisting>
|
||||
</para>
|
||||
</programlisting>
|
||||
</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>Update the system
|
||||
<para>Update installed OS and packages</para>
|
||||
<programlisting>
|
||||
># apt-get update
|
||||
># apt-get install ubuntu-cloud-keyring
|
||||
># apt-get install gplhost-archive-keyring
|
||||
># apt-get install mc unzip git make gcc python-setuptools python-pip
|
||||
># apt-get upgrade
|
||||
</programlisting>
|
||||
</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>Install additional packages
|
||||
<programlisting>
|
||||
># apt-get install mc unzip git make gcc
|
||||
python-setuptools python-pip
|
||||
</programlisting>
|
||||
</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
<para>
|
||||
@@ -101,28 +88,18 @@ deb http://archive.gplhost.com/debian grizzly-backports main
|
||||
<para>Enable RedHat Openstack and Epel repository</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>Update installed OS and packages</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>Add repositories and update OS
|
||||
<para>Update system and add repositories and update OS
|
||||
<programlisting>
|
||||
># yum install -y http://rdo.fedorapeople.org/openstack/
|
||||
># yum install -y http://rdo.fedorapeople.org/openstack/\
|
||||
openstack-grizzly/rdo-release-grizzly.rpm
|
||||
># yum install -y http://mirror.yandex.ru/
|
||||
># yum install -y http://mirror.us.leaseweb.net/\
|
||||
epel/6/x86_64/epel-release-6-8.noarch.rpm
|
||||
># yum install -y mc unzip git make gcc python-setuptools python-pip upstart
|
||||
># yum update
|
||||
># yum upgrade
|
||||
</programlisting>
|
||||
</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>Install additional packages
|
||||
<programlisting>
|
||||
># yum install mc unzip git make gcc python-setuptools
|
||||
python-pip upstart
|
||||
</programlisting>
|
||||
</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
<para>
|
||||
Most of dependent packages will be installed
|
||||
@@ -139,11 +116,9 @@ deb http://archive.gplhost.com/debian grizzly-backports main
|
||||
<programlisting>
|
||||
># pip --version
|
||||
</programlisting>
|
||||
<para>How-to upgrade pip to latest version:
|
||||
<para>To upgrade pip to latest version use
|
||||
<programlisting>
|
||||
># pip install --upgrade pip
|
||||
># pip install
|
||||
https://pypi.python.org/packages/source/p/pip/pip-1.4.1.tar.gz
|
||||
</programlisting>
|
||||
<note>
|
||||
<para>
|
||||
@@ -153,7 +128,7 @@ deb http://archive.gplhost.com/debian grizzly-backports main
|
||||
</para>
|
||||
</note>
|
||||
</para>
|
||||
<para>How to handle this situation:</para>
|
||||
<para>To handle this situation:</para>
|
||||
<programlisting>
|
||||
># rm /usr/bin/pip
|
||||
># ln -s /usr/local/bin/pip /usr/bin/pip
|
358
src/administrators-guide/src/docbkx/content/general.xml
Normal file
358
src/administrators-guide/src/docbkx/content/general.xml
Normal file
@@ -0,0 +1,358 @@
|
||||
<?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.
|
||||
-->
|
||||
|
||||
<chapter 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">
|
||||
<title>General Deployment Steps</title>
|
||||
<section>
|
||||
<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 hardware fits the requirements. To do this, run the test
|
||||
and compare the results with baseline data provided.
|
||||
</para>
|
||||
<section>
|
||||
<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>
|
||||
<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>
|
||||
<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>
|
||||
<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>
|
||||
<title>Install OpenStack</title>
|
||||
<para>
|
||||
We use Devstack (<link xlink:href="http://devstack.org/">http://devstack.org/</link>) to build our lab environment.
|
||||
</para>
|
||||
<para>
|
||||
Devstack is a set of scripts to automate OpenStack installation using sources from Git repositories.
|
||||
No packages are built and installed during this process, all OpenStack components are executed in separate consoles (via screen utility).
|
||||
</para>
|
||||
<para>
|
||||
It is a great tool to quickly install and start to develop OpenStack on you server. However, it has a few caveats that should be kept in mind:
|
||||
</para>
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para>
|
||||
Devstack scripts must be executed each time the host reboots. This also reset your OpenStack environment to it’s ‘just installed’ state.
|
||||
</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>
|
||||
Multi-node configurations are not as easy in installation as single-node.
|
||||
</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
<para>
|
||||
Below are the general steps that required to install OpenStack using Devstack in a Single-node mode.
|
||||
</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 width="80">
|
||||
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/"
|
||||
IMAGE_URLS+="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> (see below).
|
||||
</para>
|
||||
</section>
|
||||
<section>
|
||||
<title>Configure OpenStack</title>
|
||||
<note>
|
||||
<para>
|
||||
Additional OpenStack configuration usually doesn't required in case you've installed OpenStack with Devstack scripts.
|
||||
</para>
|
||||
</note>
|
||||
<para>
|
||||
To configure OpenStack is not a simple task and depends on various options (hardware configuration, network layout, and so on) and in general is out of scope of this document.
|
||||
</para>
|
||||
</section>
|
||||
</chapter>
|
794
src/administrators-guide/src/docbkx/content/image-bulder.xml
Normal file
794
src/administrators-guide/src/docbkx/content/image-bulder.xml
Normal file
@@ -0,0 +1,794 @@
|
||||
<?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.
|
||||
-->
|
||||
|
||||
<chapter 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">
|
||||
<title>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 Murano is to build it on the host where your OpenStack is installed.
|
||||
</para>
|
||||
<section>
|
||||
<title>Install Required Packages</title>
|
||||
<note>
|
||||
<para>
|
||||
Please check that hardware virtualization supported and enabled in BIOS.
|
||||
</para>
|
||||
</note>
|
||||
<para>
|
||||
The following packages should be installed on any host which will be used to build Windows Image:
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para>
|
||||
ipxe-qemu
|
||||
</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>
|
||||
kvm-ipxe
|
||||
</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>
|
||||
qemu-kvm
|
||||
</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>
|
||||
munin-libvirt-plugins
|
||||
</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>
|
||||
python-libvirt
|
||||
</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>
|
||||
libvirt-bin
|
||||
</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>
|
||||
libvirt0
|
||||
</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>
|
||||
munin-libvirt-plugins
|
||||
</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>
|
||||
python-libvirt
|
||||
</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>
|
||||
virt-goodies
|
||||
</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>
|
||||
virt-manager
|
||||
</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>
|
||||
virt-top
|
||||
</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>
|
||||
virt-what
|
||||
</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>
|
||||
virtinst
|
||||
</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>
|
||||
python
|
||||
</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
</para>
|
||||
<para>
|
||||
On Ubuntu you could install them using the command below:
|
||||
</para>
|
||||
<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>
|
||||
<title>Prerequisites</title>
|
||||
<para>Download the files below and copy them into their places in your <emphasis
|
||||
role="bold">${SHARE_PATH}</emphasis> folder (we usually use <emphasis
|
||||
role="bold">/opt/samba/share</emphasis> as <emphasis role="bold"
|
||||
>${SHARE_PATH}</emphasis>):<itemizedlist>
|
||||
<listitem>
|
||||
<para>Windows 2012 Server ISO evaluation version<itemizedlist>
|
||||
<listitem>
|
||||
<para>${SHARE_PATH}/libvirt/images/ws-2012-eval.iso</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>
|
||||
<link xlink:href="http://technet.microsoft.com/en-us/evalcenter/hh670538.aspx">
|
||||
http://technet.microsoft.com/en-us/evalcenter/hh670538.aspx
|
||||
</link>
|
||||
</para>
|
||||
</listitem>
|
||||
</itemizedlist></para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>VirtIO drivers for Windows<itemizedlist>
|
||||
<listitem>
|
||||
<para>${SHARE_PATH}/libvirt/images/virtio-win-0.1-52.iso</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>
|
||||
<link xlink:href="http://alt.fedoraproject.org/pub/alt/virtio-win/stable/virtio-win-0.1-52.iso">
|
||||
http://alt.fedoraproject.org/pub/alt/virtio-win/stable/virtio-win-0.1-52.iso
|
||||
</link>
|
||||
</para>
|
||||
</listitem>
|
||||
</itemizedlist></para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>CloudBase-Init for Windows<itemizedlist>
|
||||
<listitem>
|
||||
<para>${SHARE_PATH}/share/files/CloudbaseInitSetup_Beta.msi</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>
|
||||
<link xlink:href="http://www.cloudbase.it/downloads/CloudbaseInitSetup_Beta.msi">
|
||||
http://www.cloudbase.it/downloads/CloudbaseInitSetup_Beta.msi
|
||||
</link>
|
||||
</para>
|
||||
</listitem>
|
||||
</itemizedlist></para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>Far Manager<itemizedlist>
|
||||
<listitem>
|
||||
<para>${SHARE_PATH}/share/files/Far30b3367.x64.20130426.msi</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>
|
||||
<link xlink:href="http://www.farmanager.com/files/Far30b3525.x64.20130717.msi">
|
||||
http://www.farmanager.com/files/Far30b3525.x64.20130717.msi
|
||||
</link>
|
||||
</para>
|
||||
</listitem>
|
||||
</itemizedlist></para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>Git client<itemizedlist>
|
||||
<listitem>
|
||||
<para>${SHARE_PATH}/share/files/Git-1.8.1.2-preview20130201.exe</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>
|
||||
<link xlink:href="https://msysgit.googlecode.com/files/Git-1.8.3-preview20130601.exe">
|
||||
https://msysgit.googlecode.com/files/Git-1.8.3-preview20130601.exe
|
||||
</link>
|
||||
</para>
|
||||
</listitem>
|
||||
</itemizedlist></para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>Sysinternals Suite<itemizedlist>
|
||||
<listitem>
|
||||
<para>${SHARE_PATH}/share/files/SysinternalsSuite.zip</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>
|
||||
<link xlink:href="http://download.sysinternals.com/files/SysinternalsSuite.zip">
|
||||
http://download.sysinternals.com/files/SysinternalsSuite.zip
|
||||
</link>
|
||||
</para>
|
||||
</listitem>
|
||||
</itemizedlist></para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>unzip.exe tool<itemizedlist>
|
||||
<listitem>
|
||||
<para>${SHARE_PATH}/share/files/unzip.exe</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>
|
||||
<link xlink:href="https://www.dropbox.com/sh/zthldcxnp6r4flm/-k1Om_V6XR">
|
||||
https://www.dropbox.com/sh/zthldcxnp6r4flm/-k1Om_V6XR
|
||||
</link>
|
||||
</para>
|
||||
</listitem>
|
||||
</itemizedlist></para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>PowerShell v3<itemizedlist>
|
||||
<listitem>
|
||||
<para>${SHARE_PATH}/share/files/Windows6.1-KB2506143-x64.msu</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>
|
||||
<link xlink:href="http://www.microsoft.com/en-us/download/details.aspx?id=34595">
|
||||
http://www.microsoft.com/en-us/download/details.aspx?id=34595
|
||||
</link>
|
||||
</para>
|
||||
</listitem>
|
||||
</itemizedlist></para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>.NET 4.0<itemizedlist>
|
||||
<listitem>
|
||||
<para>${SHARE_PATH}/share/files/dotNetFx40_Full_x86_x64.exe</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>
|
||||
<link xlink:href="http://www.microsoft.com/en-us/download/details.aspx?id=17718">
|
||||
http://www.microsoft.com/en-us/download/details.aspx?id=17718
|
||||
</link>
|
||||
</para>
|
||||
</listitem>
|
||||
</itemizedlist></para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>.NET 4.5<itemizedlist>
|
||||
<listitem>
|
||||
<para>${SHARE_PATH}/share/files/dotNetFx45_Full_setup.exe</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>
|
||||
<link xlink:href="http://www.microsoft.com/en-us/download/details.aspx?id=30653">
|
||||
http://www.microsoft.com/en-us/download/details.aspx?id=30653
|
||||
</link>
|
||||
</para>
|
||||
</listitem>
|
||||
</itemizedlist></para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>Murano Agent<itemizedlist>
|
||||
<listitem>
|
||||
<para>${SHARE_PATH}/share/files/MuranoAgent.zip</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>
|
||||
<link xlink:href="https://www.dropbox.com/sh/zthldcxnp6r4flm/-k1Om_V6XR">
|
||||
https://www.dropbox.com/sh/zthldcxnp6r4flm/-k1Om_V6XR
|
||||
</link>
|
||||
</para>
|
||||
</listitem>
|
||||
</itemizedlist></para>
|
||||
</listitem>
|
||||
</itemizedlist></para>
|
||||
</section>
|
||||
<section>
|
||||
<title>Additional Software</title>
|
||||
<para> This section describes additional software which is required to build an Windows
|
||||
Image.</para>
|
||||
|
||||
<para><emphasis role="bold">Windows ADK</emphasis></para>
|
||||
|
||||
<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>
|
||||
|
||||
<para><emphasis role="bold">PuTTY</emphasis></para>
|
||||
|
||||
<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>
|
||||
|
||||
<para><emphasis role="bold">Windows Server 2012 ISO image</emphasis></para>
|
||||
|
||||
<para>We use the following Windows installation images:<itemizedlist>
|
||||
<listitem>
|
||||
<para>Windows Server 2008 R2<itemizedlist>
|
||||
<listitem>
|
||||
<para>Image Name:
|
||||
7601.17514.101119-1850_x64fre_server_eval_en-us-GRMSXEVAL_EN_DVD.iso</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>URL: <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>
|
||||
</listitem>
|
||||
</itemizedlist></para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>Windows Server 2012<itemizedlist>
|
||||
<listitem>
|
||||
<para>Image Name:
|
||||
9200.16384.WIN8_RTM.120725-1247_X64FRE_SERVER_EVAL_EN-US-HRM_SSS_X64FREE_EN-US_DV5.iso</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>URL: <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>
|
||||
</listitem>
|
||||
</itemizedlist></para>
|
||||
</listitem>
|
||||
</itemizedlist></para>
|
||||
|
||||
<para><emphasis role="bold">VirtIO Red Hat drivers ISO image</emphasis></para>
|
||||
|
||||
<warning>
|
||||
<para>
|
||||
Please, choose stable version instead of latest, We’ve got errors with unstable drivers during guest unattended install.
|
||||
</para>
|
||||
</warning>
|
||||
|
||||
<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><emphasis role="bold">Floppy Image With Unattended File</emphasis></para>
|
||||
|
||||
<para>
|
||||
Run following commands as root:
|
||||
</para>
|
||||
|
||||
<orderedlist numeration="arabic">
|
||||
<listitem>
|
||||
<para>
|
||||
Create emtpy 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>
|
||||
<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>
|
||||
</section>
|
||||
<section>
|
||||
<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 in the previous chapter. </para>
|
||||
</warning>
|
||||
<para><emphasis role="strong">Get Post-Install Scripts</emphasis></para>
|
||||
|
||||
<para>There are a few scripts which perform all the required post-installation tasks. </para>
|
||||
|
||||
<para>Package installation tasks are performed by script named <emphasis role="strong"
|
||||
>wpi.ps1</emphasis>. </para>
|
||||
<para>Download it from <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>
|
||||
<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>
|
||||
<para>Clean-up actions to finish image preparation are performed by <emphasis role="strong">Start-Sysprep.ps1</emphasis>
|
||||
script.</para>
|
||||
<para>Download it from <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>
|
||||
<para>These scripts should be copied to the shared resource folder, subfolder <emphasis
|
||||
role="strong">Scripts</emphasis>.</para>
|
||||
|
||||
<para><emphasis role="strong">Create a VM</emphasis></para>
|
||||
|
||||
<para>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. </para>
|
||||
|
||||
<note>
|
||||
<para>
|
||||
Run all commands as root.
|
||||
</para>
|
||||
</note>
|
||||
|
||||
|
||||
<para><emphasis role="strong">Way 1: Using CLI Tools</emphasis></para>
|
||||
|
||||
<para>This section describes the required step to launch a VM using CLI tools only. </para>
|
||||
|
||||
<para>
|
||||
<orderedlist>
|
||||
<listitem>
|
||||
<para>
|
||||
Preallocate disk image
|
||||
</para>
|
||||
<screen>
|
||||
># qemu-img create -f raw /var/lib/libvirt/images/ws-2012.img 40G
|
||||
</screen>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>
|
||||
Start the VM
|
||||
</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/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
|
||||
</screen>
|
||||
</listitem>
|
||||
</orderedlist>
|
||||
</para>
|
||||
|
||||
<para><emphasis role="strong">Way 2: Using virt-manager UI</emphasis></para>
|
||||
|
||||
<para>A VM also could be lauched via GUI tools like virt-manager. </para>
|
||||
|
||||
<para>
|
||||
<orderedlist>
|
||||
<listitem>
|
||||
<para>Launch <emphasis role="italic">virt-manager</emphasis> from shell
|
||||
as root </para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>Set a name for VM and select Local install media</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>Add one cdrom and attach Windows Server ISO image to it</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>Select OS type <emphasis role="bold">Windows</emphasis> and it's
|
||||
version <emphasis role="bold">Windows Server 2008</emphasis>
|
||||
</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>Set CPU and RAM amount </para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>Deselect option <emphasis role="bold">Enable storage for this
|
||||
virtual machine</emphasis>
|
||||
</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>Select option <emphasis role="bold">Customize configuration before
|
||||
install</emphasis>
|
||||
</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>Add second cdrom for ISO image with virtio drivers</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>Add a floppy drive and attach our floppy image to it</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>Add (or create new) HDD image with Disk bus <emphasis role="bold"
|
||||
>VirtIO</emphasis> and storage format <emphasis role="bold"
|
||||
>RAW</emphasis>
|
||||
</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>Set network device model <emphasis role="bold">VirtIO</emphasis>
|
||||
</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>Start installation process and open guest vm screen through
|
||||
<emphasis role="bold">Console</emphasis> button </para>
|
||||
</listitem>
|
||||
</orderedlist>
|
||||
</para>
|
||||
|
||||
<formalpara>
|
||||
<title>Convert the image from RAW to QCOW2 format</title>
|
||||
<para>The image must be converted from RAW format to QCOW2 before being imorted into
|
||||
Glance. </para>
|
||||
</formalpara>
|
||||
<para>
|
||||
<screen>
|
||||
># qemu-img convert -O qcow2 /var/lib/libvirt/images/ws-2012.raw \
|
||||
/var/lib/libvirt/images/ws-2012-ref.qcow2
|
||||
</screen>
|
||||
</para>
|
||||
|
||||
</section>
|
||||
<section>
|
||||
<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:
|
||||
<screen>
|
||||
>$ glance image-create --name <NAME> \
|
||||
--is-public true --disk-format qcow2 \
|
||||
--container-format bare \
|
||||
--file <IMAGE_FILE> \
|
||||
--property <IMAGE_METADATA>
|
||||
</screen>
|
||||
</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 <emphasis role="bold"><IMAGE_METADATA></emphasis> with the
|
||||
following property string
|
||||
<screen>
|
||||
murano_image_info='{"title": "Windows 2012 Core Edition", "type": "ws-2012-core"}
|
||||
</screen>
|
||||
where <itemizedlist>
|
||||
<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>
|
||||
</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, e.g.
|
||||
<screen>
|
||||
murano_image_info='{"title": "Windows 2012 Core Edition", "type": "ws-2012-core"}'
|
||||
</screen>
|
||||
</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
</listitem>
|
||||
</orderedlist>
|
||||
<warning>
|
||||
<para>The value of the <emphasis role="bold"
|
||||
>--property</emphasis> argument named <emphasis
|
||||
role="bold">murano_image_info</emphasis> is a JSON
|
||||
string. Only double quotes are valid in JSON, so please type
|
||||
the string exactly as in the example above. </para>
|
||||
</warning>
|
||||
<para>
|
||||
After these steps desired image can be chosen in Murano dashboard and used for services platform.
|
||||
</para>
|
||||
</section>
|
||||
</chapter>
|
||||
|
@@ -0,0 +1,963 @@
|
||||
<?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.
|
||||
-->
|
||||
|
||||
<chapter 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">
|
||||
<title>Install Murano Components</title>
|
||||
<para>This chapter describes how to install Murano components on a
|
||||
separate devbox. We
|
||||
strongly recommend to use a separate host (virtual machine or real
|
||||
host) for Murano
|
||||
devbox as it prevents you from various dependency conflicts.
|
||||
</para>
|
||||
<section>
|
||||
<title>Automatic Installation</title>
|
||||
<para>There is a script to automate Murano installation onto
|
||||
devbox.
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para>Create a folder to hold cloned
|
||||
repositories
|
||||
<screen>># mkdir -p /opt/git</screen>
|
||||
</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>Clone murano-deployment
|
||||
repository
|
||||
<screen>
|
||||
># cd /opt/git
|
||||
># git clone git://github.com/stackforge/murano-deployment.git
|
||||
</screen>
|
||||
</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>Change directory to
|
||||
<emphasis role="bold">murano-deployment</emphasis>
|
||||
and switch to required branch (e.g.<emphasis
|
||||
role="bold"
|
||||
>master</emphasis>)
|
||||
<screen>
|
||||
># cd /opt/git/murano-deployment
|
||||
># git checkout -b master origin/master
|
||||
</screen>
|
||||
</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>Install
|
||||
prerequisites
|
||||
<screen>
|
||||
># cd /opt/git/murano-deployment/devbox-scripts
|
||||
># ./murano-git-install.sh prerequisites
|
||||
</screen>
|
||||
</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>Configure the following parameters in lab binding
|
||||
configuration file
|
||||
<emphasis role="bold"
|
||||
>/etc/murano-deployment/lab-binding.rc
|
||||
</emphasis>
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para>
|
||||
<emphasis role="bold">LAB_HOST
|
||||
</emphasis>
|
||||
- IP or nostname
|
||||
of the lab. Actually, this address/name
|
||||
should point to the
|
||||
host where Keystone is installed.
|
||||
</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>
|
||||
<emphasis role="bold">ADMIN_USER
|
||||
</emphasis>
|
||||
- OpenStack
|
||||
<emphasis role="bold">admin</emphasis>
|
||||
user
|
||||
</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>
|
||||
<emphasis role="bold">ADMIN_PASSWORD
|
||||
</emphasis>
|
||||
- A password for OpenStack
|
||||
<emphasis role="bold"
|
||||
>admin
|
||||
</emphasis>
|
||||
user
|
||||
</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>
|
||||
<emphasis role="bold">RABBITMQ_USER
|
||||
</emphasis>
|
||||
- User to connect to RabbitMQ host
|
||||
</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>
|
||||
<emphasis role="bold">
|
||||
RABBITMQ_PASSWORD
|
||||
</emphasis>
|
||||
- Password for that user
|
||||
</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>
|
||||
<emphasis role="bold">RABBITMQ_VHOST
|
||||
</emphasis>
|
||||
- vHost
|
||||
which will be used by Murano
|
||||
components. Provides additional
|
||||
layer of isolation from other devboxes.
|
||||
</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>
|
||||
<emphasis role="bold">RABBITMQ_HOST
|
||||
</emphasis>
|
||||
-
|
||||
(optional) IP address or hostname of
|
||||
the host where RabbitMQ
|
||||
is installed IF it is not the same host
|
||||
as LAB_HOST points
|
||||
to
|
||||
</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>
|
||||
<emphasis role="bold">
|
||||
RABBITMQ_HOST_ALT
|
||||
</emphasis>
|
||||
-
|
||||
(optional) IP address or hostname of
|
||||
the RabbitMQ host to
|
||||
connect from inside the Windows
|
||||
instance. In some cases the
|
||||
addresses like LAB_HOST or
|
||||
RABBITMQ_HOST are inaccessible
|
||||
from instances, and they must use
|
||||
different address.
|
||||
</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>
|
||||
<emphasis role="bold">FILE_SHARE_HOST
|
||||
</emphasis>
|
||||
-
|
||||
(optional) IP address or hostname of
|
||||
the host where file
|
||||
share with prerequisites is located IF
|
||||
it is not the same
|
||||
host as LAB_HOST points to.
|
||||
</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>
|
||||
<emphasis role="bold">BRANCH_NAME
|
||||
</emphasis>
|
||||
- branch name
|
||||
from which all Murano components will
|
||||
be fetched for
|
||||
installation
|
||||
</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>
|
||||
<emphasis role="bold">SSL_ENABLED
|
||||
</emphasis>
|
||||
- Set
|
||||
<emphasis role="bold">'true'</emphasis>
|
||||
if OpenStack is
|
||||
configured with SSL support and
|
||||
<emphasis role="bold"
|
||||
>'false'
|
||||
</emphasis>
|
||||
otherwise.
|
||||
</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>
|
||||
<emphasis role="bold">SSL_CA_FILE
|
||||
</emphasis>
|
||||
- Path to CA
|
||||
certificate for certificate validation
|
||||
on client
|
||||
side.
|
||||
</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>Install Murano
|
||||
components
|
||||
<screen>
|
||||
># ./murano-git-install.sh install</screen>
|
||||
</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>Login to the Dashboard using URL
|
||||
<emphasis role="bold">http://<your
|
||||
VM IP>/dashboard
|
||||
</emphasis>
|
||||
or
|
||||
<emphasis role="bold">http://<your
|
||||
VM IP>/horizon
|
||||
</emphasis>
|
||||
</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
</para>
|
||||
</section>
|
||||
<section>
|
||||
<title>Manual Installation</title>
|
||||
<para>This chapter describes manual installation and configuration of Murano services.</para>
|
||||
<para>Note that all Murano modules can be downloaded from
|
||||
<link xlink:href="https://launchpad.net/murano/">our page</link>
|
||||
on launchpad.
|
||||
</para>
|
||||
<para>
|
||||
<note>
|
||||
<title>Automatic installation</title> Murano can be installed in automatic way. Script will install all
|
||||
necessary packages to your system. Find out more about this in
|
||||
<link xlink:href='http://murano-docs.github.io/0.2/getting-started/content/ch04s02.html'>
|
||||
Getting Started Guide</link>
|
||||
</note>
|
||||
</para>
|
||||
<section xml:id="prerequisites">
|
||||
<title>Pre-Requisites</title>
|
||||
<para>Murano supports the following operating systems:</para>
|
||||
<orderedlist>
|
||||
<listitem>
|
||||
<para>Ubuntu 12.04</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>RHEL/CentOS 6.4</para>
|
||||
</listitem>
|
||||
</orderedlist>
|
||||
<para>These system packages are required for Murano:</para>
|
||||
<para><emphasis>Ubuntu</emphasis></para>
|
||||
<orderedlist>
|
||||
<listitem>
|
||||
<para>gcc</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>python-pip</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>python-dev</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>libxml2-dev</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>libxslt-dev</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>libffi-dev</para>
|
||||
</listitem>
|
||||
</orderedlist>
|
||||
<para>
|
||||
<emphasis>CentOS</emphasis>
|
||||
</para>
|
||||
<orderedlist>
|
||||
<listitem>
|
||||
<para>gcc</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>python-pip</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>python-devel</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>libxml2-devel</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>libxslt-devel</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>libffi-devel</para>
|
||||
</listitem>
|
||||
</orderedlist>
|
||||
<para>
|
||||
All these packages will be installed in murano-installation scripts. In addition to these packages some repositories are required.
|
||||
Please follow the instructions in <link linkend="Appendix">the appendix</link> to prepare your environment for murano installation.
|
||||
</para>
|
||||
|
||||
</section>
|
||||
<section>
|
||||
<title>Murano API Service</title>
|
||||
<para>Murano API provides access to the Murano orchestration engine via API.</para>
|
||||
<para>This chapter describes the procedure of installation and condiguration of Murano API. </para>
|
||||
<section>
|
||||
<title>Install</title>
|
||||
<itemizedlist spacing="compact">
|
||||
<listitem>
|
||||
<para>Superuser privileges is required to install and configure system packages. Let's switch to root account:</para>
|
||||
<programlisting>
|
||||
<![CDATA[
|
||||
sudo su -
|
||||
]]>
|
||||
</programlisting>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>Make sure that additional linux repositories are installed. See <link linkend="Appendix">the appendix</link> for information about preparing a virtual machine for murano installation.
|
||||
</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>Clone Murano API git repository:</para>
|
||||
<programlisting>
|
||||
<![CDATA[
|
||||
git clone https://github.com/stackforge/murano-api
|
||||
]]>
|
||||
</programlisting>
|
||||
<para>Stable version one of our <link xlink:href="http://murano-docs.github.io/latest/developers-guide/content/ch03s02.html"> releases</link> can be checked by tag:</para>
|
||||
<programlisting>
|
||||
<![CDATA[
|
||||
git checkout 0.2
|
||||
]]>
|
||||
</programlisting>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>Switch to just created directory and then perform installation</para>
|
||||
<para>
|
||||
<emphasis>Ubuntu</emphasis>
|
||||
</para>
|
||||
<programlisting>
|
||||
<![CDATA[
|
||||
sh murano-api/setup.sh install
|
||||
]]>
|
||||
</programlisting>
|
||||
<para>
|
||||
<emphasis>CentOS</emphasis>
|
||||
</para>
|
||||
<programlisting>
|
||||
<![CDATA[
|
||||
sh murano-api/setup-centos.sh install
|
||||
]]>
|
||||
</programlisting>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>Successful installation ends with message like this:</para>
|
||||
<programlisting>
|
||||
<![CDATA[
|
||||
Successfully installed muranoapi
|
||||
Cleaning up...
|
||||
LOG:> Making sample configuration files at "/etc/murano-api"
|
||||
LOG:> Reloading initctl
|
||||
LOG:> Please, make proper configuration,located at "/etc/murano-api", before starting the "murano-api" daemon!
|
||||
]]>
|
||||
</programlisting>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
</section>
|
||||
<section xml:id="configure_api">
|
||||
<title>Configure</title>
|
||||
<itemizedlist spacing="compact">
|
||||
<listitem>
|
||||
<para>Copy and edit configuration files:</para>
|
||||
<programlisting>
|
||||
<![CDATA[
|
||||
cd /etc/murano-api
|
||||
cp murano-api.conf.sample murano-api.conf
|
||||
cp murano-api-paste.ini.sample murano-api-paste.ini
|
||||
|
||||
vi murano-api.conf
|
||||
]]>
|
||||
</programlisting>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>Configure it according to your environment:
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para><emphasis>[DEFAULT]</emphasis> section sets up logging.
|
||||
</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>
|
||||
<emphasis>[reports]</emphasis>
|
||||
section allows you to set up names for new rabbitMQ queues.
|
||||
</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>In
|
||||
<emphasis>[rabbitmq]</emphasis>
|
||||
section you can set up host configuration where rabbitMQ
|
||||
with just created user and vhost is running.
|
||||
If you consider to use Murano in production it;sbetter to use seperate vhosts in RabbitMQ.
|
||||
To add new vhost and user with
|
||||
administrator rights preform:
|
||||
</para>
|
||||
<programlisting>
|
||||
<![CDATA[
|
||||
rabbitmqctl add_user muranouser murano
|
||||
rabbitmqctl set_user_tags muranouser administrator
|
||||
rabbitmqctl add_vhost muranovhost
|
||||
rabbitmqctl set_permissions -p muranovhost muranouser ".*" ".*" ".*"
|
||||
]]>
|
||||
</programlisting>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>In <emphasis>[filter:authtoken]</emphasis>
|
||||
configure keystone auth_token. For more information see
|
||||
<link xlink:href="http://docs.openstack.org/developer/keystone/configuringservices.html">
|
||||
Auth-Token Middleware with Username and Password
|
||||
</link>
|
||||
</para>
|
||||
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>Another murano-api configuration file located at
|
||||
<filename>./etc/murano-api-paste.ini
|
||||
</filename>
|
||||
not requires any changes.
|
||||
</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
</para>
|
||||
<para> For more information how to configure SSL take a look at <link linkend="ssl"> SSL configuration chapter </link></para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<anchor xml:id="murano_api_endpoint"></anchor>
|
||||
<para>Register murano-api service in Openstack. </para>
|
||||
<para>Note: you need to be authorized in Openstack to run this commands. To do this, you can run something like (having changed variables to appropriate values)</para>
|
||||
<programlisting>
|
||||
<![CDATA[
|
||||
source $(YOUR_OPENSTACK_DIR)/openrc $(LOGIN) $(PASSWORD)
|
||||
]]>
|
||||
</programlisting>
|
||||
<programlisting>
|
||||
<![CDATA[
|
||||
keystone service-create --name muranoapi --type murano --description "Murano-Api Service"
|
||||
|
||||
keystone endpoint-create
|
||||
|
||||
--region RegionOne
|
||||
--service-id The ID field returned by the keystone service-create
|
||||
--publicurl http://x.x.x.x:8082 (where x.x.x.x - host ip where murano-api installed)
|
||||
--internalurl the same as publicurl
|
||||
--adminurl the same as publicurl
|
||||
]]>
|
||||
</programlisting>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
</section>
|
||||
<section>
|
||||
<title>Run</title>
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para>Run Murano API service:</para>
|
||||
<para>
|
||||
<emphasis>Ubuntu</emphasis>
|
||||
</para>
|
||||
<programlisting>
|
||||
<![CDATA[
|
||||
service murano-api start
|
||||
]]>
|
||||
</programlisting>
|
||||
<para>
|
||||
<emphasis>CentOS</emphasis>
|
||||
</para>
|
||||
<programlisting>
|
||||
<![CDATA[
|
||||
initctl start murano-api
|
||||
]]>
|
||||
</programlisting>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
</section>
|
||||
</section>
|
||||
<section>
|
||||
<title>Conductor Service</title>
|
||||
<para>Conductor is a Murano orchestration engine that transforms object model sent by REST API service into
|
||||
a series of Heat and Murano-Agent commands.
|
||||
</para>
|
||||
<para>This chapter describes Conductor for contributors of the project.</para>
|
||||
<section>
|
||||
<title>Install</title>
|
||||
<itemizedlist spacing="compact">
|
||||
<listitem>
|
||||
<para>Murano Conductor uses OpenStack Heat for new virtual machines creation, therefore Heat should
|
||||
been installed and configured. Some services require the Internet access for virtual machines to
|
||||
successful deployment.
|
||||
</para>
|
||||
<para>The detailed information about Heat configuration is described
|
||||
<link xlink:href="http://docs.openstack.org/developer/heat/getting_started/index.html">here.
|
||||
</link>
|
||||
</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>OpenStack Heat require Key Pair for Load Balancer instances. Murano Conductor uses
|
||||
LoadBalancer for IIS Farms and ASP.NET Farms. The default name for Key Pair is "murano-lb-key",
|
||||
you can change this parameter in file
|
||||
<![CDATA[
|
||||
/etc/murano-conductor/data/templates/cf/Windows.template
|
||||
]]>
|
||||
</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>Superuser privileges is required to install and configure system packages. Let's switch to root account:</para>
|
||||
<programlisting>
|
||||
<![CDATA[
|
||||
sudo su -
|
||||
]]>
|
||||
</programlisting>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>Make sure that additional repositories are installed.
|
||||
See
|
||||
<link linkend="Appendix">the appendix</link>
|
||||
for information about preparing a virtual machine for murano installation.
|
||||
</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>Clone Murano Conductor repository from the github.</para>
|
||||
<programlisting>
|
||||
<![CDATA[
|
||||
git clone https://github.com/stackforge/murano-conductor
|
||||
]]>
|
||||
</programlisting>
|
||||
<para>Stable version one of our
|
||||
<link xlink:href="http://murano-docs.github.io/latest/developers-guide/content/ch03s02.html">releases</link>
|
||||
can be checked out by tag:
|
||||
</para>
|
||||
<programlisting>
|
||||
<![CDATA[
|
||||
git checkout 0.2
|
||||
]]>
|
||||
</programlisting>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>Switch to just created directory and then perform installation</para>
|
||||
<para>
|
||||
<emphasis>Ubuntu</emphasis>
|
||||
</para>
|
||||
<programlisting>
|
||||
<![CDATA[
|
||||
sh murano-conductor/setup.sh install
|
||||
]]>
|
||||
</programlisting>
|
||||
<para>
|
||||
<emphasis>CentOS</emphasis>
|
||||
</para>
|
||||
<programlisting>
|
||||
<![CDATA[
|
||||
sh murano-conductor/setup-centos.sh install
|
||||
]]>
|
||||
</programlisting>
|
||||
</listitem>
|
||||
</itemizedlist >
|
||||
</section>
|
||||
<section xml:id="configure_conductor">
|
||||
<title>Configure</title>
|
||||
<itemizedlist spacing="compact">
|
||||
<listitem>
|
||||
<para>Edit configuration file and take a look at inline comments:</para>
|
||||
<programlisting>
|
||||
<![CDATA[
|
||||
cd /etc/murano-conductor
|
||||
cp conductor.conf.sample conductor.conf
|
||||
]]>
|
||||
</programlisting>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>Change configuration file according to your environment.
|
||||
<programlisting>
|
||||
<![CDATA[
|
||||
vi conductor.conf
|
||||
]]>
|
||||
</programlisting>
|
||||
<itemizedlist >
|
||||
<listitem>
|
||||
<para><emphasis>[DEFAULT]</emphasis>section is responsible for logging.
|
||||
</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para><emphasis>[heat]</emphasis>points where heat is running.
|
||||
</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para><emphasis>[rabbitmq]</emphasis>section points where your rabbitMQ installed and
|
||||
configured.
|
||||
</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
</para>
|
||||
<programlisting>
|
||||
<![CDATA[
|
||||
[DEFAULT]
|
||||
|
||||
# Path where log will be written
|
||||
log_file = /var/log/murano-conductor.log
|
||||
# Log verbosity
|
||||
debug=True
|
||||
verbose=True
|
||||
data_dir = /etc/murano-conductor
|
||||
# Maximum number of environments that can be processed simultaneously
|
||||
max_environments = 20
|
||||
|
||||
[keystone]
|
||||
auth_url = http://localhost:5000/v2.0
|
||||
ca_file =
|
||||
cert_file =
|
||||
key_file =
|
||||
insecure = False
|
||||
|
||||
[heat]
|
||||
# Heat SSL parameters
|
||||
# Optional CA cert file to use in SSL connections
|
||||
ca_file =
|
||||
# Optional PEM-formatted certificate chain file
|
||||
cert_file =
|
||||
# Optional PEM-formatted file that contains the private key
|
||||
key_file =
|
||||
# If set then the server's certificate will not be verified
|
||||
insecure = False
|
||||
# Valid endpoint types: publicURL (default), internalURL, adminURL
|
||||
endpoint_type = publicURL
|
||||
|
||||
[rabbitmq]
|
||||
# Connection parameters to RabbitMQ service
|
||||
# Hostname or IP address where RabbitMQ is located.
|
||||
# !!! Change localhost to your real IP or hostname as this address must be reachable from VMs !!!
|
||||
host = localhost
|
||||
# RabbitMQ port (5672 is a default)
|
||||
port = 5672
|
||||
# Use SSL for RabbitMQ connections (True or False)
|
||||
ssl = False
|
||||
# Path to SSL CA certificate or empty to allow self signed server certificate
|
||||
ca_certs =
|
||||
# RabbitMQ credentials. Fresh RabbitMQ installation has "guest" account with "guest" password.
|
||||
# It is recommended to create dedicated user account for Murano using RabbitMQ web console or command line utility
|
||||
login = quest
|
||||
password = quest
|
||||
# RabbitMQ virtual host (vhost). Fresh RabbitMQ installation has "/" vhost preconfigured.
|
||||
# It is recommended to create dedicated vhost for production use
|
||||
virtual_host = /
|
||||
]]>
|
||||
</programlisting>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
</section>
|
||||
<section>
|
||||
<title>Run</title>
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para>Run Murano Conductor service:</para>
|
||||
<para>
|
||||
<emphasis>Ubuntu</emphasis>
|
||||
</para>
|
||||
<programlisting>
|
||||
<![CDATA[
|
||||
service murano-conductor start
|
||||
]]>
|
||||
</programlisting>
|
||||
<para>
|
||||
<emphasis>CentOS</emphasis>
|
||||
</para>
|
||||
<programlisting>
|
||||
<![CDATA[
|
||||
initctl start murano-conductor
|
||||
]]>
|
||||
</programlisting>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
</section>
|
||||
</section>
|
||||
<section>
|
||||
<title>Murano Dashboard</title>
|
||||
<para>Murano Dashboard provides Web UI for Murano Project.</para>
|
||||
<warning>
|
||||
<para>This installation is not capable with Horizon installed by devstack</para>
|
||||
</warning>
|
||||
<section>
|
||||
<title>Install</title>
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para>Superuser privileges is required to install and configure system packages. Let's switch to root account:</para>
|
||||
<programlisting>
|
||||
<![CDATA[
|
||||
sudo su -
|
||||
]]>
|
||||
</programlisting>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>Make sure that additional repositories are installed.
|
||||
See <link linkend="Appendix">the appendix</link>
|
||||
for information about preparing a virtual machine for murano installation.
|
||||
</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>If there is no openstack dashboard package in your environment install it now with all dependencies.
|
||||
Deleting an Ubuntu theme is an optional step but recommended.</para>
|
||||
<note>
|
||||
<para>
|
||||
Horizon installed by devstack is not capable for a murano installation.
|
||||
</para>
|
||||
</note>
|
||||
<para><emphasis>CentOS</emphasis></para>
|
||||
<programlisting>
|
||||
yum install -y make gcc memcached python-memcached \
|
||||
mod_wsgi openstack-dashboard python-netaddr.noarch
|
||||
</programlisting>
|
||||
<para>
|
||||
<emphasis>Ubuntu</emphasis>
|
||||
</para>
|
||||
<programlisting>
|
||||
apt-get install -y memcached libapache2-mod-wsgi openstack-dashboard
|
||||
dpkg --purge openstack-dashboard-ubuntu-theme
|
||||
</programlisting>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>Clone Murano Dashboard repository from the github:</para>
|
||||
<programlisting>
|
||||
<![CDATA[
|
||||
git clone https://github.com/stackforge/murano-dashboard
|
||||
]]>
|
||||
</programlisting>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>Stable version one of our
|
||||
<link xlink:href="http://murano-docs.github.io/latest/developers-guide/content/ch03s02.html">releases</link>
|
||||
can be checked out by tag:
|
||||
</para>
|
||||
<programlisting>
|
||||
git checkout 0.2
|
||||
</programlisting>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>Switch to just created directory and run installation script</para>
|
||||
<para>
|
||||
<emphasis>Ubuntu</emphasis>
|
||||
</para>
|
||||
<programlisting>
|
||||
<![CDATA[
|
||||
sh murano-dashboard/setup.sh install
|
||||
]]>
|
||||
</programlisting>
|
||||
<para>
|
||||
<emphasis>CentOS</emphasis>
|
||||
</para>
|
||||
<programlisting>
|
||||
<![CDATA[
|
||||
sh murano-dashboard/setup-centos.sh install
|
||||
]]>
|
||||
</programlisting>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
</section>
|
||||
<section xml:id="configure_dashboard">
|
||||
<title>Configure</title>
|
||||
<itemizedlist spacing="compact">
|
||||
<listitem>
|
||||
<para>
|
||||
Murano installation script makes all needed changes in horizon (openstack dashboard) configs.
|
||||
All you have to do is to configure horizon in appropriate way. Set OPENSTACK_HOST in your
|
||||
horizon local settings which located in
|
||||
<filename>/etc/openstack-dashboard/local_settings.py.</filename>.
|
||||
<link xlink:href="http://docs.openstack.org/developer/horizon/">
|
||||
For more information visit official horizon documentation. </link>
|
||||
</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
</section>
|
||||
<section>
|
||||
<title>Run</title>
|
||||
<para>
|
||||
Since all required settings are made Apache service need to be restarted to apply all changes.
|
||||
</para>
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para>
|
||||
<emphasis>CentOS</emphasis>
|
||||
<programlisting>
|
||||
# service httpd restart
|
||||
</programlisting>
|
||||
</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>
|
||||
<emphasis>Ubuntu</emphasis>
|
||||
<programlisting>
|
||||
# service apache2 restart
|
||||
</programlisting>
|
||||
</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>
|
||||
Check that "Environments" panel appears at the horizon "Project" tab.
|
||||
To see how to operate with Murano dashboard plugin check out
|
||||
<link xlink:href="http://murano-docs.github.io/latest/user-guide/content/ch01.html">
|
||||
Murano User Guide.
|
||||
</link>
|
||||
</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
</section>
|
||||
</section>
|
||||
<section xml:id="ssl">
|
||||
<title>SSL configuration</title>
|
||||
<para>
|
||||
Murano components are able to work with SSL. This chapter will
|
||||
help your to make proper settings with SSL configuration.
|
||||
</para>
|
||||
<section>
|
||||
<title>HTTPS for Murano API</title>
|
||||
<para>
|
||||
SSL for Murano API service can be configured in <emphasis>ssl</emphasis> section in
|
||||
<emphasis>/etc/murano-api/murano-api.conf</emphasis>. Just point to a valid SSL certificate.
|
||||
See the example below:
|
||||
</para>
|
||||
<programlisting>
|
||||
<![CDATA[
|
||||
[ssl]
|
||||
cert_file = PATH
|
||||
key_file = PATH
|
||||
ca_file = PATH
|
||||
]]>
|
||||
</programlisting>
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para>
|
||||
<emphasis>cert_file=PATH:</emphasis>
|
||||
Path to the certificate file the server should use when binding to an SSL-wrapped socket.
|
||||
</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>
|
||||
<emphasis>key_file=PATH:</emphasis> Path to the private key file the server should
|
||||
use when binding to an SSL-wrapped socket.
|
||||
</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>
|
||||
<emphasis>ca_file=PATH:</emphasis>
|
||||
Path to the CA certificate file the server should use to validate
|
||||
client certificates provided during an SSL handshake. This is
|
||||
ignored if cert_file and "key_file" are not set.
|
||||
</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
<para>
|
||||
The use of SSL is automatically started after point to HTTPS protocol instead of HTTP during registration Murano API service in endpoints
|
||||
(Change publicurl argument to start with https://). See <link linkend="murano_api_endpoint">here</link>
|
||||
how to register Murano API in Openstack Keystone.
|
||||
</para>
|
||||
<simpara>
|
||||
SSL for Murano API is implemented like in any other Openstack component.
|
||||
This realization is based on ssl python module so more information about it can be found
|
||||
<link xlink:href="http://docs.python.org/2/library/ssl.html"> here.</link>
|
||||
</simpara>
|
||||
</section>
|
||||
<section>
|
||||
<title>SSL for RabbitMQ</title>
|
||||
<para>
|
||||
All Murano components communicate with each other
|
||||
by RabbitMQ. This interaction can be encrypted with SSL. By
|
||||
default all messages in Rabbit MQ are not encrypted.
|
||||
Each RabbitMQ Exchange should be configured separately.
|
||||
</para>
|
||||
<section>
|
||||
<title>Murano API -> Rabbit MQ exchange</title>
|
||||
<para>
|
||||
Edit <emphasis>rabbitmq</emphasis> section in <emphasis>/etc/murano-api/murano-api.conf</emphasis>
|
||||
and set ssl option to True to enable SSL. Specify the path to the
|
||||
SSL CA certificate in regular format: /path/to/file without quotes or leave it empty to allow
|
||||
self-signed certificates.
|
||||
</para>
|
||||
<programlisting>
|
||||
<![CDATA[
|
||||
[rabbitmq]
|
||||
|
||||
# Use SSL for RabbitMQ connections (True or False)
|
||||
ssl = True
|
||||
|
||||
# Path to SSL CA certificate or empty to allow self signed server certificate
|
||||
ca_certs =
|
||||
]]>
|
||||
</programlisting>
|
||||
</section>
|
||||
<section>
|
||||
<title>Rabbit MQ -> Murano Conductor exchange</title>
|
||||
<para>
|
||||
Open <emphasis>/etc/murano-conductor/conductor.conf</emphasis>
|
||||
and configure <emphasis>rabbitmq</emphasis> section in the same way:
|
||||
enable ssl option to True and set CA certificate path or leave it empty to allow
|
||||
self-signed certificates.
|
||||
</para>
|
||||
<programlisting>
|
||||
<![CDATA[
|
||||
[rabbitmq]
|
||||
|
||||
# Use SSL for RabbitMQ connections (True or False)
|
||||
ssl = True
|
||||
|
||||
# Path to SSL CA certificate or empty to allow self signed server certificate
|
||||
ca_certs = /home/user/certificates/example.crt
|
||||
]]>
|
||||
</programlisting>
|
||||
</section>
|
||||
<section>
|
||||
<title>Murano Agent -> Rabbit MQ exchange</title>
|
||||
<para>
|
||||
By default all Murano Conductor configuration settings apply to Murano Agent.
|
||||
If you want to configure Murano Agent in a different way change the default template. It can be found
|
||||
here:<emphasis>/etc/murano-conductor/data/templates/agent-config/Default.template.</emphasis>
|
||||
Take a look at appSettings section:
|
||||
</para>
|
||||
<programlisting>
|
||||
<![CDATA[
|
||||
<appSettings>
|
||||
<add key="rabbitmq.host" value="%RABBITMQ_HOST%"/>
|
||||
<add key="rabbitmq.port" value="%RABBITMQ_PORT%"/>
|
||||
<add key="rabbitmq.user" value="%RABBITMQ_USER%"/>
|
||||
<add key="rabbitmq.password"
|
||||
value="%RABBITMQ_PASSWORD%"/>
|
||||
<add key="rabbitmq.vhost" value="%RABBITMQ_VHOST%"/>
|
||||
<add key="rabbitmq.inputQueue"
|
||||
value="%RABBITMQ_INPUT_QUEUE%"/>
|
||||
<add key="rabbitmq.resultExchange" value=""/>
|
||||
<add key="rabbitmq.resultRoutingKey"
|
||||
value="%RESULT_QUEUE%"/>
|
||||
<add key="rabbitmq.durableMessages" value="true"/>
|
||||
|
||||
<add key="rabbitmq.ssl" value="%RABBITMQ_SSL%"/>
|
||||
<add key="rabbitmq.allowInvalidCA" value="true"/>
|
||||
<add key="rabbitmq.sslServerName" value=""/>
|
||||
</appSettings>
|
||||
]]>
|
||||
</programlisting>
|
||||
<para>
|
||||
Desired parameter should be set directly to the value of the key
|
||||
that you want to change. Quotes are need to be kept.
|
||||
Thus you can change "rabbitmq.ssl" and "rabbitmq.port" values to
|
||||
make Rabbit MQ work with this exchange in a different from
|
||||
Murano-Conductor way.
|
||||
</para>
|
||||
</section>
|
||||
</section>
|
||||
</section>
|
||||
</section>
|
||||
</chapter>
|
139
src/administrators-guide/src/docbkx/content/troubleshooting.xml
Normal file
139
src/administrators-guide/src/docbkx/content/troubleshooting.xml
Normal file
@@ -0,0 +1,139 @@
|
||||
<?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.
|
||||
-->
|
||||
|
||||
<chapter 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">
|
||||
<title>Troubleshooting</title>
|
||||
<formalpara>
|
||||
<title>General Notes</title>
|
||||
<para>The following debug sequence should be used when you have no idea about why the
|
||||
system isn't working. If you have one, you may skip unnecessary sections.</para>
|
||||
</formalpara>
|
||||
<para>Set debug options to "True" in the following Murano configuration files:<itemizedlist>
|
||||
<listitem>
|
||||
<para>/etc/murano-api/murano-api.conf</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>/etc/murano-conductor/conductor.conf</para>
|
||||
</listitem>
|
||||
</itemizedlist></para>
|
||||
<para>Stop both <emphasis role="bold">murano-api</emphasis> and <emphasis role="bold"
|
||||
>murano-conductor</emphasis> services. We will start them one by one from the
|
||||
console.</para>
|
||||
<formalpara>
|
||||
<title>murano-api</title>
|
||||
<para>First, the murano-api must be started.</para>
|
||||
</formalpara>
|
||||
<para>
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para>Open new console</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>Start <emphasis role="bold">murano-api</emphasis> service
|
||||
manually<screen>># murano-api --config-dir /etc/murano-api 2>&1 \
|
||||
> /var/log/murano-api-live.log &
|
||||
># tailf /var/log/murano-api-live.log</screen></para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>Open dashboard, create and send to deploy some simple
|
||||
environment.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>Open RabbitMQ web console, open your vhost and ensure that queues were
|
||||
created and there is at least one message.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>Check log for errors - there shouldn't be any</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>Keep <emphasis role="bold">murano-api</emphasis> service
|
||||
running</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
</para>
|
||||
<formalpara>
|
||||
<title>murano-conductor</title>
|
||||
<para>Next to the <emphasis role="bold">murano-api</emphasis> the <emphasis role="bold"
|
||||
>murano-conductor</emphasis> should be started
|
||||
</para>
|
||||
</formalpara>
|
||||
<para>
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para>Open new console</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>Start conductor from
|
||||
console<screen>># muranoconductor --config-dir /etc/murano-conductor \
|
||||
> /var/log/murano-conductor-live.log &
|
||||
># tailf /var/log/murano-conductor-live.log</screen></para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>Check that there is no python exceptions in the log. Some errors like
|
||||
404 are ok, as conductor tries to delete environment that doesn't
|
||||
exist</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>Check heat stack status. It should not be in FAILED state. If it is -
|
||||
check heat and nova error log to find the cause.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>Keep murano-conductor service running.</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
</para>
|
||||
<formalpara>
|
||||
<title>Log Files</title>
|
||||
<para>There are various log files which will help you to debug the system.</para>
|
||||
</formalpara>
|
||||
<para><emphasis role="bold">Murano Log Files</emphasis>
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para>/var/log/murano-api.log</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>/var/log/murano-conductor.log</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>/var/log/apache2/errors.log</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>/var/log/httpd/errors.log</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
</para>
|
||||
<para><emphasis role="bold">Windows Log Files</emphasis>
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para>C:\Program Files (x86)\CloudBase Solutions\logs\log.txt</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>C:\Murano\Agent\log.txt</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>C:\Murano\PowerShell.log</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
</para>
|
||||
</chapter>
|
||||
|
@@ -0,0 +1,41 @@
|
||||
img {
|
||||
max-width: 100%;
|
||||
width: auto;
|
||||
height: auto;
|
||||
}
|
||||
body {
|
||||
font-family: luxi sans,sans-serif;
|
||||
}
|
||||
|
||||
.programlisting ~ a,
|
||||
.programlisting,
|
||||
.screen {
|
||||
font-family: monospace;
|
||||
font-size: 1em;
|
||||
display: block;
|
||||
padding: 10px;
|
||||
border: 1px solid #bbb;
|
||||
background-color: #ddd;
|
||||
color: #000;
|
||||
overflow: auto;
|
||||
border-radius: 2.5px;
|
||||
-moz-border-radius: 2.5px;
|
||||
margin: 0.5em 2em;
|
||||
}
|
||||
|
||||
a[href] {
|
||||
text-decoration: none;
|
||||
color: #0a5ba8;
|
||||
}
|
||||
|
||||
a[href]:hover {
|
||||
text-decoration:underline
|
||||
}
|
||||
|
||||
a:visited {
|
||||
color: #131580;
|
||||
}
|
||||
|
||||
a:active {
|
||||
color: #0a5ba8;
|
||||
}
|
10
src/administrators-guide/src/docbkx/style/config.xsl
Normal file
10
src/administrators-guide/src/docbkx/style/config.xsl
Normal file
@@ -0,0 +1,10 @@
|
||||
<?xml version='1.0'?>
|
||||
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
|
||||
xmlns:fo="http://www.w3.org/1999/XSL/Format"
|
||||
version="1.0">
|
||||
<xsl:param name="use.id.as.filename" select="'1'"/>
|
||||
<xsl:param name="admon.graphics" select="'1'"/>
|
||||
<xsl:param name="admon.graphics.path"></xsl:param>
|
||||
<xsl:param name="chunk.section.depth" select="0"></xsl:param>
|
||||
<xsl:param name="html.stylesheet" select="administrators-guide.css"/>
|
||||
</xsl:stylesheet>
|
@@ -38,6 +38,8 @@
|
||||
</execution>
|
||||
</executions>
|
||||
<configuration>
|
||||
<htmlCustomization>../style/config.xsl</htmlCustomization>
|
||||
<htmlStylesheet>../style/developers-guide.css</htmlStylesheet>
|
||||
<xincludeSupported>true</xincludeSupported>
|
||||
<chunkSectionDepth>100</chunkSectionDepth>
|
||||
<postProcess>
|
||||
@@ -46,6 +48,12 @@
|
||||
<include name="**/*.png"/>
|
||||
</fileset>
|
||||
</copy>
|
||||
<copy todir="target/docbkx/webhelp/developers-guide/style">
|
||||
<fileset dir="src/docbkx/style">
|
||||
<include name="**/*.css"/>
|
||||
<include name="**/*.xsl"/>
|
||||
</fileset>
|
||||
</copy>
|
||||
</postProcess>
|
||||
</configuration>
|
||||
</plugin>
|
||||
|
@@ -1,34 +1,45 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!--
|
||||
Copyright (c) 2013 Mirantis, Inc.
|
||||
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
|
||||
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
|
||||
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.
|
||||
-->
|
||||
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.
|
||||
-->
|
||||
|
||||
<chapter 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"
|
||||
http://www.w3.org/1999/xlink http://www.w3.org/1999/xlink.xsd"
|
||||
version="5.0">
|
||||
<title>Installation Guide</title>
|
||||
<para>This chapter describes installation and configuration of Murano services.</para>
|
||||
<para>This chapter describes manual installation and configuration of Murano services.</para>
|
||||
<para>Note that all Murano modules can be downloaded from
|
||||
<link xlink:href="https://launchpad.net/murano/">our page</link>
|
||||
on launchpad.
|
||||
</para>
|
||||
<section>
|
||||
<para>
|
||||
<note>
|
||||
<title>Automatic installation</title>
|
||||
<para>
|
||||
Murano can be installed in automatic way. Script will install all
|
||||
necessary packages to your system. Find out more about this in
|
||||
<link xlink:href='http://murano-docs.github.io/0.2/getting-started/content/ch04s02.html'>
|
||||
Getting Started Guide</link>
|
||||
</para>
|
||||
</note>
|
||||
</para>
|
||||
<section xml:id="prerequisites">
|
||||
<title>Pre-Requisites</title>
|
||||
<para>Murano supports the following operating systems:</para>
|
||||
<orderedlist>
|
||||
@@ -42,6 +53,12 @@
|
||||
<para>These system packages are required for Murano:</para>
|
||||
<para><emphasis>Ubuntu</emphasis></para>
|
||||
<orderedlist>
|
||||
<listitem>
|
||||
<para>gcc</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>python-pip</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>python-dev</para>
|
||||
</listitem>
|
||||
@@ -59,6 +76,12 @@
|
||||
<emphasis>CentOS</emphasis>
|
||||
</para>
|
||||
<orderedlist>
|
||||
<listitem>
|
||||
<para>gcc</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>python-pip</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>python-devel</para>
|
||||
</listitem>
|
||||
@@ -72,593 +95,149 @@
|
||||
<para>libffi-devel</para>
|
||||
</listitem>
|
||||
</orderedlist>
|
||||
|
||||
<para>
|
||||
All these packages will be installed in murano-installation scripts. In addition to these packages some repositories are required.
|
||||
Please follow the instructions in the appendix to admin guide to prepare your environment for murano installation.
|
||||
</para>
|
||||
</section>
|
||||
<section>
|
||||
<title>Murano API Service</title>
|
||||
<para>Murano API provides access to the Murano orchestration engine via API.</para>
|
||||
<para>This chapter describes the procedure of installation and condiguration of Murano API. </para>
|
||||
<section>
|
||||
<title>Install</title>
|
||||
<itemizedlist spacing="compact">
|
||||
<section xml:id="venv">
|
||||
<title>Installing with virtual environment</title>
|
||||
<para>
|
||||
For local development, all Murano components can be installed in
|
||||
a virtual environment.
|
||||
</para>
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para>Superuser privileges is required to install and configure system packages. Let's switch to root account:</para>
|
||||
<programlisting>
|
||||
<![CDATA[
|
||||
sudo su -
|
||||
]]>
|
||||
</programlisting>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>Clone Murano API git repository:</para>
|
||||
<programlisting>
|
||||
<![CDATA[
|
||||
git clone https://github.com/stackforge/murano-api
|
||||
]]>
|
||||
</programlisting>
|
||||
<para>Stable version one of our <link linkend="releases"> releases</link> can be checked by tag:</para>
|
||||
<programlisting>
|
||||
<![CDATA[
|
||||
git checkout 0.2
|
||||
]]>
|
||||
</programlisting>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>Switch to just created directory and then perform installation</para>
|
||||
<para>
|
||||
<emphasis>Ubuntu</emphasis>
|
||||
</para>
|
||||
<programlisting>
|
||||
<![CDATA[
|
||||
cd murano-api
|
||||
sh setup.sh install
|
||||
]]>
|
||||
</programlisting>
|
||||
<para>
|
||||
<emphasis>CentOS</emphasis>
|
||||
</para>
|
||||
<programlisting>
|
||||
<![CDATA[
|
||||
cd murano-api
|
||||
yum install -y http://mirror.yandex.ru/epel/6/x86_64/epel-release-6-8.noarch.rpm
|
||||
sh setup-centos.sh install
|
||||
]]>
|
||||
</programlisting>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>Successful installation ends with message like this:</para>
|
||||
<programlisting>
|
||||
<![CDATA[
|
||||
Successfully installed muranoapi
|
||||
Cleaning up...
|
||||
LOG:> Making sample configuration files at "/etc/murano-api"
|
||||
LOG:> Reloading initctl
|
||||
LOG:> Please, make proper configuration,located at "/etc/murano-api", before starting the "murano-api" daemon!
|
||||
]]>
|
||||
</programlisting>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
</section>
|
||||
<section>
|
||||
<title>Configure</title>
|
||||
<itemizedlist spacing="compact">
|
||||
<listitem>
|
||||
<para>First configure rabbitMQ by adding vhost and user with administrator rights:</para>
|
||||
<programlisting>
|
||||
<![CDATA[
|
||||
rabbitmqctl add_user muranouser murano
|
||||
rabbitmqctl set_user_tags muranouser administrator
|
||||
rabbitmqctl add_vhost muranovhost
|
||||
rabbitmqctl set_permissions -p muranovhost muranouser ".*" ".*" ".*"
|
||||
]]>
|
||||
</programlisting>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>Copy and edit configuration files:</para>
|
||||
<programlisting>
|
||||
<![CDATA[
|
||||
cd /etc/murano-api
|
||||
cp murano-api.conf.sample murano-api.conf
|
||||
cp murano-api-paste.ini.sample murano-api-paste.ini
|
||||
Install virtaulenv packege if you don't have one:
|
||||
<programlisting>
|
||||
sudo pip install virtualenv
|
||||
</programlisting>
|
||||
|
||||
vi murano-api.conf
|
||||
]]>
|
||||
</programlisting>
|
||||
</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>Configure it according to your environment:
|
||||
<para>Check out git repository with murano component:
|
||||
</para>
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<programlisting>
|
||||
git clone https://github.com/stackforge/murano-api
|
||||
</programlisting>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<programlisting>
|
||||
git clone https://github.com/stackforge/murano-conductor
|
||||
</programlisting>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<programlisting>
|
||||
git clone https://github.com/stackforge/murano-dashboard
|
||||
</programlisting>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>
|
||||
Make sure that required system packages are installed.
|
||||
Check list from <link linkend="prerequisites"> prerequisites page</link>
|
||||
</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>
|
||||
Execute a script in the <filename>tools</filename> directory
|
||||
to create virtual environment automatically:
|
||||
<programlisting>
|
||||
$ python tools/install_venv.py
|
||||
</programlisting>
|
||||
</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>
|
||||
For <emphasis role="bold"> Murano Dashboard </emphasis>additional installation need to be done:
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para><emphasis>[DEFAULT]</emphasis> section sets up logging.
|
||||
<para>
|
||||
Openstack dashboard (horizon).:
|
||||
<programlisting>
|
||||
./tools/with_venv.sh pip install https://github.com/openstack/horizon/archive/grizzly-2.tar.gz
|
||||
</programlisting>
|
||||
</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>
|
||||
<emphasis>[reports]</emphasis>
|
||||
section allows you to set up names for new rabbitMQ queues.
|
||||
Install openstack-dashboard dependency:
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para>
|
||||
<emphasis>Ubuntu</emphasis>
|
||||
<programlisting>
|
||||
# apt-get install nodejs
|
||||
</programlisting>
|
||||
</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>
|
||||
<emphasis>CentOS</emphasis>
|
||||
<programlisting>
|
||||
# yum install nodejs
|
||||
</programlisting>
|
||||
</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
|
||||
</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>In
|
||||
<emphasis>[rabbitmq]</emphasis>
|
||||
section you can set up host configuration where rabbitMQ
|
||||
with just created user and vhost is running.
|
||||
<para>
|
||||
Customized Djblets package to support datagrid element (installation by pip is not supported):
|
||||
<programlisting>
|
||||
./tools/with_venv.sh easy_install https://github.com/tsufiev/djblets/archive/master.zip
|
||||
</programlisting>
|
||||
</para>
|
||||
</listitem>
|
||||
|
||||
</itemizedlist>
|
||||
</para>
|
||||
<para> For more information how to configure SSL take a look at <link linkend="ssl"> SSL configuration chapter </link></para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>Configure keystone auth_token in murano-api-paste.ini file.
|
||||
For more information see
|
||||
<link xlink:href="http://docs.openstack.org/developer/keystone/configuringservices.html">
|
||||
Auth-Token Middleware with Username and Password
|
||||
</link>
|
||||
<para>
|
||||
Config files for the development infrastructure of murano-api and murano-conductor can be found at <filename>etc</filename>
|
||||
under folder with component repository. In murano-api and murano-conductor config file (located under ./etc directory)
|
||||
just point out IP address where your RabbitMQ is running. All other possible configuration described in the Murano Admin Guide.
|
||||
To configure Murano Dashboard copy
|
||||
<programlisting>
|
||||
# cp muranodashboard/local/local_settings.py.example muranodashboard/local/local_settings.py
|
||||
</programlisting>
|
||||
set the actual IP address of the OpenStack end-point.
|
||||
If you haven't register murano-api service in the keystone catalog you can set MURANO_API_URL in the same settings file.
|
||||
Note that local murano-api service will be using by default.
|
||||
</para>
|
||||
<programlisting>
|
||||
<![CDATA[
|
||||
vim murano-api-paste.ini
|
||||
|
||||
[pipeline:muranoapi]
|
||||
pipeline = authtoken context apiv1app
|
||||
|
||||
[app:apiv1app]
|
||||
paste.app_factory = muranoapi.api.v1.router:API.factory
|
||||
|
||||
[filter:context]
|
||||
paste.filter_factory = muranoapi.api.middleware.context:ContextMiddleware.facto$
|
||||
|
||||
#For more information see Auth-Token Middleware with Username and Password
|
||||
#http://docs.openstack.org/developer/keystone/configuringservices.html
|
||||
[filter:authtoken]
|
||||
paste.filter_factory = keystoneclient.middleware.auth_token:filter_factory
|
||||
auth_host = localhost
|
||||
auth_port = 35357
|
||||
auth_protocol = http
|
||||
admin_tenant_name = admin
|
||||
admin_user = admin
|
||||
admin_password = password
|
||||
|
||||
]]>
|
||||
</programlisting>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<anchor xml:id="murano_api_endpoint"></anchor>
|
||||
<para>Register murano-api service in Openstack. </para>
|
||||
<para>Note: you need to be authorized in Openstack to run this commands. To do this, you can run something like (having changed variables to appropriate values)</para>
|
||||
<programlisting>
|
||||
<![CDATA[
|
||||
source $(YOUR_OPENSTACK_DIR)/openrc $(LOGIN) $(PASSWORD)
|
||||
]]>
|
||||
</programlisting>
|
||||
<programlisting>
|
||||
<![CDATA[
|
||||
keystone service-create --name muranoapi --type murano --description "Murano-Api Service"
|
||||
|
||||
keystone endpoint-create
|
||||
|
||||
--region RegionOne
|
||||
--service-id The ID field returned by the keystone service-create
|
||||
--publicurl http://x.x.x.x:8082 (where x.x.x.x - host ip where murano-api installed)
|
||||
--internalurl the same as publicurl
|
||||
--adminurl the same as publicurl
|
||||
]]>
|
||||
</programlisting>
|
||||
<para>Run Murano API:
|
||||
<programlisting>
|
||||
./tools/with_venv.sh python api/cmd/api.py --config-file=./etc/murano-api.conf
|
||||
</programlisting>
|
||||
</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>Run Murano Conductor:
|
||||
<programlisting>
|
||||
./tools/with_venv.sh python muranoconductor/cmd/run.py --config-file=./etc/conductor.conf
|
||||
</programlisting>
|
||||
</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para><emphasis>Run Murano Dashboard:</emphasis>
|
||||
To start the Murano development server use the Django
|
||||
manage.py utility with the context of the virtual
|
||||
environment:
|
||||
<programlisting>
|
||||
./tools/with_venv.sh ./manage.py runserver 0.0.0.0:8080
|
||||
</programlisting>
|
||||
</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
</section>
|
||||
<section>
|
||||
<title>Run</title>
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para>Run Murano API service:</para>
|
||||
<para>
|
||||
<emphasis>Ubuntu</emphasis>
|
||||
</para>
|
||||
<programlisting>
|
||||
<![CDATA[
|
||||
service murano-api start
|
||||
]]>
|
||||
</programlisting>
|
||||
<para>
|
||||
<emphasis>CentOS</emphasis>
|
||||
</para>
|
||||
<programlisting>
|
||||
<![CDATA[
|
||||
initctl start murano-api
|
||||
]]>
|
||||
</programlisting>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
</section>
|
||||
</section>
|
||||
<section>
|
||||
<title>Conductor Service</title>
|
||||
<para>Conductor is a Murano orchestration engine that transforms object model sent by REST API service into
|
||||
a series of Heat and Murano-Agent commands.
|
||||
</para>
|
||||
<para>This chapter describes Conductor for contributors of the project.</para>
|
||||
<section>
|
||||
<title>Install</title>
|
||||
<itemizedlist spacing="compact">
|
||||
<listitem>
|
||||
<para>Murano Conductor uses OpenStack Heat for new virtual machines creation, therefore Heat should
|
||||
been installed and configured. Some services require the Internet access for virtual machines to
|
||||
successful deployment.
|
||||
</para>
|
||||
<para>The detailed information about Heat configuration is described
|
||||
<link xlink:href="http://docs.openstack.org/developer/heat/getting_started/index.html">here.
|
||||
</link>
|
||||
</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>OpenStack Heat require Key Pair for Load Balancer instances. Murano Conductor uses
|
||||
LoadBalancer for IIS Farms and ASP.NET Farms. The default name for Key Pair is "murano-lb-key",
|
||||
you can change this parameter in file
|
||||
<![CDATA[
|
||||
/etc/murano-conductor/data/templates/cf/Windows.template
|
||||
]]>
|
||||
</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>Superuser privileges is required to install and configure system packages. Let's switch to root account:</para>
|
||||
<programlisting>
|
||||
<![CDATA[
|
||||
sudo su -
|
||||
]]>
|
||||
</programlisting>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>Clone Murano Conductor repository from the github.</para>
|
||||
<programlisting>
|
||||
<![CDATA[
|
||||
git clone https://github.com/stackforge/murano-conductor
|
||||
]]>
|
||||
</programlisting>
|
||||
<para>Stable version one of our
|
||||
<link linkend="releases">releases</link>
|
||||
can be checked out by tag:
|
||||
</para>
|
||||
<programlisting>
|
||||
<![CDATA[
|
||||
git checkout 0.2
|
||||
]]>
|
||||
</programlisting>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>Switch to just created directory and then perform installation</para>
|
||||
<para>
|
||||
<emphasis>Ubuntu</emphasis>
|
||||
</para>
|
||||
<programlisting>
|
||||
<![CDATA[
|
||||
cd murano-conductor
|
||||
sh setup.sh install
|
||||
]]>
|
||||
</programlisting>
|
||||
<para>
|
||||
<emphasis>CentOS</emphasis>
|
||||
</para>
|
||||
<programlisting>
|
||||
<![CDATA[
|
||||
cd murano-conductor
|
||||
yum install -y
|
||||
http://mirror.yandex.ru/epel/6/x86_64/epel-release-6-8.noarch.rpm
|
||||
sh setup-centos.sh install
|
||||
]]>
|
||||
</programlisting>
|
||||
</listitem>
|
||||
</itemizedlist >
|
||||
</section>
|
||||
<section>
|
||||
<title>Configure</title>
|
||||
<itemizedlist spacing="compact">
|
||||
<listitem>
|
||||
<para>Edit configuration file and take a look at inline comments:</para>
|
||||
<programlisting>
|
||||
<![CDATA[
|
||||
cd /etc/murano-conductor
|
||||
cp conductor.conf.sample conductor.conf
|
||||
]]>
|
||||
</programlisting>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>Change configuration file according to your environment.
|
||||
<programlisting>
|
||||
<![CDATA[
|
||||
vi conductor.conf
|
||||
]]>
|
||||
</programlisting>
|
||||
<itemizedlist >
|
||||
<listitem>
|
||||
<para><emphasis>[DEFAULT]</emphasis>section is responsible for logging.
|
||||
</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para><emphasis>[heat]</emphasis>points where heat is running.
|
||||
</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para><emphasis>[rabbitmq]</emphasis>section points where your rabbitMQ installed and
|
||||
configured.
|
||||
</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
</para>
|
||||
<programlisting>
|
||||
<![CDATA[
|
||||
[DEFAULT]
|
||||
|
||||
# Path where log will be written
|
||||
log_file = /var/log/murano-conductor.log
|
||||
# Log verbosity
|
||||
debug=True
|
||||
verbose=True
|
||||
data_dir = /etc/murano-conductor
|
||||
# Maximum number of environments that can be processed simultaneously
|
||||
max_environments = 20
|
||||
|
||||
[keystone]
|
||||
auth_url = http://localhost:5000/v2.0
|
||||
ca_file =
|
||||
cert_file =
|
||||
key_file =
|
||||
insecure = False
|
||||
|
||||
[heat]
|
||||
# Heat SSL parameters
|
||||
# Optional CA cert file to use in SSL connections
|
||||
ca_file =
|
||||
# Optional PEM-formatted certificate chain file
|
||||
cert_file =
|
||||
# Optional PEM-formatted file that contains the private key
|
||||
key_file =
|
||||
# If set then the server's certificate will not be verified
|
||||
insecure = False
|
||||
# Valid endpoint types: publicURL (default), internalURL, adminURL
|
||||
endpoint_type = publicURL
|
||||
|
||||
[rabbitmq]
|
||||
# Connection parameters to RabbitMQ service
|
||||
# Hostname or IP address where RabbitMQ is located.
|
||||
# !!! Change localhost to your real IP or hostname as this address must be reachable from VMs !!!
|
||||
host = localhost
|
||||
# RabbitMQ port (5672 is a default)
|
||||
port = 5672
|
||||
# Use SSL for RabbitMQ connections (True or False)
|
||||
ssl = False
|
||||
# Path to SSL CA certificate or empty to allow self signed server certificate
|
||||
ca_certs =
|
||||
# RabbitMQ credentials. Fresh RabbitMQ installation has "guest" account with "guest" password.
|
||||
# It is recommended to create dedicated user account for Murano using RabbitMQ web console or command line utility
|
||||
login = muranouser
|
||||
password = murano
|
||||
# RabbitMQ virtual host (vhost). Fresh RabbitMQ installation has "/" vhost preconfigured.
|
||||
# It is recommended to create dedicated vhost for Murano using RabbitMQ web console or command line utility
|
||||
virtual_host = muranovhost
|
||||
]]>
|
||||
</programlisting>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
</section>
|
||||
<section>
|
||||
<title>Run</title>
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para>Run Murano Conductor service:</para>
|
||||
<para>
|
||||
<emphasis>Ubuntu</emphasis>
|
||||
</para>
|
||||
<programlisting>
|
||||
<![CDATA[
|
||||
service murano-conductor start
|
||||
]]>
|
||||
</programlisting>
|
||||
<para>
|
||||
<emphasis>CentOS</emphasis>
|
||||
</para>
|
||||
<programlisting>
|
||||
<![CDATA[
|
||||
initctl start murano-conductor
|
||||
]]>
|
||||
</programlisting>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
</section>
|
||||
</section>
|
||||
<section>
|
||||
<title>Murano Dashboard</title>
|
||||
<para>Murano Dashboard provides Web UI for Murano Project.</para>
|
||||
<section>
|
||||
<title>Install</title>
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para>Superuser privileges is required to install and configure system packages. Let's switch to root account:</para>
|
||||
<programlisting>
|
||||
<![CDATA[
|
||||
sudo su -
|
||||
]]>
|
||||
</programlisting>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>Clone Murano Dashboard repository from the github:</para>
|
||||
<programlisting>
|
||||
<![CDATA[
|
||||
git clone https://github.com/stackforge/murano-dashboard
|
||||
]]>
|
||||
</programlisting>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>Switch to just created directory and run installation script</para>
|
||||
<para>
|
||||
<emphasis>Ubuntu</emphasis>
|
||||
</para>
|
||||
<programlisting>
|
||||
<![CDATA[
|
||||
cd murano-dashboard
|
||||
sh setup.sh install
|
||||
]]>
|
||||
</programlisting>
|
||||
<para>
|
||||
<emphasis>CentOS</emphasis>
|
||||
</para>
|
||||
<programlisting>
|
||||
<![CDATA[
|
||||
cd murano-dashboard
|
||||
sh setup-centos.sh install
|
||||
]]>
|
||||
</programlisting>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
<para>
|
||||
This script will supplement openstack dashboard configuration and the panel with Murano "Environments" should appear.
|
||||
Don't forget to <link linkend="murano_api_endpoint"> register </link>
|
||||
Murano API in keystone and set OPENSTACK_HOST in
|
||||
<link xlink:href="http://docs.openstack.org/developer/horizon/topics/settings.html#openstack-host">horizon settings</link>.
|
||||
</para>
|
||||
</section>
|
||||
</section>
|
||||
<section xml:id="ssl">
|
||||
<title>SSL configuration</title>
|
||||
<para>
|
||||
Murano components are able to work with SSL. This chapter will
|
||||
help your to make proper settings with SSL configuration.
|
||||
</para>
|
||||
<section>
|
||||
<title>HTTPS for Murano API</title>
|
||||
<para>
|
||||
SSL for Murano API service can be configured in <emphasis>ssl</emphasis> section in
|
||||
<emphasis>/etc/murano-api/murano-api.conf</emphasis>. Just point to a valid SSL certificate.
|
||||
See the example below:
|
||||
</para>
|
||||
<programlisting>
|
||||
<![CDATA[
|
||||
[ssl]
|
||||
cert_file = PATH
|
||||
key_file = PATH
|
||||
ca_file = PATH
|
||||
]]>
|
||||
</programlisting>
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para>
|
||||
<emphasis>cert_file=PATH:</emphasis>
|
||||
Path to the certificate file the server should use when binding to an SSL-wrapped socket.
|
||||
</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>
|
||||
<emphasis>key_file=PATH:</emphasis> Path to the private key file the server should
|
||||
use when binding to an SSL-wrapped socket.
|
||||
</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>
|
||||
<emphasis>ca_file=PATH:</emphasis>
|
||||
Path to the CA certificate file the server should use to validate
|
||||
client certificates provided during an SSL handshake. This is
|
||||
ignored if cert_file and "key_file" are not set.
|
||||
</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
<para>
|
||||
The use of SSL is automatically started after point to HTTPS protocol instead of HTTP during registration Murano API service in endpoints
|
||||
(Change publicurl argument to start with https://). See <link linkend="murano_api_endpoint">here</link>
|
||||
how to register Murano API in Openstack Keystone.
|
||||
</para>
|
||||
<simpara>
|
||||
SSL for Murano API is implemented like in any other Openstack component.
|
||||
This realization is based on ssl python module so more information about it can be found
|
||||
<link xlink:href="http://docs.python.org/2/library/ssl.html"> here.</link>
|
||||
</simpara>
|
||||
</section>
|
||||
<section>
|
||||
<title>SSL for RabbitMQ</title>
|
||||
<para>
|
||||
All Murano components communicate with each other
|
||||
by RabbitMQ. This interaction can be encrypted with SSL. By
|
||||
default all messages in Rabbit MQ are not encrypted.
|
||||
Each RabbitMQ Exchange should be configured separately.
|
||||
</para>
|
||||
<section>
|
||||
<title>Murano API -> Rabbit MQ exchange</title>
|
||||
<para>
|
||||
Edit <emphasis>rabbitmq</emphasis> section in <emphasis>/etc/murano-api/murano-api.conf</emphasis>
|
||||
and set ssl option to True to enable SSL. Specify the path to the
|
||||
SSL CA certificate in regular format: /path/to/file without quotes or leave it empty to allow
|
||||
self-signed certificates.
|
||||
</para>
|
||||
<programlisting>
|
||||
<![CDATA[
|
||||
[rabbitmq]
|
||||
|
||||
# Use SSL for RabbitMQ connections (True or False)
|
||||
ssl = True
|
||||
|
||||
# Path to SSL CA certificate or empty to allow self signed server certificate
|
||||
ca_certs =
|
||||
]]>
|
||||
</programlisting>
|
||||
</section>
|
||||
<section>
|
||||
<title>Rabbit MQ -> Murano Conductor exchange</title>
|
||||
<para>
|
||||
Open <emphasis>/etc/murano-conductor/conductor.conf</emphasis>
|
||||
and configure <emphasis>rabbitmq</emphasis> section in the same way:
|
||||
enable ssl option to True and set CA certificate path or leave it empty to allow
|
||||
self-signed certificates.
|
||||
</para>
|
||||
<programlisting>
|
||||
<![CDATA[
|
||||
[rabbitmq]
|
||||
|
||||
# Use SSL for RabbitMQ connections (True or False)
|
||||
ssl = True
|
||||
|
||||
# Path to SSL CA certificate or empty to allow self signed server certificate
|
||||
ca_certs = /home/user/certificates/example.crt
|
||||
]]>
|
||||
</programlisting>
|
||||
</section>
|
||||
<section>
|
||||
<title>Murano Agent -> Rabbit MQ exchange</title>
|
||||
<para>
|
||||
By default all Murano Conductor configuration settings apply to Murano Agent.
|
||||
If you want to configure Murano Agent in a different way change the default template. It can be found
|
||||
here:<emphasis>/etc/murano-conductor/data/templates/agent-config/Default.template.</emphasis>
|
||||
Take a look at appSettings section:
|
||||
</para>
|
||||
<programlisting>
|
||||
<![CDATA[
|
||||
<appSettings>
|
||||
<add key="rabbitmq.host" value="%RABBITMQ_HOST%"/>
|
||||
<add key="rabbitmq.port" value="%RABBITMQ_PORT%"/>
|
||||
<add key="rabbitmq.user" value="%RABBITMQ_USER%"/>
|
||||
<add key="rabbitmq.password"
|
||||
value="%RABBITMQ_PASSWORD%"/>
|
||||
<add key="rabbitmq.vhost" value="%RABBITMQ_VHOST%"/>
|
||||
<add key="rabbitmq.inputQueue"
|
||||
value="%RABBITMQ_INPUT_QUEUE%"/>
|
||||
<add key="rabbitmq.resultExchange" value=""/>
|
||||
<add key="rabbitmq.resultRoutingKey"
|
||||
value="%RESULT_QUEUE%"/>
|
||||
<add key="rabbitmq.durableMessages" value="true"/>
|
||||
|
||||
<add key="rabbitmq.ssl" value="%RABBITMQ_SSL%"/>
|
||||
<add key="rabbitmq.allowInvalidCA" value="true"/>
|
||||
<add key="rabbitmq.sslServerName" value=""/>
|
||||
</appSettings>
|
||||
]]>
|
||||
</programlisting>
|
||||
<para>
|
||||
Desired parameter should be set directly to the value of the key
|
||||
that you want to change. Quotes are need to be kept.
|
||||
Thus you can change "rabbitmq.ssl" and "rabbitmq.port" values to
|
||||
make Rabbit MQ work with this exchange in a different from
|
||||
Murano-Conductor way.
|
||||
</para>
|
||||
</section>
|
||||
</section>
|
||||
</section>
|
||||
</chapter>
|
||||
</chapter>
|
10
src/developers-guide/src/docbkx/style/config.xsl
Normal file
10
src/developers-guide/src/docbkx/style/config.xsl
Normal file
@@ -0,0 +1,10 @@
|
||||
<?xml version='1.0'?>
|
||||
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
|
||||
xmlns:fo="http://www.w3.org/1999/XSL/Format"
|
||||
version="1.0">
|
||||
<xsl:param name="use.id.as.filename" select="'1'"/>
|
||||
<xsl:param name="admon.graphics" select="'1'"/>
|
||||
<xsl:param name="admon.graphics.path"></xsl:param>
|
||||
<xsl:param name="chunk.section.depth" select="0"></xsl:param>
|
||||
<xsl:param name="html.stylesheet" select="developers-guide.css"/>
|
||||
</xsl:stylesheet>
|
41
src/developers-guide/src/docbkx/style/developers-guide.css
Normal file
41
src/developers-guide/src/docbkx/style/developers-guide.css
Normal file
@@ -0,0 +1,41 @@
|
||||
img {
|
||||
max-width: 100%;
|
||||
width: auto;
|
||||
height: auto;
|
||||
}
|
||||
body {
|
||||
font-family: luxi sans,sans-serif;
|
||||
}
|
||||
|
||||
.programlisting ~ a,
|
||||
.programlisting,
|
||||
.screen {
|
||||
font-family: monospace;
|
||||
font-size: 1em;
|
||||
display: block;
|
||||
padding: 10px;
|
||||
border: 1px solid #bbb;
|
||||
background-color: #ddd;
|
||||
color: #000;
|
||||
overflow: auto;
|
||||
border-radius: 2.5px;
|
||||
-moz-border-radius: 2.5px;
|
||||
margin: 0.5em 2em;
|
||||
}
|
||||
|
||||
a[href] {
|
||||
text-decoration: none;
|
||||
color: #0a5ba8;
|
||||
}
|
||||
|
||||
a[href]:hover {
|
||||
text-decoration:underline
|
||||
}
|
||||
|
||||
a:visited {
|
||||
color: #131580;
|
||||
}
|
||||
|
||||
a:active {
|
||||
color: #0a5ba8;
|
||||
}
|
@@ -70,7 +70,7 @@
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>
|
||||
<emphasis>Devbox</emphasis> - a mahine where all murano components and services are running.
|
||||
<emphasis>Devbox</emphasis> - a machine where all murano components and services are running.
|
||||
This machine should have access to the Openstack Lab.
|
||||
</para>
|
||||
</listitem>
|
||||
@@ -135,8 +135,6 @@
|
||||
backup your VM easily.
|
||||
Any type of hypervisor software which supports linux as guest OS
|
||||
could be used. KVM, VMWare and VirtualBox were tested with success.
|
||||
There is a <link linkend="Appendix">Murano VM Appendix</link>
|
||||
which contains steps to build your own VM.
|
||||
</para>
|
||||
<para>
|
||||
<emphasis role="bold">Supported OS</emphasis>
|
||||
|
@@ -136,16 +136,13 @@ LAB_HOST='***.***.***.***'
|
||||
</section>
|
||||
<section xml:id="AutomatedWay">
|
||||
<title>Automated Way</title>
|
||||
<para>
|
||||
Build your VM using instructions from <link linkend="Appendix">Murano VM</link> first.
|
||||
</para>
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para>Create a folder to hold cloned repositories</para>
|
||||
<para>Create a folder to hold git repositories</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
<programlisting>
|
||||
># mkdir -p /opt/git
|
||||
># mkdir -p /opt/git cd /opt/git && cd /opt/git
|
||||
</programlisting>
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
@@ -153,7 +150,6 @@ LAB_HOST='***.***.***.***'
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
<programlisting>
|
||||
># cd /opt/git
|
||||
># git clone git://github.com/stackforge/murano-deployment.git
|
||||
</programlisting>
|
||||
<itemizedlist>
|
||||
@@ -169,7 +165,7 @@ LAB_HOST='***.***.***.***'
|
||||
</programlisting>
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para>Install prerequisites</para>
|
||||
<para>Install prerequisites. On this step some additional system packages will be installed</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
<programlisting>
|
||||
@@ -213,190 +209,6 @@ BRANCH_NAME='release-0.2'
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
</section>
|
||||
<section>
|
||||
<title>Manual Way</title>
|
||||
<para>Build your VM using instructions from
|
||||
<link linkend="Appendix">Murano VM</link>
|
||||
first.
|
||||
</para>
|
||||
<para>
|
||||
Package for Ubuntu and CentOS already in progress and will soon
|
||||
be accessible for users. While they are not available, we provide
|
||||
information about how to get and install all murano services from
|
||||
source code below. We made setup scripts for automated installation
|
||||
of our products which accepts install and uninstall command line
|
||||
arguments. Service startup jobs are handled by Upstart.
|
||||
</para>
|
||||
<para>At first we need to create a working directory.</para>
|
||||
|
||||
<note> <para>All installation steps require the superuser rights.</para></note>
|
||||
<programlisting>
|
||||
># mkdir -p /opt/git && cd /opt/git
|
||||
</programlisting>
|
||||
<note>
|
||||
<para>
|
||||
Please, track actual projects stable branch, at the time of
|
||||
writing current stable branch is - release-0.2
|
||||
</para>
|
||||
</note>
|
||||
<para>
|
||||
<emphasis role="bold">Murano-Api</emphasis></para>
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para>Get source code</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
<programlisting>
|
||||
># git clone https://github.com/stackforge/murano-api -b release-0.2
|
||||
># chmod +x murano-api/setup*.sh
|
||||
</programlisting>
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para>Install the component</para>
|
||||
|
||||
<para>
|
||||
<emphasis>Ubuntu</emphasis>
|
||||
</para>
|
||||
<programlisting>
|
||||
># ./murano-api/setup.sh install
|
||||
</programlisting>
|
||||
<para>
|
||||
<emphasis>CentOS</emphasis>
|
||||
</para>
|
||||
<programlisting>
|
||||
># ./murano-api/setup-centos.sh install
|
||||
</programlisting>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
<para>Configuration:</para>
|
||||
<programlisting>
|
||||
># cd /etc/murano-api && cp murano-api-paste.ini.sample \
|
||||
murano-api-paste.ini
|
||||
># cd /etc/murano-api && cp murano-api.conf.sample murano-api.conf
|
||||
</programlisting>
|
||||
<note>
|
||||
<para>
|
||||
Before start service, set proper configuration values in
|
||||
configuration files mentioned above.
|
||||
</para>
|
||||
</note>
|
||||
<para>
|
||||
Service control:
|
||||
</para>
|
||||
<programlisting>
|
||||
># start murano-api
|
||||
># stop murano-api
|
||||
># restart murano-api
|
||||
># status murano-api
|
||||
</programlisting>
|
||||
<para><emphasis role="bold">Murano-Conductor</emphasis></para>
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para>Get source code</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
<programlisting>
|
||||
># git clone https://github.com/stackforge/murano-conductor \
|
||||
-b release-0.2
|
||||
># chmod +x murano-conductor/setup*.sh
|
||||
</programlisting>
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para>Install the component</para>
|
||||
<para>
|
||||
<emphasis>Ubuntu</emphasis>
|
||||
</para>
|
||||
<programlisting>
|
||||
># ./murano-conductor/setup.sh install
|
||||
</programlisting>
|
||||
<para>
|
||||
<emphasis>CentOS</emphasis>
|
||||
</para>
|
||||
<programlisting>
|
||||
># ./murano-conductor/setup-centos.sh install
|
||||
</programlisting>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
<para>Configuration</para>
|
||||
<programlisting>
|
||||
># cd /etc/murano-conductor && cp \
|
||||
conductor-paste.ini.sample conductor-paste.ini
|
||||
># cd /etc/murano-conductor && cp \
|
||||
conductor.conf.sample conductor.conf
|
||||
</programlisting>
|
||||
<note>
|
||||
<para>
|
||||
Before starting the service, set proper configuration values in
|
||||
configuration files mentioned above.
|
||||
</para>
|
||||
</note>
|
||||
<para>Service control:</para>
|
||||
<programlisting>
|
||||
># start murano-conductor
|
||||
># stop murano-conductor
|
||||
># restart murano-conductor
|
||||
># status murano-conductor
|
||||
</programlisting>
|
||||
<para>
|
||||
<emphasis role="bold">Murano-Dashboard</emphasis></para>
|
||||
<para>At first, Install OpenStack dashboard(Horizon) and dependent
|
||||
packages.
|
||||
</para>
|
||||
<para>How-to do this:</para>
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para><emphasis>Ubuntu</emphasis></para>
|
||||
|
||||
<programlisting>
|
||||
># apt-get install -y memcached libapache2-mod-wsgi openstack-dashboard
|
||||
># dpkg --purge openstack-dashboard-ubuntu-theme # optional step
|
||||
</programlisting>
|
||||
<para>After installation is complete, openstack dashboard should be
|
||||
available at: http://<your VM IP>/horizon
|
||||
</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para><emphasis>CentOS</emphasis></para>
|
||||
<programlisting>
|
||||
># yum install python-netaddr.noarch \
|
||||
python-keystoneclient.noarch \
|
||||
python-django-horizon.noarch \
|
||||
python-django-openstack-auth.noarch \
|
||||
httpd.x86_64 mod_wsgi.x86_64 \
|
||||
openstack-dashboard.noarch --assumeyes
|
||||
># chkconfig httpd on
|
||||
</programlisting>
|
||||
<para>After installation is complete, openstack dashboard should be available
|
||||
at: http://<your VM IP>/dashboard
|
||||
</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
<para>Installation of the murano-dashboard described below.</para>
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para>Get source code</para>
|
||||
<programlisting>
|
||||
># git clone https://github.com/stackforge/murano-dashboard
|
||||
-b release-0.2
|
||||
># chmod +x murano-dashboard/setup*.sh
|
||||
</programlisting>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>Install the component</para>
|
||||
<para><emphasis>Ubuntu</emphasis>
|
||||
<programlisting>
|
||||
># ./murano-dashboard/setup.sh install
|
||||
</programlisting>
|
||||
</para>
|
||||
<para>
|
||||
<emphasis>CentOS</emphasis>
|
||||
<programlisting>
|
||||
># ./murano-dashboard/setup-centos.sh install
|
||||
</programlisting>
|
||||
</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
</section>
|
||||
<section>
|
||||
<title>Murano Services Configuration</title>
|
||||
<para>This chapter descrides how to configure Murano services
|
||||
|
@@ -433,13 +433,11 @@
|
||||
</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
<programlisting>
|
||||
<programlisting width="200">
|
||||
>$ cd /opt/image-builder/share/images
|
||||
>$ glance image-create --name ws-2012-std --disk-format qcow2 \
|
||||
--container-type bare --file ws-2012-std.qcow2 \
|
||||
--is-public true \
|
||||
--property murano_image_info='{"type":"ws-2012-std",\
|
||||
"title":"Windows Server 2012 Standard"}'
|
||||
>$ glance image-create --name ws-2012-std --disk-format qcow2 \
|
||||
--container-type bare --file ws-2012-std.qcow2 --is-public true \
|
||||
--property murano_image_info='{"type":"ws-2012-std", "title":"Windows Server 2012 Standard"}'
|
||||
</programlisting>
|
||||
<warning>
|
||||
<para>
|
||||
|
@@ -57,5 +57,4 @@
|
||||
<xi:include href="./content/setup_lab_environment.xml" xlink:title="Setup Lab Environment"/>
|
||||
<xi:include href="./content/setup_devbox.xml" xlink:title="Setup Devbox"/>
|
||||
<xi:include href="./content/troubleshooting.xml" xlink:title="Troubleshooting"/>
|
||||
<xi:include href="./content/appendix.xml" xlink:title="Appendix"/>
|
||||
</book>
|
||||
|
Reference in New Issue
Block a user