Move installation chapter to admin guide
Change-Id: I7c33a55de13a5974f41676ee9a77010d73a12050
This commit is contained in:
parent
70f28b0030
commit
87be5e3fff
File diff suppressed because it is too large
Load Diff
|
@ -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>Create and add the following lines to the
|
||||
<filename>/etc/apt/sources.list.d/grizzly.list</filename>
|
||||
file
|
||||
<programlisting>
|
||||
<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/\
|
||||
openstack-grizzly/rdo-release-grizzly.rpm
|
||||
># 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 -y mc unzip git make gcc python-setuptools \
|
||||
python-pip upstart
|
||||
</programlisting>
|
||||
</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
<para>
|
||||
Most of dependent packages will be installed
|
|
@ -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>
|
|
@ -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>
|
|
@ -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>
|
||||
|
|
@ -1,26 +1,26 @@
|
|||
<?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 manual installation and configuration of Murano services.</para>
|
||||
|
@ -30,10 +30,13 @@
|
|||
</para>
|
||||
<para>
|
||||
<note>
|
||||
<title>Automatic installation</title> Murano can be installed in automatic way. Script will install all
|
||||
<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">
|
||||
|
@ -94,535 +97,8 @@
|
|||
</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.
|
||||
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">
|
||||
<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 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[
|
||||
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>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
|
||||
|
||||
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.
|
||||
</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>
|
||||
<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>
|
||||
</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 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[
|
||||
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 = 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>
|
||||
<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 linkend="releases">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.
|
||||
<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="venv">
|
||||
<title>Installing with virtual environment</title>
|
||||
|
@ -727,8 +203,8 @@ $ python tools/install_venv.py
|
|||
<listitem>
|
||||
<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. Follow the links to see how config files should be configured:
|
||||
<link linkend="configure_api">Murano API</link> and <link linkend="configure_conductor">Murano Conductor</link>.
|
||||
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
|
||||
|
@ -764,146 +240,4 @@ $ python tools/install_venv.py
|
|||
</listitem>
|
||||
</itemizedlist>
|
||||
</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>
|
|
@ -75,5 +75,4 @@
|
|||
xlink:href="https://launchpad.net/murano">launchpad page</link>.
|
||||
</para>
|
||||
</chapter>
|
||||
<xi:include href="./content/appendix.xml" xlink:title="Appendix"/>
|
||||
</book>
|
||||
|
|
Loading…
Reference in New Issue