Remove DocBook XML files for Install Guide

Remove DocBook XML files and rename directory from install-guide-rst to
install-guide.

Adjust everything so that publishing works.
Update README to remove DocBook XML Install Guide specific instructions.

Implements: blueprint installguide-liberty
Change-Id: If723c44c3c0383dc8ab8e53798d82e7f0ee2cc57
This commit is contained in:
Andreas Jaeger 2015-08-19 09:18:49 +02:00
parent 1018c758c4
commit 25d1b7d617
269 changed files with 19 additions and 95090 deletions

8
.gitignore vendored
View File

@ -7,10 +7,10 @@ target/
/publish-docs/
/www/output/
/generated/
/doc/install-guide-rst/build-rdo/
/doc/install-guide-rst/build-obs/
/doc/install-guide-rst/build-ubuntu/
/doc/install-guide-rst/build-debian/
/doc/install-guide/build-rdo/
/doc/install-guide/build-obs/
/doc/install-guide/build-ubuntu/
/doc/install-guide/build-debian/
.doctrees
build/
/build-*.log.gz

View File

@ -44,9 +44,9 @@ source_lang = en
type = PO
[openstack-manuals-i18n.install-guide]
file_filter = doc/install-guide/locale/<lang>.po
file_filter = doc/install-guide/source/locale/<lang>/LC_MESSAGES/install-guide.po
minimum_perc = 75
source_file = doc/install-guide/locale/install-guide.pot
source_file = doc/install-guide/source/locale/install-guide.pot
source_lang = en
type = PO

View File

@ -48,7 +48,7 @@ The different manuals are in subdirectories of the
DocBook guides
--------------
* Normal guides
For example, the root directory of the *OpenStack Virtual Machine Image Guide*
is ``openstack-manuals/doc/image-guide``.
@ -66,22 +66,6 @@ The root of the generated HTML documentation is::
openstack-manuals/doc/image-guide/target/docbkx/webhelp/image-guide/content/index.html
* Installation guides
The root directory of the *OpenStack Install Guides*
is ``openstack-manuals/doc/install-guide``, you can get different operating system's guides::
cd openstack-manuals/doc/install-guide/
mvn clean generate-sources -Dprofile.os="ubuntu" -Doperating.system="apt"
mvn clean generate-sources -Dprofile.os="rhel;centos;fedora" -Doperating.system="yum"
mvn clean generate-sources -Dprofile.os="opensuse" -Doperating.system="zypper"
The generated PDF documentation file is::
openstack-manuals/doc/install-guide/target/docbkx/webhelp/local/install-guide/install/${operating.system}/openstack-install-guide-${operating.system}-local.pdf
The root of the generated HTML documentation is::
openstack-manuals/doc/install-guide/target/docbkx/webhelp/local/install-guide/install/${operating.system}/content/index.html
RST guides
----------

View File

@ -1,17 +1,15 @@
# directories to be set up
declare -A DIRECTORIES=(
["fr"]="common glossary image-guide"
["ja"]="common glossary image-guide install-guide"
["pt_BR"]="common install-guide"
["zh_CN"]="common glossary arch-design image-guide install-guide"
["ja"]="common glossary image-guide"
["zh_CN"]="common glossary arch-design image-guide"
)
# books to be built
declare -A BOOKS=(
["fr"]="image-guide"
["ja"]="image-guide install-guide user-guide user-guide-admin"
["pt_BR"]="install-guide"
["zh_CN"]="arch-design image-guide install-guide"
["ja"]="image-guide user-guide user-guide-admin"
["zh_CN"]="arch-design image-guide"
)
# draft books
@ -33,12 +31,12 @@ DOC_DIR="doc/"
# Values need to match content in
# project-config/jenkins/scripts/common_translation_update.sh
declare -A SPECIAL_BOOKS=(
["install-guide"]="RST"
["networking-guide"]="RST"
["user-guide"]="RST"
["user-guide-admin"]="RST"
["networking-guide"]="RST"
# In process of migration to RST
["admin-guide-cloud-rst"]="RST"
["install-guide-rst"]="RST"
# Skip guide while it's created
["contributor-guide"]="skip"
# This needs special handling, handle it with the RST tools.

View File

@ -1,93 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<appendix xmlns="http://docbook.org/ns/docbook"
xmlns:xi="http://www.w3.org/2001/XInclude"
xmlns:xlink="http://www.w3.org/1999/xlink"
version="5.0"
xml:id="reserved_user_ids">
<title>Reserved user IDs</title>
<para>
OpenStack reserves certain user IDs to run specific services and
own specific files. These user IDs are set up according to the
distribution packages. The following table gives an overview.
</para>
<note os="debian;opensuse;sles;ubuntu">
<para>Some OpenStack packages generate and assign user IDs
automatically during package installation. In these cases, the
user ID value is not important. The existence of the user ID is
what matters.
</para>
</note>
<table rules="all">
<caption>Reserved user IDs</caption>
<thead>
<tr>
<th>Name</th>
<th>Description</th>
<th>ID</th>
</tr>
</thead>
<tbody>
<!-- sorted by first column -->
<tr>
<td>ceilometer</td>
<td>OpenStack ceilometer daemons</td>
<td os="rhel;centos;fedora">166</td>
<td os="debian;opensuse;sles;ubuntu">Assigned during package installation</td>
</tr>
<tr>
<td>cinder</td>
<td>OpenStack cinder daemons</td>
<td os="rhel;centos;fedora">165</td>
<td os="debian;opensuse;sles;ubuntu">Assigned during package installation</td>
</tr>
<tr>
<td>glance</td>
<td>OpenStack glance daemons</td>
<td os="rhel;centos;fedora">161</td>
<td os="debian;opensuse;sles;ubuntu">Assigned during package installation</td>
</tr>
<tr>
<td>heat</td>
<td>OpenStack heat daemons</td>
<td os="rhel;centos;fedora">187</td>
<td os="debian;opensuse;sles;ubuntu">Assigned during package installation</td>
</tr>
<tr>
<td>keystone</td>
<td>OpenStack keystone daemons</td>
<td os="rhel;centos;fedora">163</td>
<td os="debian;opensuse;sles;ubuntu">Assigned during package installation</td>
</tr>
<tr>
<td>neutron</td>
<td>OpenStack neutron daemons</td>
<td os="rhel;centos;fedora">164</td>
<td os="debian;opensuse;sles;ubuntu">Assigned during package installation</td>
</tr>
<tr>
<td>nova</td>
<td>OpenStack nova daemons</td>
<td os="rhel;centos;fedora">162</td>
<td os="opensuse;sles">96</td>
<td os="debian;ubuntu">Assigned during package installation</td>
</tr>
<tr>
<td>swift</td>
<td>OpenStack swift daemons</td>
<td os="rhel;centos;fedora">160</td>
<td os="debian;opensuse;sles;ubuntu">Assigned during package installation</td>
</tr>
<tr>
<td>trove</td>
<td>OpenStack trove daemons</td>
<td os="debian;opensuse;sles;ubuntu;rhel;centos;fedora">Assigned during package installation</td>
</tr>
</tbody>
</table>
<para>Each user belongs to a user group with the same name as the
user.
</para>
</appendix>

View File

@ -1,105 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<book xmlns="http://docbook.org/ns/docbook"
xmlns:xi="http://www.w3.org/2001/XInclude"
xmlns:xlink="http://www.w3.org/1999/xlink"
version="5.0"
xml:id="openstack-install-manual"
status="draft">
<title>OpenStack Installation Guide for
<phrase os="rhel;centos;fedora">Red Hat Enterprise Linux 7, CentOS 7, and Fedora 21</phrase>
<phrase os="ubuntu">Ubuntu 14.04</phrase>
<phrase os="debian">Debian 7</phrase>
<phrase os="opensuse">openSUSE 13.2 and SUSE Linux Enterprise Server 12</phrase>
</title>
<?rax
status.bar.text.font.size="40px"
status.bar.text="Kilo"?>
<?rax subtitle.font.size="17px" title.font.size="32px"?>
<titleabbrev>OpenStack Installation Guide for
<phrase os="rhel;centos;fedora">Red Hat Enterprise Linux, CentOS, and Fedora</phrase>
<phrase os="ubuntu">Ubuntu 14.04</phrase>
<phrase os="opensuse">openSUSE and SUSE Linux Enterprise Server</phrase>
<phrase os="debian">Debian 7</phrase>
</titleabbrev>
<info>
<author>
<personname>
<firstname/>
<surname/>
</personname>
<affiliation>
<orgname>OpenStack</orgname>
</affiliation>
</author>
<copyright>
<year>2012</year>
<year>2013</year>
<year>2014</year>
<year>2015</year>
<holder>OpenStack Foundation</holder>
</copyright>
<releaseinfo>kilo</releaseinfo>
<productname>OpenStack Installation Guide</productname>
<pubdate/>
<legalnotice role="apache2">
<annotation>
<remark>Copyright details are filled in by the
template.</remark>
</annotation>
</legalnotice>
<abstract>
<para>The OpenStack® system consists of several key
projects that you install separately. These projects work
together depending on your cloud needs. These projects
include Compute, Identity Service, Networking, Image
Service, Block Storage, Object Storage, Telemetry,
Orchestration, and Database. You can install any of these
projects separately and configure them stand-alone or
as connected entities. <phrase
os="debian">This guide walks through an
installation by using packages available through
Debian 7 (code name: Wheezy).</phrase>
<phrase os="ubuntu">This guide walks through an
installation by using packages available through
Ubuntu 14.04.</phrase>
<phrase os="rhel;centos;fedora">This guide shows you
how to install OpenStack by using packages
available through Fedora 21 as well as on Red Hat
Enterprise Linux 7 and its derivatives through the
EPEL repository.</phrase>
<phrase os="opensuse;sles">This guide shows you how to
install OpenStack by using packages on openSUSE
13.2 and SUSE Linux Enterprise Server 12
through the Open Build Service Cloud
repository.</phrase> Explanations of configuration
options and sample configuration files are
included.</para>
</abstract>
</info>
<!-- Chapters are referred from the book file through these
include statements. You can add additional chapters using
these types of statements. -->
<xi:include href="../common/ch_preface.xml"/>
<xi:include href="ch_overview.xml"/>
<xi:include href="ch_basic_environment.xml"/>
<xi:include href="ch_debconf.xml"/>
<xi:include href="ch_keystone.xml"/>
<xi:include href="ch_glance.xml"/>
<xi:include href="ch_nova.xml"/>
<xi:include href="ch_networking.xml"/>
<xi:include href="ch_horizon.xml"/>
<xi:include href="ch_cinder.xml"/>
<xi:include href="ch_swift.xml"/>
<xi:include href="ch_heat.xml"/>
<xi:include href="ch_ceilometer.xml"/>
<!-- Chapter trove disabled on behalf. -->
<!-- <xi:include href="ch_trove.xml"/> -->
<!-- Chapter sahara disabled on behalf. -->
<!-- <xi:include href="ch_sahara.xml"/> -->
<xi:include href="ch_launch-instance.xml"/>
<xi:include href="app_reserved_uids.xml"/>
<xi:include href="../common/app_support.xml"/>
<glossary role="auto"/>
</book>

View File

@ -1,54 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<chapter xmlns="http://docbook.org/ns/docbook"
xmlns:xi="http://www.w3.org/2001/XInclude"
xmlns:xlink="http://www.w3.org/1999/xlink"
version="5.0"
xml:id="ch_basic_environment">
<?dbhtml stop-chunking?>
<title>Basic environment</title>
<note>
<para>
The draft version of this guide focuses on the future Liberty
release and will not work for the current Kilo release. If
you want to install Kilo, you must use the <link
xlink:href="http://docs.openstack.org">Kilo version</link>
of this guide instead.
</para>
</note>
<para>This chapter explains how to configure each node in the
<link linkend="architecture_example-architectures">example architectures</link>
including the <link linkend="example-architecture-with-legacy-networking-hw">
two-node architecture with legacy networking</link> and
<link linkend="example-architecture-with-neutron-networking-hw">three-node
architecture with OpenStack Networking (neutron)</link>.</para>
<note>
<para>Although most environments include Identity, Image service,
Compute, at least one networking service, and the dashboard, the
Object Storage service can operate independently. If your use case
only involves Object Storage, you can skip to
<xref linkend="ch_swift"/> after configuring the appropriate nodes
for it. However, the dashboard requires at least
the Image service and Compute.</para>
</note>
<note>
<para>You must use an account with administrative privileges to configure
each node. Either run the commands as the <literal>root</literal> user
or configure the <literal>sudo</literal> utility.</para>
</note>
<note>
<para>
The <command>systemctl enable</command> call on openSUSE outputs
a warning message when the service uses SysV Init scripts
instead of native systemd files. This warning can be ignored.
</para>
</note>
<xi:include href="section_basics-prerequisites.xml"/>
<xi:include href="section_basics-security.xml"/>
<xi:include href="section_basics-networking.xml"/>
<xi:include href="section_basics-ntp.xml"/>
<xi:include href="section_basics-packages.xml"/>
<xi:include href="section_basics-database.xml"/>
<xi:include href="section_basics-queue.xml"/>
</chapter>

View File

@ -1,24 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<chapter xmlns="http://docbook.org/ns/docbook"
xmlns:xi="http://www.w3.org/2001/XInclude"
xmlns:xlink="http://www.w3.org/1999/xlink"
version="5.0"
xml:id="ch_ceilometer">
<title>Add the Telemetry module</title>
<para>Telemetry provides a framework for monitoring and metering
the OpenStack cloud. It is also known as the ceilometer
project.</para>
<xi:include href="../common/section_getstart_telemetry.xml"/>
<xi:include href="section_ceilometer-controller.xml"/>
<xi:include href="section_ceilometer-nova.xml"/>
<xi:include href="section_ceilometer-glance.xml"/>
<xi:include href="section_ceilometer-cinder.xml"/>
<xi:include href="section_ceilometer-swift.xml"/>
<xi:include href="section_ceilometer-verify.xml"/>
<section xml:id="section_ceilometer_next_steps">
<title>Next steps</title>
<para>Your OpenStack environment now includes Telemetry. You can
<link linkend="launch-instance">launch an instance</link> or add more
services to your environment in the previous chapters.</para>
</section>
</chapter>

View File

@ -1,33 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<chapter xmlns="http://docbook.org/ns/docbook"
xmlns:xi="http://www.w3.org/2001/XInclude"
xmlns:xlink="http://www.w3.org/1999/xlink"
version="5.0"
xml:id="ch_cinder">
<title>Add the Block Storage service</title>
<para>The OpenStack Block Storage service provides block storage devices
to guest instances. The method in which the storage is provisioned and
consumed is determined by the Block Storage driver, or drivers
in the case of a multi-backend configuration. There are a variety of
drivers that are available: NAS/SAN, NFS, iSCSI, Ceph, and more.
The Block Storage API and scheduler services typically run on the controller
nodes. Depending upon the drivers used, the volume service can run
on controllers, compute nodes, or standalone storage nodes.
For more information, see the
<link xlink:href="http://docs.openstack.org/kilo/config-reference/content/section_volume-drivers.html">
<citetitle>Configuration Reference</citetitle></link>.</para>
<note>
<para>This chapter omits the backup manager because it depends on the
Object Storage service.</para>
</note>
<xi:include href="../common/section_getstart_block-storage.xml"/>
<xi:include href="section_cinder-controller-node.xml"/>
<xi:include href="section_cinder-storage-node.xml"/>
<xi:include href="section_cinder-verify.xml"/>
<section xml:id="section_cinder_next_steps">
<title>Next steps</title>
<para>Your OpenStack environment now includes Block Storage. You can
<link linkend="launch-instance">launch an instance</link> or add more
services to your environment in the following chapters.</para>
</section>
</chapter>

View File

@ -1,14 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<chapter xmlns="http://docbook.org/ns/docbook"
xmlns:xi="http://www.w3.org/2001/XInclude"
xmlns:xlink="http://www.w3.org/1999/xlink"
version="5.0"
xml:id="ch_debconf"
os="debian">
<title>Configure OpenStack with debconf</title>
<xi:include href="section_debconf-concepts.xml"/>
<xi:include href="section_debconf-dbconfig-common.xml"/>
<xi:include href="section_debconf-rabbitmq.xml"/>
<xi:include href="section_debconf-keystone_authtoken.xml"/>
<xi:include href="section_debconf-api-endpoints.xml"/>
</chapter>

View File

@ -1,31 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<chapter xmlns="http://docbook.org/ns/docbook"
xmlns:xi="http://www.w3.org/2001/XInclude"
xmlns:xlink="http://www.w3.org/1999/xlink"
version="5.0"
xml:id="ch_glance">
<title>Add the Image service</title>
<para>The OpenStack Image service (glance) enables users to discover,
register, and retrieve virtual machine images. It offers a <glossterm
baseform="RESTful">REST</glossterm> API that enables you to
query virtual machine image metadata and retrieve an actual image.
You can store virtual machine images made available through the
Image service in a variety of locations, from simple file systems
to object-storage systems like OpenStack Object Storage.</para>
<important>
<para>For simplicity, this guide describes configuring the Image service to
use the <literal>file</literal> back end, which uploads and stores in a
directory on the controller node hosting the Image service. By
default, this directory is <filename>/var/lib/glance/images/</filename>.
</para>
<para>Before you proceed, ensure that the controller node has at least
several gigabytes of space available in this directory.</para>
<para>For information on requirements for other back ends, see <link
xlink:href="http://docs.openstack.org/trunk/config-reference/content/ch_configuring-openstack-image-service.html"
><citetitle>Configuration
Reference</citetitle></link>.</para>
</important>
<xi:include href="../common/section_getstart_image.xml"/>
<xi:include href="section_glance-install.xml"/>
<xi:include href="section_glance-verify.xml"/>
</chapter>

View File

@ -1,19 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<chapter xmlns="http://docbook.org/ns/docbook"
xmlns:xi="http://www.w3.org/2001/XInclude"
xmlns:xlink="http://www.w3.org/1999/xlink"
version="5.0"
xml:id="ch_heat">
<title>Add the Orchestration module</title>
<para>The Orchestration module (heat) uses a heat orchestration template
(HOT) to create and manage cloud resources.</para>
<xi:include href="../common/section_getstart_orchestration.xml"/>
<xi:include href="section_heat-install.xml"/>
<xi:include href="section_heat-verify.xml"/>
<section xml:id="section_heat_next_steps">
<title>Next steps</title>
<para>Your OpenStack environment now includes Orchestration. You can
<link linkend="launch-instance">launch an instance</link> or add more
services to your environment in the following chapters.</para>
</section>
</chapter>

View File

@ -1,60 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<chapter xmlns="http://docbook.org/ns/docbook"
xmlns:xi="http://www.w3.org/2001/XInclude"
xmlns:xlink="http://www.w3.org/1999/xlink"
version="5.0"
xml:id="ch_horizon">
<title>Add the dashboard</title>
<para>The OpenStack dashboard, also known as <link
xlink:href="https://git.openstack.org/cgit/openstack/horizon"
>Horizon</link>, is a Web interface that enables cloud
administrators and users to manage various OpenStack resources and
services.</para>
<para>The dashboard enables web-based interactions with the
OpenStack Compute cloud controller through the OpenStack
APIs.</para>
<para>Horizon enables you to customize the brand of the dashboard.</para>
<para>Horizon provides a set of core classes and reusable templates and tools.</para>
<para>This example deployment uses an Apache web server.</para>
<xi:include href="section_dashboard-install.xml"/>
<xi:include href="section_dashboard-verify.xml"/>
<section xml:id="section_horizon_next_steps">
<title>Next steps</title>
<para>Your OpenStack environment now includes the dashboard. You can
<link linkend="launch-instance">launch an instance</link> or add
more services to your environment in the following chapters.</para>
<para>After you install and configure the dashboard, you can
complete the following tasks:</para>
<itemizedlist>
<listitem>
<para>Provide users with a public IP address, a username, and a password
so they can access the dashboard through a web browser. In case of
any SSL certificate connection problems, point the server
IP address to a domain name, and give users access.</para>
</listitem>
<listitem>
<para>Customize your dashboard. See section <link xlink:href="http://docs.openstack.org/admin-guide-cloud/content/ch_install-dashboard.html#dashboard-custom-brand"
>Customize the dashboard</link> in the <link xlink:href="http://docs.openstack.org/admin-guide-cloud/content/"
><citetitle>OpenStack Cloud Administrator Guide</citetitle></link>
for information on setting up colors, logos, and site titles.</para>
</listitem>
<listitem>
<para>Set up session storage. See section <link xlink:href="http://docs.openstack.org/admin-guide-cloud/content/dashboard-sessions.html#dashboard-sessions">Set up session storage for the dashboard</link>
in the <link xlink:href="http://docs.openstack.org/admin-guide-cloud/content/"
><citetitle>OpenStack Cloud Administrator Guide</citetitle></link> for information on user
session data.</para>
</listitem>
<listitem>
<para>To use the VNC client with the dashboard, the browser
must support HTML5 Canvas and HTML5 WebSockets.</para>
<para>For details about browsers that support noVNC, see <link
xlink:href="https://github.com/kanaka/noVNC/blob/master/README.md">
https://github.com/kanaka/noVNC/blob/master/README.md</link>,
and <link xlink:href="https://github.com/kanaka/noVNC/wiki/Browser-support">
https://github.com/kanaka/noVNC/wiki/Browser-support</link>,
respectively.</para>
</listitem>
</itemizedlist>
</section>
</chapter>

View File

@ -1,14 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<chapter xmlns="http://docbook.org/ns/docbook"
xmlns:xi="http://www.w3.org/2001/XInclude"
xmlns:xlink="http://www.w3.org/1999/xlink"
version="5.0"
xml:id="ch_keystone">
<title>Add the Identity service</title>
<xi:include href="../common/section_keystone-concepts.xml"/>
<xi:include href="section_keystone-install.xml"/>
<xi:include href="section_keystone-services.xml"/>
<xi:include href="section_keystone-users.xml"/>
<xi:include href="section_keystone-verify.xml"/>
<xi:include href="section_keystone-openrc.xml"/>
</chapter>

View File

@ -1,33 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<chapter xmlns="http://docbook.org/ns/docbook"
xmlns:xi="http://www.w3.org/2001/XInclude"
xmlns:xlink="http://www.w3.org/1999/xlink"
version="5.0"
xml:id="launch-instance">
<title>Launch an instance</title>
<para>An instance is a VM that OpenStack provisions on a compute node.
This guide shows you how to launch a minimal instance using the
<glossterm>CirrOS</glossterm> image that you added to your environment
in the <xref linkend="ch_glance"/> chapter. In these steps, you use the
command-line interface (CLI) on your controller node or any system with
the appropriate OpenStack client libraries. To use the dashboard, see the
<link
xlink:href="http://docs.openstack.org/user-guide/dashboard.html">
<citetitle>OpenStack User Guide</citetitle></link>.</para>
<para>Launch an instance using
<link linkend="launch-instance-neutron">OpenStack Networking (neutron)
</link> or
<link linkend="launch-instance-nova">legacy networking (nova-network)
</link>. For more
information, see the
<link
xlink:href="http://docs.openstack.org/user-guide/cli_launch_instances.html">
<citetitle>OpenStack User Guide</citetitle></link>.</para>
<note>
<para>These steps reference example components created in previous
chapters. You must adjust certain values such as IP addresses to
match your environment.</para>
</note>
<xi:include href="section_launch-instance-neutron.xml"/>
<xi:include href="section_launch-instance-nova.xml"/>
</chapter>

View File

@ -1,44 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<chapter xmlns="http://docbook.org/ns/docbook"
xmlns:xi="http://www.w3.org/2001/XInclude"
xmlns:xlink="http://www.w3.org/1999/xlink"
version="5.0"
xml:id="ch_networking">
<title>Add a networking component</title>
<para>This chapter explains how to install and configure either
OpenStack Networking (neutron), or the legacy <systemitem
class="service">nova-network</systemitem> component.
The <systemitem class="service">nova-network</systemitem> service
enables you to deploy one network type per instance and is
suitable for basic network functionality. OpenStack Networking
enables you to deploy multiple network types per instance and
includes <glossterm baseform="plug-in">plug-ins</glossterm> for a
variety of products that support <glossterm>virtual
networking</glossterm>.</para>
<para>For more information, see the <link
xlink:href="http://docs.openstack.org/admin-guide-cloud/content/ch_networking.html"
>Networking</link> chapter of the <citetitle>OpenStack Cloud
Administrator Guide</citetitle>.</para>
<section xml:id="section_neutron-networking">
<title>OpenStack Networking (neutron)</title>
<xi:include parse="xml" href="../common/section_getstart_networking.xml"/>
<xi:include href="section_neutron-concepts.xml"/>
<xi:include href="section_neutron-controller-node.xml"/>
<xi:include href="section_neutron-network-node.xml"/>
<xi:include href="section_neutron-compute-node.xml"/>
<xi:include href="section_neutron-initial-networks.xml"/>
</section>
<section xml:id="section_nova-networking">
<title>Legacy networking (nova-network)</title>
<xi:include href="section_nova-networking-controller-node.xml"/>
<xi:include href="section_nova-networking-compute-node.xml"/>
<xi:include href="section_nova-networking-initial-network.xml"/>
</section>
<section xml:id="section_networking_next_steps">
<title>Next steps</title>
<para>Your OpenStack environment now includes the core components
necessary to launch a basic instance. You can <link
linkend="launch-instance">launch an instance</link> or add
more OpenStack services to your environment.</para>
</section>
</chapter>

View File

@ -1,13 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<chapter xmlns="http://docbook.org/ns/docbook"
xmlns:xi="http://www.w3.org/2001/XInclude"
xmlns:xlink="http://www.w3.org/1999/xlink"
version="5.0"
xml:id="ch_nova">
<?dbhtml stop-chunking?>
<title>Add the Compute service</title>
<xi:include href="../common/section_getstart_compute.xml"/>
<xi:include href="section_nova-controller-install.xml"/>
<xi:include href="section_nova-compute-install.xml"/>
<xi:include href="section_nova-verify.xml"/>
</chapter>

View File

@ -1,258 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE chapter [
<!ENTITY % openstack SYSTEM "../common/entities/openstack.ent">
%openstack;
]>
<chapter xmlns="http://docbook.org/ns/docbook"
xmlns:xi="http://www.w3.org/2001/XInclude"
xmlns:xlink="http://www.w3.org/1999/xlink"
version="5.0"
xml:id="ch_overview">
<?dbhtml stop-chunking?>
<title>Architecture</title>
<section xml:id="architecture_overview">
<title>Overview</title>
<para>The <glossterm>OpenStack</glossterm> project is an open source cloud
computing platform that supports all types of cloud environments. The
project aims for simple implementation, massive scalability, and a rich
set of features. Cloud computing experts from around the world
contribute to the project.</para>
<para>OpenStack provides an Infrastructure-as-a-Service
(<glossterm>IaaS</glossterm>) solution through a variety of complemental
services. Each service offers an application programming interface
(<glossterm>API</glossterm>) that facilitates this integration. The
following table provides a list of OpenStack services:</para>
<xi:include href="../common/ch_getstart.xml"
xpointer="element(table1)"/>
<para>This guide describes how to deploy these services in a functional
test environment and, by example, teaches you how to build a production
environment. Realistically, you would use automation tools such as
Ansible, Chef, and Puppet to deploy and manage a production
environment.</para>
</section>
<section xml:id="architecture_conceptual-architecture">
<title>Conceptual architecture</title>
<para>Launching a virtual machine or instance involves many interactions
among several services. The following diagram provides the conceptual
architecture of a typical OpenStack environment.</para>
<figure xml:id="conceptual-architecture">
<title>Conceptual architecture</title>
<mediaobject>
<imageobject>
<imagedata contentwidth="6in"
fileref="../common/figures/openstack_kilo_conceptual_arch.png"/>
</imageobject>
</mediaobject>
</figure>
</section>
<section xml:id="architecture_example-architectures">
<title>Example architectures</title>
<para>OpenStack is highly configurable to meet different needs with various
compute, networking, and storage options. This guide enables you to
choose your own OpenStack adventure using a combination of core and
optional services. This guide uses the following example
architectures:</para>
<itemizedlist>
<listitem>
<para>Three-node architecture with OpenStack Networking
(neutron) and optional nodes for Block Storage and Object
Storage services.</para>
<itemizedlist>
<listitem>
<para>The
<glossterm baseform="cloud controller node"
>controller node</glossterm> runs the Identity service, Image
Service, management portions of Compute and Networking,
Networking plug-in, and the dashboard. It also includes
supporting services such as a SQL database,
<glossterm>message queue</glossterm>, and
<glossterm>Network Time Protocol (NTP)</glossterm>.</para>
<para>Optionally, the controller node runs portions of
Block Storage, Object Storage, Orchestration, Telemetry,
Database, and Data processing services. These
components provide additional features for your
environment.</para>
</listitem>
<listitem>
<para>The network node runs the Networking plug-in and
several agents that provision tenant networks and provide
switching, routing,
<glossterm baseform="Network Address Translation (NAT)"
>NAT</glossterm>, and <glossterm>DHCP</glossterm> services.
This node also handles external (Internet) connectivity for
tenant virtual machine instances.</para>
</listitem>
<listitem>
<para>The <glossterm>compute node</glossterm> runs the
<glossterm>hypervisor</glossterm> portion of Compute
that operates <glossterm>tenant</glossterm>
<glossterm baseform="virtual machine (VM)">virtual machines</glossterm>
or instances. By default, Compute uses
<glossterm baseform="kernel-based VM (KVM)">KVM</glossterm>
as the <glossterm>hypervisor</glossterm>. The compute node
also runs the Networking plug-in and an agent that connect
tenant networks to instances and provide firewalling
(<glossterm baseform="security group"
>security groups</glossterm>) services. You can run more
than one compute node.</para>
<para>Optionally, the compute node runs a Telemetry
agent to collect meters. Also, it can contain a third
network interface on a separate storage network to improve
performance of storage services.</para>
</listitem>
<listitem>
<para>The optional Block Storage node contains the disks that
the Block Storage service provisions for tenant virtual machine
instances. You can run more than one of these nodes.</para>
<para>Optionally, the Block Storage node runs a Telemetry
agent to collect meters. Also, it can contain a second
network interface on a separate storage network to improve
performance of storage services.</para>
</listitem>
<listitem>
<para>The optional Object Storage nodes contain the disks that
the Object Storage service uses for storing accounts,
containers, and objects. You can run more than two of these
nodes. However, the minimal architecture example requires
two nodes.</para>
<para>Optionally, these nodes can contain a second network
interface on a separate storage network to improve
performance of storage services.</para>
</listitem>
</itemizedlist>
<note>
<para>When you implement this architecture, skip
<xref linkend="section_nova-networking" /> in
<xref linkend="ch_networking" />. Optional services might
require additional nodes or additional resources on existing
nodes.</para>
</note>
<figure xml:id="example-architecture-with-neutron-networking-hw">
<title>Minimal architecture example with OpenStack Networking
(neutron)&mdash;Hardware requirements</title>
<mediaobject>
<imageobject>
<imagedata contentwidth="6in"
fileref="../common/figures/installguidearch-neutron-hw.png"/>
</imageobject>
</mediaobject>
</figure>
<figure xml:id="example-architecture-with-neutron-networking-networks">
<title>Minimal architecture example with OpenStack Networking
(neutron)&mdash;Network layout</title>
<mediaobject>
<imageobject>
<imagedata contentwidth="6in"
fileref="../common/figures/installguidearch-neutron-networks.png"/>
</imageobject>
</mediaobject>
</figure>
<figure xml:id="example-architecture-with-neutron-networking-services">
<title>Minimal architecture example with OpenStack Networking
(neutron)&mdash;Service layout</title>
<mediaobject>
<imageobject>
<imagedata contentwidth="6in"
fileref="../common/figures/installguidearch-neutron-services.png"/>
</imageobject>
</mediaobject>
</figure>
</listitem>
<listitem>
<para>Two-node architecture with legacy networking
(nova-network) and optional nodes for Block Storage and
Object Storage services.</para>
<itemizedlist>
<listitem>
<para>The
<glossterm baseform="cloud controller node"
>controller node</glossterm> runs the Identity service,
Image service, management portion of Compute, and the
dashboard. It also includes supporting services such as
a SQL database, <glossterm>message queue</glossterm>, and
<glossterm>Network Time Protocol (NTP)</glossterm>.</para>
<para>Optionally, the controller node runs portions of
Block Storage, Object Storage, Orchestration, Telemetry,
Database, and Data processing services. These
components provide additional features for your
environment.</para>
</listitem>
<listitem>
<para>The <glossterm>compute node</glossterm> runs the
<glossterm>hypervisor</glossterm> portion of Compute
that operates <glossterm>tenant</glossterm>
<glossterm baseform="virtual machine (VM)">virtual machines</glossterm>
or instances. By default, Compute uses
<glossterm baseform="kernel-based VM (KVM)">KVM</glossterm>
as the <glossterm>hypervisor</glossterm>. Compute also
provisions tenant networks and provides firewalling
(<glossterm baseform="security group"
>security groups</glossterm>) services. You can run more
than one compute node.</para>
<para>Optionally, the compute node runs a Telemetry
agent to collect meters. Also, it can contain a third
network interface on a separate storage network to improve
performance of storage services.</para>
</listitem>
<listitem>
<para>The optional Block Storage node contains the disks that
the Block Storage service provisions for tenant virtual machine
instances. You can run more than one of these nodes.</para>
<para>Optionally, the Block Storage node runs a Telemetry
agent to collect meters. Also, it can contain a second
network interface on a separate storage network to improve
performance of storage services.</para>
</listitem>
<listitem>
<para>The optional Object Storage nodes contain the disks that
the Object Storage service uses for storing accounts,
containers, and objects. You can run more than two of these
nodes. However, the minimal architecture example requires
two nodes.</para>
<para>Optionally, these nodes can contain a second network
interface on a separate storage network to improve
performance of storage services.</para>
</listitem>
</itemizedlist>
<note>
<para>When you implement this architecture, skip
<xref linkend="section_neutron-networking" /> in
<xref linkend="ch_networking" />. To use optional services, you
might need to build additional nodes, as described in
subsequent chapters.</para>
</note>
<figure xml:id="example-architecture-with-legacy-networking-hw">
<title>Minimal architecture example with legacy networking
(nova-network)&mdash;Hardware requirements</title>
<mediaobject>
<imageobject>
<imagedata contentwidth="6in"
fileref="../common/figures/installguidearch-nova-hw.png"/>
</imageobject>
</mediaobject>
</figure>
<figure xml:id="example-architecture-with-legacy-networking-networks">
<title>Minimal architecture example with legacy networking
(nova-network)&mdash;Network layout</title>
<mediaobject>
<imageobject>
<imagedata contentwidth="6in"
fileref="../common/figures/installguidearch-nova-networks.png"/>
</imageobject>
</mediaobject>
</figure>
<figure xml:id="example-architecture-with-legacy-networking-services">
<title>Minimal architecture example with legacy networking
(nova-network)&mdash;Service layout</title>
<mediaobject>
<imageobject>
<imagedata contentwidth="6in"
fileref="../common/figures/installguidearch-nova-services.png"/>
</imageobject>
</mediaobject>
</figure>
</listitem>
</itemizedlist>
</section>
</chapter>

View File

@ -1,19 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<chapter xmlns="http://docbook.org/ns/docbook"
xmlns:xi="http://www.w3.org/2001/XInclude"
xmlns:xlink="http://www.w3.org/1999/xlink"
version="5.0"
xml:id="ch_sahara">
<title>Add the Data processing service</title>
<para>The Data processing service (sahara) enables users to provide a
scalable data processing stack and associated management interfaces.
This includes provisioning and operation of data processing clusters as
well as scheduling and operation of data processing jobs.
</para>
<warning><para>This chapter is a work in progress. It may contain
incorrect information, and will be updated frequently.</para></warning>
<xi:include href="../common/section_getstart_sahara.xml"/>
<xi:include href="section_sahara-install.xml" />
<xi:include href="section_sahara-verify.xml" />
</chapter>

View File

@ -1,25 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<chapter xmlns="http://docbook.org/ns/docbook"
xmlns:xi="http://www.w3.org/2001/XInclude"
xmlns:xlink="http://www.w3.org/1999/xlink"
version="5.0"
xml:id="ch_swift">
<title>Add Object Storage</title>
<para>The OpenStack Object Storage services (swift) work together to
provide object storage and retrieval through a
<glossterm baseform="RESTful">REST</glossterm> API. Your environment
must at least include the Identity service (keystone) prior to
deploying Object Storage.</para>
<xi:include href="../common/section_getstart_object-storage.xml"/>
<xi:include href="section_swift-controller-node.xml"/>
<xi:include href="section_swift-storage-node.xml"/>
<xi:include href="section_swift-initial-rings.xml"/>
<xi:include href="section_swift-finalize-installation.xml"/>
<xi:include href="section_swift-verify.xml"/>
<section xml:id="section_swift_next_steps">
<title>Next steps</title>
<para>Your OpenStack environment now includes Object Storage. You can
<link linkend="launch-instance">launch an instance</link> or add more
services to your environment in the following chapters.</para>
</section>
</chapter>

View File

@ -1,16 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<chapter xmlns="http://docbook.org/ns/docbook"
xmlns:xi="http://www.w3.org/2001/XInclude"
xmlns:xlink="http://www.w3.org/1999/xlink"
version="5.0"
xml:id="ch_trove">
<title>Add the Database service</title>
<para>Use the <glossterm baseform="Database service">Database
service</glossterm> to create cloud database resources. The
integrated project name is <glossterm>trove</glossterm>.</para>
<warning><para>This chapter is a work in progress. It may contain
incorrect information, and will be updated frequently.</para></warning>
<xi:include href="../common/section_getstart_trove.xml"/>
<xi:include href="section_trove-install.xml" />
<xi:include href="section_trove-verify.xml" />
</chapter>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 504 KiB

File diff suppressed because it is too large Load Diff

Before

Width:  |  Height:  |  Size: 205 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 63 KiB

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 629 KiB

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 33 KiB

File diff suppressed because it is too large Load Diff

Before

Width:  |  Height:  |  Size: 42 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 35 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 42 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 37 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 38 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 49 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 58 KiB

View File

@ -1,995 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="680"
height="530.00006"
id="svg4396"
version="1.1"
inkscape:version="0.48.4 r9939"
sodipodi:docname="installguide_arch-neutron.svg">
<defs
id="defs4398" />
<sodipodi:namedview
inkscape:document-units="mm"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="1"
inkscape:cx="469.99999"
inkscape:cy="269.75908"
inkscape:current-layer="layer1"
id="namedview4400"
showgrid="true"
inkscape:snap-bbox="true"
inkscape:bbox-nodes="true"
units="mm"
fit-margin-top="0"
fit-margin-left="0"
fit-margin-right="0"
fit-margin-bottom="0"
inkscape:window-width="1366"
inkscape:window-height="746"
inkscape:window-x="-8"
inkscape:window-y="-8"
inkscape:window-maximized="1">
<inkscape:grid
type="xygrid"
id="grid4405"
empspacing="5"
visible="true"
enabled="true"
snapvisiblegridlinesonly="true"
originx="-20.000007px"
originy="-399.98715px"
dotted="false" />
</sodipodi:namedview>
<metadata
id="metadata4402">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title />
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(-9.9999943,-14.09445)">
<g
transform="translate(1.2516975e-5,-308.26769)"
id="g3657">
<rect
ry="4.999999"
rx="5"
y="323.34317"
x="530.98096"
height="528.03802"
width="158.03801"
id="rect7705-0-8"
style="fill:#e0e0e0;fill-opacity:1;stroke:#000000;stroke-width:1.96199989;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" />
<text
sodipodi:linespacing="125%"
id="text7739-1-5"
y="342.36218"
x="610"
style="font-size:12px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
xml:space="preserve"><tspan
style="font-size:16px;text-align:center;text-anchor:middle"
y="342.36218"
x="610"
id="tspan7741-9-9"
sodipodi:role="line">Compute Node</tspan><tspan
style="font-size:14px;font-style:oblique;text-align:center;text-anchor:middle;-inkscape-font-specification:Sans Oblique"
id="tspan7743-5-4"
y="360.73312"
x="610"
sodipodi:role="line">compute1</tspan></text>
</g>
<g
transform="translate(1.2516975e-5,-308.26769)"
id="g3602">
<rect
ry="4.9999986"
rx="5"
y="323.34314"
x="350.98099"
height="528.03796"
width="158.03801"
id="rect7705-0"
style="fill:#e0e0e0;fill-opacity:1;stroke:#000000;stroke-width:1.96199977;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" />
<text
sodipodi:linespacing="125%"
id="text7739-1"
y="342.36215"
x="429.99997"
style="font-size:12px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
xml:space="preserve"><tspan
style="font-size:16px;text-align:center;text-anchor:middle"
y="342.36215"
x="429.99997"
id="tspan7741-9"
sodipodi:role="line">Network Node</tspan><tspan
style="font-size:14px;font-style:oblique;text-align:center;text-anchor:middle;-inkscape-font-specification:Sans Oblique"
id="tspan7743-5"
y="360.73309"
x="429.99997"
sodipodi:role="line">network</tspan></text>
</g>
<g
transform="translate(1.2516975e-5,-308.26769)"
id="g3548">
<rect
ry="4.9999995"
rx="5"
y="323.34317"
x="10.980982"
height="528.03802"
width="318.03802"
id="rect7705"
style="fill:#e0e0e0;fill-opacity:1;stroke:#000000;stroke-width:1.96200001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" />
<text
sodipodi:linespacing="125%"
id="text7739"
y="342.36218"
x="170"
style="font-size:12px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
xml:space="preserve"><tspan
style="font-size:16px;text-align:center;text-anchor:middle"
y="342.36218"
x="170"
id="tspan7741"
sodipodi:role="line">Controller Node</tspan><tspan
style="font-size:14px;font-style:oblique;text-align:center;text-anchor:middle;-inkscape-font-specification:Sans Oblique"
id="tspan7743"
y="360.73312"
x="170"
sodipodi:role="line">controller</tspan></text>
</g>
<rect
style="fill:#606060;fill-opacity:1;stroke:#000000;stroke-width:1.96200013;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
id="rect7939-2"
width="138.03801"
height="268.03799"
x="182.146"
y="155.0755"
rx="5"
ry="4.999999" />
<g
transform="translate(1.2516975e-5,-308.26769)"
id="g3554">
<rect
ry="4.9999995"
rx="5.0000005"
y="373.34317"
x="20.980988"
height="68.025177"
width="298.03802"
id="rect9004"
style="fill:#606060;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.96200013;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" />
<rect
ry="5"
rx="5.0000005"
y="392.94467"
x="30.582485"
height="40"
width="118.835"
id="rect7725-7-6-5"
style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1.16499996;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" />
<text
sodipodi:linespacing="125%"
id="text7727-7-2-7"
y="412.36218"
x="89.999985"
style="font-size:12px;font-style:normal;font-weight:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
xml:space="preserve"><tspan
style="font-size:14px"
y="412.36218"
x="89.999985"
id="tspan7729-1-3-4"
sodipodi:role="line">Database</tspan><tspan
style="font-size:12px;font-style:oblique;-inkscape-font-specification:Sans Oblique"
id="tspan7731-2-8-7"
y="428.22711"
x="89.999985"
sodipodi:role="line">MySQL or MariaDB</tspan></text>
<rect
ry="5"
rx="5.0000005"
y="392.94467"
x="190.58249"
height="40"
width="118.835"
id="rect7725-7-6-5-3"
style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1.16499996;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" />
<text
sodipodi:linespacing="125%"
id="text7727-7-2-7-4"
y="412.36218"
x="249.99997"
style="font-size:12px;font-style:normal;font-weight:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
xml:space="preserve"><tspan
style="font-size:14px;font-style:normal;-inkscape-font-specification:Sans Oblique"
id="tspan7731-2-8-7-8"
y="412.36218"
x="249.99997"
sodipodi:role="line">Message Broker</tspan><tspan
id="tspan9002"
style="font-size:12px;font-style:oblique;-inkscape-font-specification:Sans Oblique"
y="428.22711"
x="249.99997"
sodipodi:role="line">RabbitMQ or Qpid</tspan></text>
<text
sodipodi:linespacing="125%"
id="text9036"
y="386.50281"
x="98.292946"
style="font-size:12px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
xml:space="preserve"><tspan
style="font-size:16px;fill:#ffffff;fill-opacity:1"
y="386.50281"
x="98.292946"
id="tspan9038"
sodipodi:role="line">Supporting Services</tspan></text>
</g>
<g
transform="translate(1.2516975e-5,-308.26769)"
id="g3567">
<rect
ry="4.9999995"
rx="5"
y="462.17822"
x="20.980995"
height="289.203"
width="138.03799"
id="rect7939"
style="fill:#606060;fill-opacity:1;stroke:#000000;stroke-width:1.96200013;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" />
<rect
ry="5"
rx="5"
y="581.77966"
x="30.582497"
height="40"
width="118.835"
id="rect7725-7-0"
style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1.16499996;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" />
<text
sodipodi:linespacing="125%"
id="text7727-7-4"
y="602.36218"
x="89.999985"
style="font-size:12px;font-style:normal;font-weight:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
xml:space="preserve"><tspan
style="font-size:14px"
y="602.36218"
x="89.999985"
id="tspan7729-1-9"
sodipodi:role="line">Compute</tspan><tspan
style="font-size:12px;font-style:oblique;-inkscape-font-specification:Sans Oblique"
id="tspan7731-2-4"
y="618.22711"
x="89.999985"
sodipodi:role="line">Nova Management</tspan></text>
<rect
ry="5"
rx="5"
y="631.77972"
x="30.582497"
height="58.834942"
width="118.835"
id="rect7725-7-0-0"
style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1.16499996;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" />
<text
sodipodi:linespacing="125%"
id="text7727-7-4-3"
y="652.36224"
x="89.999985"
style="font-size:12px;font-style:normal;font-weight:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
xml:space="preserve"><tspan
style="font-size:14px"
y="652.36224"
x="89.999985"
id="tspan7729-1-9-6"
sodipodi:role="line">Networking</tspan><tspan
style="font-size:12px;font-style:oblique;-inkscape-font-specification:Sans Oblique"
id="tspan7731-2-4-2"
y="668.22717"
x="89.999985"
sodipodi:role="line">Neutron Server</tspan><tspan
style="font-size:12px;font-style:oblique;-inkscape-font-specification:Sans Oblique"
y="683.22717"
x="89.999985"
sodipodi:role="line"
id="tspan8066">ML2 Plug-In</tspan></text>
<rect
ry="5"
rx="5"
y="531.77966"
x="30.582497"
height="40"
width="118.835"
id="rect7725-7"
style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1.16499996;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" />
<text
sodipodi:linespacing="125%"
id="text7727-7"
y="552.36218"
x="89.999985"
style="font-size:12px;font-style:normal;font-weight:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
xml:space="preserve"><tspan
style="font-size:14px"
y="552.36218"
x="89.999985"
id="tspan7729-1"
sodipodi:role="line">Image Service</tspan><tspan
style="font-size:12px;font-style:oblique;-inkscape-font-specification:Sans Oblique"
id="tspan7731-2"
y="568.22711"
x="89.999985"
sodipodi:role="line">Glance</tspan></text>
<rect
ry="5"
rx="5.0000005"
y="481.77966"
x="30.582497"
height="40"
width="118.835"
id="rect7725-7-6"
style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1.16499996;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" />
<text
sodipodi:linespacing="125%"
id="text7727-7-2"
y="502.34937"
x="89.999977"
style="font-size:12px;font-style:normal;font-weight:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
xml:space="preserve"><tspan
style="font-size:14px"
y="502.34937"
x="89.999977"
id="tspan7729-1-3"
sodipodi:role="line">Identity</tspan><tspan
style="font-size:12px;font-style:oblique;-inkscape-font-specification:Sans Oblique"
id="tspan7731-2-8"
y="518.21429"
x="89.999977"
sodipodi:role="line">Keystone</tspan></text>
<rect
ry="5"
rx="5"
y="701.19714"
x="30.582497"
height="40"
width="118.83499"
id="rect7725-7-0-0-5-2"
style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1.16499996;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" />
<text
sodipodi:linespacing="125%"
id="text7727-7-4-3-8-7"
y="721.77966"
x="89.417488"
style="font-size:12px;font-style:normal;font-weight:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
xml:space="preserve"><tspan
style="font-size:14px"
y="721.77966"
x="89.417488"
id="tspan7729-1-9-6-8-5"
sodipodi:role="line">Dashboard</tspan><tspan
style="font-size:12px;font-style:oblique;-inkscape-font-specification:Sans Oblique"
id="tspan7731-2-4-2-1-7"
y="737.64459"
x="89.417488"
sodipodi:role="line">Horizon</tspan></text>
<text
sodipodi:linespacing="125%"
id="text8032"
y="478.08875"
x="37.222656"
style="font-size:12px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
xml:space="preserve"><tspan
style="font-size:16px;fill:#ffffff;fill-opacity:1"
y="478.08875"
x="37.222656"
id="tspan8034"
sodipodi:role="line">Basic Services</tspan></text>
</g>
<text
xml:space="preserve"
style="font-size:12px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
x="187.18752"
y="168.33278"
id="text8032-9"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
id="tspan8034-2"
x="187.18752"
y="168.33278"
style="font-size:16px;fill:#ffffff;fill-opacity:1">Optional Services</tspan></text>
<rect
style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1.16499996;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
id="rect7725-7-6-2"
width="118.835"
height="40"
x="191.74751"
y="173.51198"
rx="5"
ry="5" />
<text
xml:space="preserve"
style="font-size:12px;font-style:normal;font-weight:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
x="250.00002"
y="194.0945"
id="text7727-7-2-0"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
id="tspan7729-1-3-5"
x="250.00002"
y="194.0945"
style="font-size:14px">Block Storage</tspan><tspan
sodipodi:role="line"
x="250.00002"
y="209.95941"
id="tspan7731-2-8-5"
style="font-size:12px;font-style:oblique;-inkscape-font-specification:Sans Oblique">Cinder Management</tspan></text>
<rect
style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1.16499996;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
id="rect7725-7-6-2-7"
width="118.835"
height="40"
x="191.74751"
y="223.51198"
rx="5"
ry="5" />
<text
xml:space="preserve"
style="font-size:12px;font-style:normal;font-weight:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
x="249.99998"
y="244.0945"
id="text7727-7-2-0-6"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
id="tspan7729-1-3-5-7"
x="249.99998"
y="244.0945"
style="font-size:14px">Object Storage</tspan><tspan
sodipodi:role="line"
x="249.99998"
y="259.95941"
id="tspan7731-2-8-5-8"
style="font-size:12px;font-style:oblique;-inkscape-font-specification:Sans Oblique">Swift Proxy</tspan></text>
<rect
style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1.16499996;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
id="rect7725-7-0-0-5-2-2"
width="118.835"
height="40"
x="191.74751"
y="323.51199"
rx="5"
ry="5" />
<text
xml:space="preserve"
style="font-size:12px;font-style:normal;font-weight:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
x="251.16502"
y="344.09451"
id="text7727-7-4-3-8-7-7"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
id="tspan7729-1-9-6-8-5-8"
x="251.16502"
y="344.09451"
style="font-size:14px">Orchestration</tspan><tspan
sodipodi:role="line"
x="251.16502"
y="359.95944"
id="tspan7731-2-4-2-1-7-0"
style="font-size:12px;font-style:oblique;-inkscape-font-specification:Sans Oblique">Heat</tspan></text>
<rect
style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1.16499996;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
id="rect7725-7-0-0-5-2-2-8"
width="118.835"
height="40"
x="191.74751"
y="374.67703"
rx="5"
ry="5" />
<text
xml:space="preserve"
style="font-size:12px;font-style:normal;font-weight:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
x="251.16502"
y="395.25955"
id="text7727-7-4-3-8-7-7-1"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
id="tspan7729-1-9-6-8-5-8-6"
x="251.16502"
y="395.25955"
style="font-size:14px">Telemetry</tspan><tspan
sodipodi:role="line"
x="251.16502"
y="411.12448"
id="tspan7731-2-4-2-1-7-0-0"
style="font-size:12px;font-style:oblique;-inkscape-font-specification:Sans Oblique">Ceilometer Core</tspan></text>
<rect
style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1.16499996;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
id="rect7725-7-0-0-5-2-2-5"
width="118.83501"
height="40"
x="191.74751"
y="274.67697"
rx="5"
ry="5" />
<text
xml:space="preserve"
style="font-size:12px;font-style:normal;font-weight:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
x="251.16502"
y="295.25955"
id="text7727-7-4-3-8-7-7-8"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
id="tspan7729-1-9-6-8-5-8-9"
x="251.16502"
y="295.25955"
style="font-size:14px">Database Service</tspan><tspan
sodipodi:role="line"
x="251.16502"
y="311.12448"
id="tspan7731-2-4-2-1-7-0-00"
style="font-size:12px;font-style:oblique;-inkscape-font-specification:Sans Oblique">Trove Management</tspan></text>
<g
transform="translate(1.2516975e-5,-308.26769)"
id="g3593">
<rect
ry="4.9999995"
rx="5"
y="773.3432"
x="100.981"
height="68.037994"
width="138.03799"
id="rect8524"
style="fill:#606060;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.96200013;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" />
<rect
ry="5"
rx="5"
y="791.77966"
x="110.5825"
height="40"
width="118.835"
id="rect7725-7-0-0-5-1"
style="fill:#c00000;fill-opacity:1;stroke:#000000;stroke-width:1.16499996;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" />
<text
sodipodi:linespacing="125%"
id="text7727-7-4-3-8-4"
y="812.36218"
x="170"
style="font-size:12px;font-style:normal;font-weight:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
xml:space="preserve"><tspan
style="font-size:12px;font-style:oblique;fill:#ffffff;-inkscape-font-specification:Sans Oblique"
id="tspan7731-2-4-2-1-8"
y="812.36218"
x="171.94141"
sodipodi:role="line"><tspan
id="tspan3127"
style="font-size:14px;font-style:normal;fill:#ffffff">1: Management </tspan></tspan><tspan
style="font-size:12px;font-style:oblique;fill:#ffffff;-inkscape-font-specification:Sans Oblique"
y="828.22711"
x="170"
sodipodi:role="line"
id="tspan3129">10.0.0.11/24</tspan></text>
<text
sodipodi:linespacing="125%"
id="text8526"
y="788.09265"
x="102.98046"
style="font-size:12px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
xml:space="preserve"><tspan
style="font-size:16px;fill:#ffffff;fill-opacity:1"
y="788.09265"
x="102.98046"
id="tspan8528"
sodipodi:role="line">Network Interfaces</tspan></text>
</g>
<g
transform="translate(1.2516975e-5,-308.26769)"
id="g3608">
<rect
ry="4.999999"
rx="5"
y="373.34317"
x="360.98099"
height="119.20304"
width="138.03801"
id="rect7939-2-2"
style="fill:#606060;fill-opacity:1;stroke:#000000;stroke-width:1.96200013;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" />
<rect
ry="5"
rx="5"
y="394.10971"
x="370.58249"
height="91.165047"
width="118.835"
id="rect7725-7-6-2-2"
style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1.16499996;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" />
<text
sodipodi:linespacing="125%"
id="text7727-7-2-0-1"
y="412.36218"
x="428.83493"
style="font-size:12px;font-style:normal;font-weight:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
xml:space="preserve"><tspan
style="font-size:14px"
y="412.36218"
x="428.83493"
id="tspan7729-1-3-5-4"
sodipodi:role="line">Networking</tspan><tspan
style="font-size:12px;font-style:oblique;-inkscape-font-specification:Sans Oblique"
id="tspan7731-2-8-5-86"
y="428.22711"
x="428.83493"
sodipodi:role="line">ML2 Plug-In</tspan><tspan
id="tspan8860"
style="font-size:12px;font-style:oblique;-inkscape-font-specification:Sans Oblique"
y="443.22711"
x="428.83493"
sodipodi:role="line">Layer 2 Agent (OVS)</tspan><tspan
id="tspan8862"
style="font-size:12px;font-style:oblique;-inkscape-font-specification:Sans Oblique"
y="458.22711"
x="428.83493"
sodipodi:role="line">Layer 3 Agent</tspan><tspan
id="tspan8864"
style="font-size:12px;font-style:oblique;-inkscape-font-specification:Sans Oblique"
y="473.22711"
x="428.83493"
sodipodi:role="line">DHCP Agent</tspan></text>
<text
sodipodi:linespacing="125%"
id="text7739-1-31"
y="388.08875"
x="429.72266"
style="font-size:12px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
xml:space="preserve"><tspan
style="font-size:16px;font-style:normal;text-align:center;text-anchor:middle;fill:#ffffff;fill-opacity:1;-inkscape-font-specification:Sans Oblique"
id="tspan7743-5-8"
y="388.08875"
x="429.72266"
sodipodi:role="line">Basic Services</tspan></text>
</g>
<g
transform="translate(1.2516975e-5,-308.26769)"
id="g3634">
<rect
ry="4.9999995"
rx="5"
y="671.38116"
x="360.98099"
height="169.99995"
width="138.03799"
id="rect8524-1"
style="fill:#606060;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.96200001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" />
<rect
ry="5"
rx="5"
y="691.7796"
x="370.58249"
height="40"
width="118.835"
id="rect7725-7-0-0-5-1-4"
style="fill:#c00000;fill-opacity:1;stroke:#000000;stroke-width:1.16499996;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" />
<text
sodipodi:linespacing="125%"
id="text7727-7-4-3-8-4-9"
y="712.36212"
x="429.99997"
style="font-size:12px;font-style:normal;font-weight:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
xml:space="preserve"><tspan
style="font-size:12px;font-style:oblique;fill:#ffffff;-inkscape-font-specification:Sans Oblique"
id="tspan7731-2-4-2-1-8-0"
y="712.36212"
x="429.99997"
sodipodi:role="line"><tspan
id="tspan3131"
style="font-size:14px;font-style:normal;fill:#ffffff">1: Management</tspan></tspan><tspan
style="font-size:12px;font-style:oblique;fill:#ffffff;-inkscape-font-specification:Sans Oblique"
y="728.22705"
x="429.99997"
sodipodi:role="line"
id="tspan3133">10.0.0.21/24</tspan></text>
<text
sodipodi:linespacing="125%"
id="text8526-3"
y="688.09259"
x="362.98044"
style="font-size:12px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
xml:space="preserve"><tspan
style="font-size:16px;fill:#ffffff;fill-opacity:1"
y="688.09259"
x="362.98044"
id="tspan8528-0"
sodipodi:role="line">Network Interfaces</tspan></text>
<rect
ry="5"
rx="5"
y="741.7796"
x="370.58249"
height="40"
width="118.835"
id="rect7725-7-0-0-5-1-4-7"
style="fill:#00c000;fill-opacity:1;stroke:#000000;stroke-width:1.16499996;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" />
<rect
ry="5"
rx="5"
y="791.7796"
x="370.58249"
height="40"
width="118.835"
id="rect7725-7-0-0-5-1-4-7-6"
style="fill:#0000c0;fill-opacity:1;stroke:#000000;stroke-width:1.16499996;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" />
<text
sodipodi:linespacing="125%"
id="text7727-7-4-3-8-4-9-6"
y="812.36212"
x="429.99997"
style="font-size:12px;font-style:normal;font-weight:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#ffffff;fill-opacity:1;stroke:none;font-family:Sans"
xml:space="preserve"><tspan
style="font-size:12px;font-style:oblique;fill:#ffffff;fill-opacity:1;-inkscape-font-specification:Sans Oblique"
id="tspan7731-2-4-2-1-8-0-4"
y="812.36212"
x="429.99997"
sodipodi:role="line"><tspan
id="tspan3139"
style="font-size:14px;font-style:normal;fill:#ffffff;fill-opacity:1">3: External</tspan></tspan><tspan
style="font-size:12px;font-style:oblique;fill:#ffffff;fill-opacity:1;-inkscape-font-specification:Sans Oblique"
y="828.22705"
x="429.99997"
sodipodi:role="line"
id="tspan3141">(unnumbered)</tspan></text>
<text
sodipodi:linespacing="125%"
id="text7727-7-4-3-8-4-9-7"
y="762.36212"
x="429.99997"
style="font-size:12px;font-style:normal;font-weight:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
xml:space="preserve"><tspan
style="font-size:13px;font-style:normal;fill:#ffffff;-inkscape-font-specification:Sans Oblique"
id="tspan7731-2-4-2-1-8-0-3"
y="762.36212"
x="429.99997"
sodipodi:role="line">2: Instance Tunnels</tspan><tspan
style="font-size:12px;font-style:oblique;fill:#ffffff;-inkscape-font-specification:Sans Oblique"
y="778.22705"
x="429.99997"
sodipodi:role="line"
id="tspan3137">10.0.1.21/24</tspan></text>
</g>
<g
transform="translate(1.2516975e-5,-308.26769)"
id="g3678">
<rect
ry="4.999999"
rx="5"
y="553.3432"
x="540.98096"
height="68.037971"
width="138.03801"
id="rect7939-2-2-7"
style="fill:#606060;fill-opacity:1;stroke:#000000;stroke-width:1.96200001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" />
<text
sodipodi:linespacing="125%"
id="text7739-1-31-2"
y="568.08875"
x="609.72266"
style="font-size:12px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
xml:space="preserve"><tspan
style="font-size:16px;font-style:normal;text-align:center;text-anchor:middle;fill:#ffffff;fill-opacity:1;-inkscape-font-specification:Sans Oblique"
id="tspan7743-5-8-6"
y="568.08875"
x="609.72266"
sodipodi:role="line">Optional Services</tspan></text>
<rect
ry="5"
rx="5"
y="572.9447"
x="550.58252"
height="38.834995"
width="118.835"
id="rect7725-7-6-2-2-1"
style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1.16499996;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" />
<text
sodipodi:linespacing="125%"
id="text7352"
y="592.36218"
x="610"
style="font-size:12px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
xml:space="preserve"><tspan
style="font-size:14px;text-align:center;text-anchor:middle"
y="592.36218"
x="610"
id="tspan7354"
sodipodi:role="line">Telemetry</tspan><tspan
style="font-style:oblique;text-align:center;text-anchor:middle;-inkscape-font-specification:Sans Oblique"
id="tspan7356"
y="608.22711"
x="610"
sodipodi:role="line">Ceilometer Agent</tspan></text>
</g>
<g
transform="translate(1.2516975e-5,-308.26769)"
id="g3687">
<rect
ry="4.9999995"
rx="5"
y="721.38123"
x="540.98096"
height="119.99995"
width="138.03799"
id="rect8524-1-9"
style="fill:#606060;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.96200001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" />
<rect
ry="5"
rx="5"
y="741.77966"
x="550.58252"
height="40"
width="118.835"
id="rect7725-7-0-0-5-1-4-3"
style="fill:#c00000;fill-opacity:1;stroke:#000000;stroke-width:1.16499996;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" />
<text
sodipodi:linespacing="125%"
id="text7727-7-4-3-8-4-9-1"
y="762.36218"
x="610"
style="font-size:12px;font-style:normal;font-weight:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
xml:space="preserve"><tspan
style="font-size:12px;font-style:oblique;fill:#ffffff;-inkscape-font-specification:Sans Oblique"
id="tspan7731-2-4-2-1-8-0-9"
y="762.36218"
x="610"
sodipodi:role="line"><tspan
id="tspan3143"
style="font-size:14px;font-style:normal;fill:#ffffff">1: Management</tspan></tspan><tspan
style="font-size:12px;font-style:oblique;fill:#ffffff;-inkscape-font-specification:Sans Oblique"
y="778.22711"
x="610"
sodipodi:role="line"
id="tspan3145">10.0.0.31/24</tspan></text>
<rect
ry="5"
rx="5"
y="791.77966"
x="550.58252"
height="40"
width="118.835"
id="rect7725-7-0-0-5-1-4-7-5"
style="fill:#00c000;fill-opacity:1;stroke:#000000;stroke-width:1.16499996;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" />
<text
sodipodi:linespacing="125%"
id="text7727-7-4-3-8-4-9-7-5"
y="812.36218"
x="610"
style="font-size:12px;font-style:normal;font-weight:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
xml:space="preserve"><tspan
style="font-size:13px;font-style:normal;fill:#ffffff;-inkscape-font-specification:Sans Oblique"
id="tspan7731-2-4-2-1-8-0-3-0"
y="812.36218"
x="610"
sodipodi:role="line">2: Instance Tunnels</tspan><tspan
style="font-size:12px;font-style:oblique;fill:#ffffff;-inkscape-font-specification:Sans Oblique"
y="828.22711"
x="610"
sodipodi:role="line"
id="tspan3149">10.0.1.31/24</tspan></text>
<text
sodipodi:linespacing="125%"
id="text8526-3-9"
y="738.09265"
x="542.98047"
style="font-size:12px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
xml:space="preserve"><tspan
style="font-size:16px;fill:#ffffff;fill-opacity:1"
y="738.09265"
x="542.98047"
id="tspan8528-0-5"
sodipodi:role="line">Network Interfaces</tspan></text>
</g>
<g
transform="translate(1.2516975e-5,-308.26769)"
id="g3663">
<rect
ry="4.999999"
rx="5"
y="373.34317"
x="540.98096"
height="159.20305"
width="138.03801"
id="rect7939-2-2-1"
style="fill:#606060;fill-opacity:1;stroke:#000000;stroke-width:1.96200013;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" />
<rect
ry="5"
rx="5"
y="392.94467"
x="550.58252"
height="61.165047"
width="118.835"
id="rect7725-7-6-2-2-5"
style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1.16499996;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" />
<text
sodipodi:linespacing="125%"
id="text7727-7-2-0-1-2"
y="412.36218"
x="610"
style="font-size:12px;font-style:normal;font-weight:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
xml:space="preserve"><tspan
style="font-size:14px"
y="412.36218"
x="610"
id="tspan7729-1-3-5-4-3"
sodipodi:role="line">Compute</tspan><tspan
style="font-size:12px;font-style:oblique;-inkscape-font-specification:Sans Oblique"
id="tspan7731-2-8-5-86-2"
y="428.22711"
x="610"
sodipodi:role="line">Nova Hypervisor</tspan><tspan
id="tspan8864-6"
style="font-size:12px;font-style:oblique;-inkscape-font-specification:Sans Oblique"
y="443.22711"
x="610"
sodipodi:role="line">KVM or QEMU</tspan></text>
<rect
ry="5"
rx="5"
y="462.94467"
x="550.58252"
height="61.165047"
width="118.835"
id="rect7725-7-6-2-2-6"
style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1.16499996;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" />
<text
sodipodi:linespacing="125%"
id="text7727-7-2-0-1-2-2"
y="482.36218"
x="610"
style="font-size:12px;font-style:normal;font-weight:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
xml:space="preserve"><tspan
style="font-size:14px"
y="482.36218"
x="610"
id="tspan7729-1-3-5-4-3-9"
sodipodi:role="line">Networking</tspan><tspan
style="font-size:12px;font-style:oblique;-inkscape-font-specification:Sans Oblique"
id="tspan7731-2-8-5-86-2-0"
y="498.22711"
x="610"
sodipodi:role="line">ML2 Plug-In</tspan><tspan
id="tspan8864-6-4"
style="font-size:12px;font-style:oblique;-inkscape-font-specification:Sans Oblique"
y="513.22711"
x="610"
sodipodi:role="line">Layer 2 Agent (OVS)</tspan></text>
<text
sodipodi:linespacing="125%"
id="text7739-1-31-8"
y="388.08875"
x="609.72266"
style="font-size:12px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
xml:space="preserve"><tspan
style="font-size:16px;font-style:normal;text-align:center;text-anchor:middle;fill:#ffffff;fill-opacity:1;-inkscape-font-specification:Sans Oblique"
id="tspan7743-5-8-2"
y="388.08875"
x="609.72266"
sodipodi:role="line">Basic Services</tspan></text>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 42 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 42 KiB

View File

@ -1,737 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="500.00003"
height="530"
id="svg2"
version="1.1"
inkscape:version="0.48.4 r9939"
sodipodi:docname="installguide_arch-nova.svg">
<defs
id="defs4" />
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="1.01"
inkscape:cx="292.46304"
inkscape:cy="269.03294"
inkscape:document-units="px"
inkscape:current-layer="layer1"
showgrid="true"
inkscape:snap-global="true"
showguides="true"
inkscape:snap-bbox="true"
inkscape:snap-bbox-midpoints="false"
inkscape:window-width="1366"
inkscape:window-height="746"
inkscape:window-x="-8"
inkscape:window-y="-8"
inkscape:window-maximized="1"
inkscape:snap-nodes="false"
inkscape:bbox-nodes="true"
inkscape:bbox-paths="true"
inkscape:snap-bbox-edge-midpoints="false"
fit-margin-top="0"
fit-margin-left="0"
fit-margin-right="0"
fit-margin-bottom="0">
<inkscape:grid
type="xygrid"
id="grid3755"
empspacing="5"
visible="true"
enabled="true"
snapvisiblegridlinesonly="true"
dotted="false"
originx="-9.9999837px"
originy="-198.83497px" />
</sodipodi:namedview>
<metadata
id="metadata7">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title />
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(-9.9999837,-323.52718)">
<g
id="g3781">
<rect
ry="4.999999"
rx="5"
y="324.50818"
x="350.98102"
height="528.03802"
width="158.03801"
id="rect7705-0-8"
style="fill:#e0e0e0;fill-opacity:1;stroke:#000000;stroke-width:1.96199989;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" />
<text
sodipodi:linespacing="125%"
id="text7739-1-5"
y="343.52719"
x="430"
style="font-size:12px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
xml:space="preserve"><tspan
style="font-size:16px;text-align:center;text-anchor:middle"
y="343.52719"
x="430"
id="tspan7741-9-9"
sodipodi:role="line">Compute Node</tspan><tspan
style="font-size:14px;font-style:oblique;text-align:center;text-anchor:middle;-inkscape-font-specification:Sans Oblique"
id="tspan7743-5-4"
y="361.89813"
x="430"
sodipodi:role="line">compute1</tspan></text>
</g>
<g
id="g3706">
<rect
ry="4.9999995"
rx="5"
y="324.50818"
x="10.980984"
height="528.03802"
width="318.03802"
id="rect7705"
style="fill:#e0e0e0;fill-opacity:1;stroke:#000000;stroke-width:1.96200001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" />
</g>
<text
xml:space="preserve"
style="font-size:12px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
x="170"
y="343.52719"
id="text7739"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
id="tspan7741"
x="170"
y="343.52719"
style="font-size:16px;text-align:center;text-anchor:middle">Controller Node</tspan><tspan
sodipodi:role="line"
x="170"
y="361.89813"
id="tspan7743"
style="font-size:14px;font-style:oblique;text-align:center;text-anchor:middle;-inkscape-font-specification:Sans Oblique">controller</tspan></text>
<g
id="g3237">
<rect
ry="4.999999"
rx="5"
y="374.50818"
x="360.98102"
height="98.038002"
width="138.03801"
id="rect7939-2-2-1"
style="fill:#606060;fill-opacity:1;stroke:#000000;stroke-width:1.96200013;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" />
<rect
ry="5"
rx="5"
y="394.10968"
x="370.58252"
height="68.834999"
width="118.835"
id="rect7725-7-6-2-2-5"
style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1.16499996;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" />
<text
sodipodi:linespacing="125%"
id="text7727-7-2-0-1-2"
y="413.52719"
x="430"
style="font-size:12px;font-style:normal;font-weight:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
xml:space="preserve"><tspan
style="font-size:14px"
y="413.52719"
x="430"
id="tspan7729-1-3-5-4-3"
sodipodi:role="line">Compute</tspan><tspan
style="font-size:12px;font-style:oblique;-inkscape-font-specification:Sans Oblique"
id="tspan7731-2-8-5-86-2"
y="429.39212"
x="430"
sodipodi:role="line">Nova Hypervisor</tspan><tspan
id="tspan3925"
style="font-size:12px;font-style:oblique;-inkscape-font-specification:Sans Oblique"
y="444.39212"
x="430"
sodipodi:role="line">KVM or QEMU</tspan><tspan
id="tspan8864-6"
style="font-size:12px;font-style:oblique;-inkscape-font-specification:Sans Oblique"
y="459.39212"
x="430"
sodipodi:role="line">Nova Networking</tspan></text>
<text
sodipodi:linespacing="125%"
id="text7739-1-31-8"
y="388.08871"
x="429.72266"
style="font-size:12px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
xml:space="preserve"><tspan
style="font-size:16px;font-style:normal;text-align:center;text-anchor:middle;fill:#ffffff;fill-opacity:1;-inkscape-font-specification:Sans Oblique"
id="tspan7743-5-8-2"
y="388.08871"
x="429.72266"
sodipodi:role="line">Basic Services</tspan></text>
</g>
<g
id="g3228">
<rect
ry="4.999999"
rx="5"
y="494.50818"
x="360.98099"
height="68.037971"
width="138.03801"
id="rect7939-2-2-7"
style="fill:#606060;fill-opacity:1;stroke:#000000;stroke-width:1.96200001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" />
<rect
ry="5"
rx="5"
y="514.10968"
x="370.58249"
height="38.834995"
width="118.835"
id="rect7725-7-6-2-2-1"
style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1.16499996;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" />
<text
sodipodi:linespacing="125%"
id="text7352"
y="533.52716"
x="430"
style="font-size:12px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
xml:space="preserve"><tspan
style="font-size:14px;text-align:center;text-anchor:middle"
y="533.52716"
x="430"
id="tspan7354"
sodipodi:role="line">Telemetry</tspan><tspan
style="font-style:oblique;text-align:center;text-anchor:middle;-inkscape-font-specification:Sans Oblique"
id="tspan7356"
y="549.39209"
x="430"
sodipodi:role="line">Ceilometer Agent</tspan></text>
<text
sodipodi:linespacing="125%"
id="text7739-1-31-2"
y="509.25372"
x="429.72266"
style="font-size:12px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
xml:space="preserve"><tspan
style="font-size:16px;font-style:normal;text-align:center;text-anchor:middle;fill:#ffffff;fill-opacity:1;-inkscape-font-specification:Sans Oblique"
id="tspan7743-5-8-6"
y="509.25372"
x="429.72266"
sodipodi:role="line">Optional Services</tspan></text>
</g>
<g
id="g3215">
<rect
ry="4.9999995"
rx="5"
y="722.5462"
x="360.98102"
height="119.99995"
width="138.03799"
id="rect8524-1-9"
style="fill:#606060;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.96200001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" />
<rect
ry="5"
rx="5"
y="742.94464"
x="370.58252"
height="40"
width="118.835"
id="rect7725-7-0-0-5-1-4-3"
style="fill:#c00000;fill-opacity:1;stroke:#000000;stroke-width:1.16499996;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" />
<text
sodipodi:linespacing="125%"
id="text7727-7-4-3-8-4-9-1"
y="763.52716"
x="430"
style="font-size:12px;font-style:normal;font-weight:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
xml:space="preserve"><tspan
style="font-size:12px;font-style:oblique;fill:#ffffff;-inkscape-font-specification:Sans Oblique"
id="tspan7731-2-4-2-1-8-0-9"
y="763.52716"
x="430"
sodipodi:role="line"><tspan
id="tspan3207"
style="font-size:14px;font-style:normal;fill:#ffffff">1: Management</tspan></tspan><tspan
style="font-size:12px;font-style:oblique;fill:#ffffff;-inkscape-font-specification:Sans Oblique"
y="779.39209"
x="430"
sodipodi:role="line"
id="tspan3209">10.0.0.31/24</tspan></text>
<rect
ry="5"
rx="5"
y="792.94464"
x="370.58252"
height="40"
width="118.835"
id="rect7725-7-0-0-5-1-4-7-5"
style="fill:#0000c0;fill-opacity:1;stroke:#000000;stroke-width:1.16499996;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" />
<text
sodipodi:linespacing="125%"
id="text7727-7-4-3-8-4-9-7-5"
y="813.52716"
x="430"
style="font-size:12px;font-style:normal;font-weight:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
xml:space="preserve"><tspan
style="font-size:12px;font-style:oblique;fill:#ffffff;fill-opacity:1;-inkscape-font-specification:Sans Oblique"
id="tspan7731-2-4-2-1-8-0-3-0"
y="813.52716"
x="430"
sodipodi:role="line"><tspan
id="tspan3199"
style="font-size:14px;font-style:normal;fill:#ffffff;fill-opacity:1">2: External</tspan></tspan><tspan
style="font-size:12px;font-style:oblique;fill:#ffffff;fill-opacity:1;-inkscape-font-specification:Sans Oblique"
y="829.39209"
x="430"
sodipodi:role="line"
id="tspan3201">(unnumbered)</tspan></text>
<text
sodipodi:linespacing="125%"
id="text8526-3-9"
y="739.25763"
x="362.98047"
style="font-size:12px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
xml:space="preserve"><tspan
style="font-size:16px;fill:#ffffff;fill-opacity:1"
y="739.25763"
x="362.98047"
id="tspan8528-0-5"
sodipodi:role="line">Network Interfaces</tspan></text>
</g>
<g
id="g3722">
<rect
ry="4.9999995"
rx="5"
y="463.34323"
x="20.980999"
height="218.03793"
width="138.03799"
id="rect7939"
style="fill:#606060;fill-opacity:1;stroke:#000000;stroke-width:1.96200013;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" />
<rect
ry="5"
rx="5"
y="582.9447"
x="30.5825"
height="40"
width="118.835"
id="rect7725-7-0"
style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1.16499996;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" />
<rect
ry="5"
rx="5"
y="532.9447"
x="30.5825"
height="40"
width="118.835"
id="rect7725-7"
style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1.16499996;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" />
<rect
ry="5"
rx="5.0000005"
y="482.94467"
x="30.5825"
height="40"
width="118.835"
id="rect7725-7-6"
style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1.16499996;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" />
<rect
ry="5"
rx="5"
y="631.77966"
x="30.582508"
height="40"
width="118.83499"
id="rect7725-7-0-0-5-2"
style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1.16499996;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" />
<text
sodipodi:linespacing="125%"
id="text7727-7-4"
y="603.52722"
x="89.999992"
style="font-size:12px;font-style:normal;font-weight:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
xml:space="preserve"><tspan
style="font-size:14px"
y="603.52722"
x="89.999992"
id="tspan7729-1-9"
sodipodi:role="line">Compute</tspan><tspan
style="font-size:12px;font-style:oblique;-inkscape-font-specification:Sans Oblique"
id="tspan7731-2-4"
y="619.39215"
x="89.999992"
sodipodi:role="line">Nova Management</tspan></text>
<text
sodipodi:linespacing="125%"
id="text7727-7"
y="553.52722"
x="89.999992"
style="font-size:12px;font-style:normal;font-weight:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
xml:space="preserve"><tspan
style="font-size:14px"
y="553.52722"
x="89.999992"
id="tspan7729-1"
sodipodi:role="line">Image Service</tspan><tspan
style="font-size:12px;font-style:oblique;-inkscape-font-specification:Sans Oblique"
id="tspan7731-2"
y="569.39215"
x="89.999992"
sodipodi:role="line">Glance</tspan></text>
<text
sodipodi:linespacing="125%"
id="text7727-7-2"
y="502.36215"
x="90"
style="font-size:12px;font-style:normal;font-weight:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
xml:space="preserve"><tspan
style="font-size:14px"
y="502.36215"
x="90"
id="tspan7729-1-3"
sodipodi:role="line">Identity</tspan><tspan
style="font-size:12px;font-style:oblique;-inkscape-font-specification:Sans Oblique"
id="tspan7731-2-8"
y="518.22705"
x="90"
sodipodi:role="line">Keystone</tspan></text>
<text
sodipodi:linespacing="125%"
id="text7727-7-4-3-8-7"
y="652.36218"
x="90"
style="font-size:12px;font-style:normal;font-weight:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
xml:space="preserve"><tspan
style="font-size:14px"
y="652.36218"
x="90"
id="tspan7729-1-9-6-8-5"
sodipodi:role="line">Dashboard</tspan><tspan
style="font-size:12px;font-style:oblique;-inkscape-font-specification:Sans Oblique"
id="tspan7731-2-4-2-1-7"
y="668.22711"
x="90"
sodipodi:role="line">Horizon</tspan></text>
<text
sodipodi:linespacing="125%"
id="text8032"
y="478.08871"
x="37.222656"
style="font-size:12px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
xml:space="preserve"><tspan
style="font-size:16px;fill:#ffffff;fill-opacity:1"
y="478.08871"
x="37.222656"
id="tspan8034"
sodipodi:role="line">Basic Services</tspan></text>
</g>
<g
id="g3743">
<rect
ry="4.999999"
rx="5"
y="464.50818"
x="182.146"
height="266.87299"
width="138.03801"
id="rect7939-2"
style="fill:#606060;fill-opacity:1;stroke:#000000;stroke-width:1.96200013;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" />
<rect
ry="5"
rx="5"
y="482.94467"
x="191.7475"
height="40"
width="118.835"
id="rect7725-7-6-2"
style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1.16499996;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" />
<rect
ry="5"
rx="5"
y="532.9447"
x="191.7475"
height="40"
width="118.835"
id="rect7725-7-6-2-7"
style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1.16499996;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" />
<rect
ry="5"
rx="5"
y="632.9447"
x="191.7475"
height="40"
width="118.835"
id="rect7725-7-0-0-5-2-2"
style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1.16499996;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" />
<rect
ry="5"
rx="5"
y="682.9447"
x="190.5825"
height="40"
width="118.835"
id="rect7725-7-0-0-5-2-2-8"
style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1.16499996;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" />
<rect
ry="5"
rx="5"
y="582.9447"
x="190.58249"
height="40"
width="118.83501"
id="rect7725-7-0-0-5-2-2-5"
style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1.16499996;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" />
<text
sodipodi:linespacing="125%"
id="text7727-7-2-0"
y="503.52719"
x="250"
style="font-size:12px;font-style:normal;font-weight:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
xml:space="preserve"><tspan
style="font-size:14px"
y="503.52719"
x="250"
id="tspan7729-1-3-5"
sodipodi:role="line">Block Storage</tspan><tspan
style="font-size:12px;font-style:oblique;-inkscape-font-specification:Sans Oblique"
id="tspan7731-2-8-5"
y="519.39209"
x="250"
sodipodi:role="line">Cinder Management</tspan></text>
<text
sodipodi:linespacing="125%"
id="text7727-7-2-0-6"
y="553.52722"
x="249.99998"
style="font-size:12px;font-style:normal;font-weight:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
xml:space="preserve"><tspan
style="font-size:14px"
y="553.52722"
x="249.99998"
id="tspan7729-1-3-5-7"
sodipodi:role="line">Object Storage</tspan><tspan
style="font-size:12px;font-style:oblique;-inkscape-font-specification:Sans Oblique"
id="tspan7731-2-8-5-8"
y="569.39215"
x="249.99998"
sodipodi:role="line">Swift Proxy</tspan></text>
<text
sodipodi:linespacing="125%"
id="text7727-7-4-3-8-7-7"
y="653.52722"
x="251.16501"
style="font-size:12px;font-style:normal;font-weight:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
xml:space="preserve"><tspan
style="font-size:14px"
y="653.52722"
x="251.16501"
id="tspan7729-1-9-6-8-5-8"
sodipodi:role="line">Orchestration</tspan><tspan
style="font-size:12px;font-style:oblique;-inkscape-font-specification:Sans Oblique"
id="tspan7731-2-4-2-1-7-0"
y="669.39215"
x="251.16501"
sodipodi:role="line">Heat</tspan></text>
<text
sodipodi:linespacing="125%"
id="text7727-7-4-3-8-7-7-1"
y="704.69226"
x="251.16501"
style="font-size:12px;font-style:normal;font-weight:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
xml:space="preserve"><tspan
style="font-size:14px"
y="704.69226"
x="251.16501"
id="tspan7729-1-9-6-8-5-8-6"
sodipodi:role="line">Telemetry</tspan><tspan
style="font-size:12px;font-style:oblique;-inkscape-font-specification:Sans Oblique"
id="tspan7731-2-4-2-1-7-0-0"
y="720.55719"
x="251.16501"
sodipodi:role="line">Ceilometer Core</tspan></text>
<text
sodipodi:linespacing="125%"
id="text7727-7-4-3-8-7-7-8"
y="602.36218"
x="250"
style="font-size:12px;font-style:normal;font-weight:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
xml:space="preserve"><tspan
style="font-size:14px"
y="602.36218"
x="250"
id="tspan7729-1-9-6-8-5-8-9"
sodipodi:role="line">Database Service</tspan><tspan
style="font-size:12px;font-style:oblique;-inkscape-font-specification:Sans Oblique"
id="tspan7731-2-4-2-1-7-0-00"
y="618.22711"
x="250"
sodipodi:role="line">Trove Management</tspan></text>
<text
sodipodi:linespacing="125%"
id="text8032-9"
y="477.76547"
x="188.35251"
style="font-size:12px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
xml:space="preserve"><tspan
style="font-size:16px;fill:#ffffff;fill-opacity:1"
y="477.76547"
x="188.35251"
id="tspan8034-2"
sodipodi:role="line">Optional Services</tspan></text>
</g>
<g
id="g3709">
<rect
ry="4.9999995"
rx="5.0000005"
y="374.50815"
x="20.980988"
height="66.873001"
width="298.03802"
id="rect9004"
style="fill:#606060;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.96200001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" />
<rect
ry="5"
rx="5.0000005"
y="392.94467"
x="30.582487"
height="40"
width="118.835"
id="rect7725-7-6-5"
style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1.16499996;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" />
<text
sodipodi:linespacing="125%"
id="text7727-7-2-7"
y="413.52719"
x="89.999985"
style="font-size:12px;font-style:normal;font-weight:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
xml:space="preserve"><tspan
style="font-size:14px"
y="413.52719"
x="89.999985"
id="tspan7729-1-3-4"
sodipodi:role="line">Database</tspan><tspan
style="font-size:12px;font-style:oblique;-inkscape-font-specification:Sans Oblique"
id="tspan7731-2-8-7"
y="429.39212"
x="89.999985"
sodipodi:role="line">MySQL or MariaDB</tspan></text>
<rect
ry="5"
rx="5.0000005"
y="394.10968"
x="190.58249"
height="40"
width="118.835"
id="rect7725-7-6-5-3"
style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1.16499996;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" />
<text
sodipodi:linespacing="125%"
id="text7727-7-2-7-4"
y="413.52719"
x="249.99998"
style="font-size:12px;font-style:normal;font-weight:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
xml:space="preserve"><tspan
style="font-size:14px;font-style:normal;-inkscape-font-specification:Sans Oblique"
id="tspan7731-2-8-7-8"
y="413.52719"
x="249.99998"
sodipodi:role="line">Message Broker</tspan><tspan
id="tspan9002"
style="font-size:12px;font-style:oblique;-inkscape-font-specification:Sans Oblique"
y="429.39212"
x="249.99998"
sodipodi:role="line">RabbitMQ or Qpid</tspan></text>
<text
sodipodi:linespacing="125%"
id="text9036"
y="386.50281"
x="98.292969"
style="font-size:12px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
xml:space="preserve"><tspan
style="font-size:16px;fill:#ffffff;fill-opacity:1"
y="386.50281"
x="98.292969"
id="tspan9038"
sodipodi:role="line">Supporting Services</tspan></text>
</g>
<g
id="g3768">
<rect
ry="4.9999995"
rx="5"
y="774.50824"
x="100.981"
height="68.037994"
width="138.03799"
id="rect8524"
style="fill:#606060;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.96200013;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" />
<rect
ry="5"
rx="5"
y="792.9447"
x="110.5825"
height="40"
width="118.835"
id="rect7725-7-0-0-5-1"
style="fill:#c00000;fill-opacity:1;stroke:#000000;stroke-width:1.16499996;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" />
<text
sodipodi:linespacing="125%"
id="text7727-7-4-3-8-4"
y="813.52722"
x="170"
style="font-size:12px;font-style:normal;font-weight:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
xml:space="preserve"><tspan
style="font-size:12px;font-style:oblique;fill:#ffffff;-inkscape-font-specification:Sans Oblique"
id="tspan7731-2-4-2-1-8"
y="813.52722"
x="170"
sodipodi:role="line"><tspan
id="tspan3203"
style="font-size:14px;font-style:normal;fill:#ffffff">1: Management</tspan></tspan><tspan
style="font-size:12px;font-style:oblique;fill:#ffffff;-inkscape-font-specification:Sans Oblique"
y="829.39215"
x="170"
sodipodi:role="line"
id="tspan3205">10.0.0.11/24</tspan></text>
<text
sodipodi:linespacing="125%"
id="text8526"
y="789.25769"
x="102.98046"
style="font-size:12px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
xml:space="preserve"><tspan
style="font-size:16px;fill:#ffffff;fill-opacity:1"
y="789.25769"
x="102.98046"
id="tspan8528"
sodipodi:role="line">Network Interfaces</tspan></text>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 31 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 48 KiB

View File

@ -1,622 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="340"
height="896.8075"
id="svg2"
version="1.1"
inkscape:version="0.48.4 r9939"
sodipodi:docname="installguide_neutron-initial-networks.svg">
<defs
id="defs4">
<marker
inkscape:stockid="Arrow1Mend"
orient="auto"
refY="0"
refX="0"
id="Arrow1Mend"
style="overflow:visible">
<path
id="path7091"
d="M 0,0 5,-5 -12.5,0 5,5 0,0 z"
style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt"
transform="matrix(-0.4,0,0,-0.4,-4,0)"
inkscape:connector-curvature="0" />
</marker>
<marker
inkscape:stockid="Arrow2Mend"
orient="auto"
refY="0"
refX="0"
id="Arrow2Mend"
style="overflow:visible">
<path
id="path7109"
style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round"
d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
transform="scale(-0.6,-0.6)"
inkscape:connector-curvature="0" />
</marker>
<marker
inkscape:stockid="Arrow2Lend"
orient="auto"
refY="0"
refX="0"
id="Arrow2Lend"
style="overflow:visible">
<path
id="path7103"
style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round"
d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
inkscape:connector-curvature="0" />
</marker>
<linearGradient
id="linearGradient6753">
<stop
id="stop6761"
offset="0"
style="stop-color:#80ff00;stop-opacity:1;" />
<stop
style="stop-color:#0080ff;stop-opacity:1;"
offset="1"
id="stop6757" />
</linearGradient>
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient6753"
id="linearGradient6759"
x1="157.56857"
y1="529.86218"
x2="253.43143"
y2="529.86218"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1,0,0,0.95000001,2.9780565,364.63374)" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient6753-8"
id="linearGradient6759-1"
x1="157.56857"
y1="529.86218"
x2="253.43143"
y2="529.86218"
gradientUnits="userSpaceOnUse"
gradientTransform="translate(0,175)" />
<linearGradient
id="linearGradient6753-8">
<stop
id="stop6761-9"
offset="0"
style="stop-color:#80ff00;stop-opacity:1;" />
<stop
style="stop-color:#0080ff;stop-opacity:1;"
offset="1"
id="stop6757-2" />
</linearGradient>
</defs>
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="1.16"
inkscape:cx="132.16466"
inkscape:cy="507.88406"
inkscape:document-units="px"
inkscape:current-layer="layer1"
showgrid="true"
inkscape:snap-bbox="true"
inkscape:snap-bbox-midpoints="false"
inkscape:snap-bbox-edge-midpoints="false"
inkscape:bbox-paths="false"
inkscape:bbox-nodes="false"
inkscape:snap-nodes="false"
inkscape:snap-global="true"
inkscape:window-width="1366"
inkscape:window-height="746"
inkscape:window-x="-8"
inkscape:window-y="-8"
inkscape:window-maximized="1"
fit-margin-top="0"
fit-margin-left="0"
fit-margin-right="0"
fit-margin-bottom="0">
<inkscape:grid
type="xygrid"
id="grid2985"
empspacing="5"
visible="true"
enabled="true"
snapvisiblegridlinesonly="true"
units="px"
spacingx="1px"
spacingy="1px"
originx="-29.999991px"
originy="-432.53907px"
dotted="false" />
</sodipodi:namedview>
<metadata
id="metadata7">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(-10,-11.375)">
<text
sodipodi:linespacing="125%"
x="515.35541"
y="458.09265"
id="text8526"
xml:space="preserve"
style="font-size:12px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"><tspan
x="515.35541"
y="458.09265"
id="tspan8528"
style="font-size:16px;fill:#ffffff;fill-opacity:1">Network Interfaces</tspan></text>
<rect
style="fill:#e0e0e0;fill-opacity:1;stroke:#000000;stroke-width:1.96199918;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
id="rect7705-0"
y="233.34317"
x="10.980995"
ry="4.999999"
rx="4.9999976"
height="398.03802"
width="338.03793" />
<text
style="font-size:12px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
xml:space="preserve"
id="text7739-1"
y="248.82126"
x="179.72656"
sodipodi:linespacing="125%"><tspan
style="font-size:16px;text-align:center;text-anchor:middle"
id="tspan7741-9"
y="248.82126"
x="179.72656">Network Node</tspan><tspan
style="font-size:14px;font-style:oblique;text-align:center;text-anchor:middle;-inkscape-font-specification:Sans Oblique"
id="tspan7743-5"
y="267.19217"
x="179.72656">network</tspan></text>
<rect
style="fill:#0000c0;fill-opacity:1;stroke:#000000;stroke-width:1.16499984;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
id="rect7725-7-0-0-5-1-4-7-6"
y="572.9447"
x="90.582497"
ry="5"
rx="5.000001"
height="38.83498"
width="178.83501" />
<text
style="font-size:12px;font-style:normal;font-weight:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#ffffff;fill-opacity:1;stroke:none;font-family:Sans"
xml:space="preserve"
id="text7727-7-4-3-8-4-9-6"
y="588.26318"
x="179.74023"
sodipodi:linespacing="125%"><tspan
style="font-size:14px;fill:#ffffff;fill-opacity:1"
id="tspan7729-1-9-6-8-9-9-4"
y="588.26318"
x="179.74023">External Network Interface</tspan><tspan
style="font-size:12px;font-style:oblique;fill:#ffffff;fill-opacity:1;-inkscape-font-specification:Sans Oblique"
id="tspan7731-2-4-2-1-8-0-4"
y="604.12817"
x="179.74023">(unnumbered)</tspan></text>
<rect
style="fill:#e0e0e0;fill-opacity:1;stroke:#000000;stroke-width:1.96199977;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
id="rect7705-0-8"
y="12.343173"
x="10.980999"
ry="4.999999"
rx="5"
height="179.03801"
width="338.03799" />
<text
style="font-size:12px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
xml:space="preserve"
id="text7739-1-5"
y="27.609818"
x="179.9375"
sodipodi:linespacing="125%"><tspan
style="font-size:16px;text-align:center;text-anchor:middle"
id="tspan7741-9-9"
y="27.609818"
x="179.9375">Compute Node</tspan><tspan
style="font-size:14px;font-style:oblique;text-align:center;text-anchor:middle;-inkscape-font-specification:Sans Oblique"
id="tspan7743-5-4"
y="45.980759"
x="179.9375">compute1</tspan></text>
<flowRoot
xml:space="preserve"
id="flowRoot6249"
style="font-size:12px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
transform="translate(0,308.2677)"><flowRegion
id="flowRegion6251"><rect
id="rect6253"
width="6"
height="88"
x="249"
y="367.09448" /></flowRegion><flowPara
id="flowPara6255" /></flowRoot> <rect
style="fill:#80ff00;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
id="rect6380"
width="319"
height="60.499996"
x="21"
y="351.36218"
rx="5"
ry="4.999999" />
<text
xml:space="preserve"
style="font-size:14px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
x="180"
y="370.36218"
id="text6376"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
x="180"
y="370.36218"
id="tspan6382"
style="text-align:center;text-anchor:middle">Tenant Virtual Network (demo-net)</tspan><tspan
sodipodi:role="line"
x="180"
y="386.22711"
id="tspan6386"
style="font-size:12px;font-style:oblique;text-align:center;text-anchor:middle;-inkscape-font-specification:Sans Oblique">Subnet: 192.168.1.0/24 (demo-subnet)</tspan><tspan
sodipodi:role="line"
x="181.66406"
y="401.22711"
id="tspan6388"
style="font-size:12px;font-style:oblique;text-align:center;text-anchor:middle;-inkscape-font-specification:Sans Oblique">Gateway: 192.168.1.1 </tspan></text>
<rect
style="fill:#0080ff;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
id="rect6380-8"
width="319"
height="61"
x="20.5"
y="490.86218"
rx="5"
ry="4.999999" />
<text
xml:space="preserve"
style="font-size:14px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
x="179.70605"
y="508.76324"
id="text6376-8"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
x="179.70605"
y="508.76324"
style="font-style:oblique;text-align:center;text-anchor:middle;-inkscape-font-specification:Sans Oblique"
id="tspan6722"><tspan
id="tspan6724"
style="font-style:normal;text-align:center;text-anchor:middle">External Virtual Network (ext-net)</tspan></tspan><tspan
sodipodi:role="line"
x="179.70605"
y="524.62817"
id="tspan6386-4"
style="font-size:12px;font-style:oblique;text-align:center;text-anchor:middle;-inkscape-font-specification:Sans Oblique">Subnet: 203.0.113.0/24 (ext-subnet)</tspan><tspan
sodipodi:role="line"
x="179.70605"
y="539.62817"
style="font-size:12px;font-style:oblique;text-align:center;text-anchor:middle;-inkscape-font-specification:Sans Oblique"
id="tspan6441">Gateway: 203.0.113.1</tspan><tspan
sodipodi:role="line"
x="179.70605"
y="554.62817"
id="tspan6388-5"
style="font-size:12px;font-style:oblique;text-align:center;text-anchor:middle;-inkscape-font-specification:Sans Oblique" /></text>
<rect
style="fill:#00c000;fill-opacity:1;stroke:#000000;stroke-width:1.16499984;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
id="rect7725-7-0-0-5-1-4-7-5"
y="290.94467"
x="90.582497"
ry="5"
rx="4.9999995"
height="40.835011"
width="178.83499" />
<text
style="font-size:12px;font-style:normal;font-weight:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
xml:space="preserve"
id="text7727-7-4-3-8-4-9-7-5"
y="307.45267"
x="179.64111"
sodipodi:linespacing="125%"><tspan
style="font-size:14px;fill:#ffffff"
id="tspan7729-1-9-6-8-9-9-8-6"
y="307.45267"
x="179.64111">Instance Tunnels Interface</tspan><tspan
style="font-size:12px;font-style:oblique;fill:#ffffff;-inkscape-font-specification:Sans Oblique"
id="tspan7731-2-4-2-1-8-0-3-0"
y="323.3176"
x="179.64111">10.0.1.21/24</tspan></text>
<text
style="font-size:12px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
xml:space="preserve"
id="text8526-3-9"
y="458.09265"
x="592.98047"
sodipodi:linespacing="125%"><tspan
style="font-size:16px;fill:#ffffff;fill-opacity:1"
id="tspan8528-0-5"
y="458.09265"
x="592.98047">Network Interfaces</tspan></text>
<rect
style="fill:#e0e0e0;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
id="rect6380-8-1"
width="338"
height="178.00024"
x="11"
y="673.36206"
rx="5.0000005"
ry="4.9999995" />
<text
xml:space="preserve"
style="font-size:14px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;font-family:Sans"
x="179.6748"
y="692.69537"
id="text6376-8-5"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
x="179.6748"
y="692.69537"
id="tspan6382-2-2"
style="font-size:16px;text-align:center;text-anchor:middle;fill:#000000;fill-opacity:1">External Physical Network</tspan><tspan
sodipodi:role="line"
x="179.6748"
y="711.06628"
id="tspan6388-5-1"
style="font-size:14px;font-style:oblique;text-align:center;text-anchor:middle;fill:#000000;fill-opacity:1;-inkscape-font-specification:Sans Oblique">Subnet: 203.0.113.0/24</tspan></text>
<path
sodipodi:type="arc"
style="fill:url(#linearGradient6759);fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.84100455;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
id="path6671"
sodipodi:cx="205.5"
sodipodi:cy="529.86218"
sodipodi:rx="47.5"
sodipodi:ry="47.5"
d="m 253,529.86218 c 0,26.23353 -21.26647,47.5 -47.5,47.5 -26.23353,0 -47.5,-21.26647 -47.5,-47.5 0,-26.23352 21.26647,-47.5 47.5,-47.5 26.23353,0 47.5,21.26648 47.5,47.5 z"
transform="matrix(3.3578947,0,0,0.42105263,-510.04736,228.76232)" />
<rect
style="fill:#00c000;fill-opacity:1;stroke:#000000;stroke-width:1.16499984;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
id="rect7725-7-0-0-5-1-4-7-5-4"
y="132.94469"
x="90.582497"
ry="5"
rx="4.9999995"
height="40"
width="178.83499" />
<text
style="font-size:12px;font-style:normal;font-weight:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
xml:space="preserve"
id="text7727-7-4-3-8-4-9-7-5-2"
y="149.45267"
x="179.64111"
sodipodi:linespacing="125%"><tspan
style="font-size:14px;fill:#ffffff"
id="tspan7729-1-9-6-8-9-9-8-6-3"
y="149.45267"
x="179.64111">Instance Tunnels Interface</tspan><tspan
style="font-size:12px;font-style:oblique;fill:#ffffff;-inkscape-font-specification:Sans Oblique"
id="tspan7731-2-4-2-1-8-0-3-0-2"
y="165.3176"
x="179.64111">10.0.1.31/24</tspan></text>
<text
xml:space="preserve"
style="font-size:14px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
x="68.724609"
y="453.98523"
id="text6714"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
id="tspan6716"
x="68.724609"
y="453.98523">Tenant Virtual Router (demo-router)</tspan></text>
<rect
style="fill:#80ff00;fill-opacity:1;stroke:#000000;stroke-width:1.16499984;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
id="rect7725-7-0-0-5-1-4-7-5-4-2"
y="72.362183"
x="70.582497"
ry="5"
rx="4.999999"
height="40"
width="218.83501" />
<text
xml:space="preserve"
style="font-size:14px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
x="180"
y="92.362183"
id="text6793"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
id="tspan6795"
x="180"
y="92.362183"
style="text-align:center;text-anchor:middle">Instance (demo1)</tspan><tspan
sodipodi:role="line"
x="180"
y="108.2271"
id="tspan6797"
style="font-size:12px;font-style:oblique;text-align:center;text-anchor:middle;-inkscape-font-specification:Sans Oblique">Subnet: 192.168.1.0/24 (demo-subnet)</tspan></text>
<path
sodipodi:type="arc"
style="fill:#0000c0;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.85723114;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
id="path6671-7"
sodipodi:cx="205.5"
sodipodi:cy="529.86218"
sodipodi:rx="47.5"
sodipodi:ry="47.5"
d="m 253,529.86218 c 0,26.23353 -21.26647,47.5 -47.5,47.5 -26.23353,0 -47.5,-21.26647 -47.5,-47.5 0,-26.23352 21.26647,-47.5 47.5,-47.5 26.23353,0 47.5,21.26648 47.5,47.5 z"
transform="matrix(3.3578947,0,0,0.40526322,-510.04736,597.87852)" />
<text
xml:space="preserve"
style="font-size:14px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
x="179.35742"
y="809.36432"
id="text6620"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
id="tspan6622"
x="179.35742"
y="809.36432"
style="text-align:center;text-anchor:middle;fill:#ffffff;fill-opacity:1">External Physical Router</tspan><tspan
sodipodi:role="line"
x="179.35742"
y="825.22925"
id="tspan6624"
style="font-size:12px;font-style:oblique;text-align:center;text-anchor:middle;fill:#ffffff;fill-opacity:1;-inkscape-font-specification:Sans Oblique">IP Address: 203.0.113.1</tspan></text>
<path
style="fill:none;stroke:#000000;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-start:none"
d="m 180,112.36218 -1e-5,20.58251"
id="path6841"
inkscape:connector-type="polyline"
inkscape:connector-curvature="0"
inkscape:connection-start="#rect7725-7-0-0-5-1-4-7-5-4-2"
inkscape:connection-start-point="d4"
inkscape:connection-end="#rect7725-7-0-0-5-1-4-7-5-4"
inkscape:connection-end-point="d4" />
<path
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 179.99999,311.36218 0,0"
id="path7029"
inkscape:connector-type="polyline"
inkscape:connector-curvature="20"
inkscape:connection-start="#rect7725-7-0-0-5-1-4-7-5"
inkscape:connection-start-point="d4"
inkscape:connection-end="#rect7725-7-0-0-5-1-4-7-5"
inkscape:connection-end-point="d4" />
<path
style="fill:none;stroke:#000000;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
d="m 180.14531,331.77968 0.13938,19.5825"
id="path7037"
inkscape:connector-type="polyline"
inkscape:connector-curvature="20"
inkscape:connection-start="#rect7725-7-0-0-5-1-4-7-5"
inkscape:connection-start-point="d4"
inkscape:connection-end="#rect6380"
inkscape:connection-end-point="d4" />
<path
style="fill:none;stroke:#000000;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
d="m 180.2847,411.86218 -0.14235,20.00001"
id="path7039"
inkscape:connector-type="polyline"
inkscape:connector-curvature="0"
inkscape:connection-start="#rect6380"
inkscape:connection-start-point="d4"
inkscape:connection-end="#path6671"
inkscape:connection-end-point="d4" />
<path
style="fill:none;stroke:#000000;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
d="m 180,471.86219 0,18.99999"
id="path7041"
inkscape:connector-type="polyline"
inkscape:connector-curvature="0"
inkscape:connection-start="#path6671"
inkscape:connection-start-point="d4"
inkscape:connection-end="#rect6380-8"
inkscape:connection-end-point="d4" />
<path
style="fill:none;stroke:#000000;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
d="m 180,551.86218 0,21.08252"
id="path7043"
inkscape:connector-type="polyline"
inkscape:connector-curvature="0"
inkscape:connection-start="#rect6380-8"
inkscape:connection-start-point="d4"
inkscape:connection-end="#rect7725-7-0-0-5-1-4-7-6"
inkscape:connection-end-point="d4" />
<rect
style="fill:#0000c0;fill-opacity:1;stroke:#000000;stroke-width:1.16499984;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
id="rect7725-7-0-0-5-1-4-7-6-9"
y="732.9447"
x="90.582497"
ry="5.0000005"
rx="5.000001"
height="38.834999"
width="178.83501" />
<path
style="fill:none;stroke:#000000;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
d="m 180,771.7797 0,21.58247"
id="path7074"
inkscape:connector-type="polyline"
inkscape:connector-curvature="0"
inkscape:connection-start="#rect7725-7-0-0-5-1-4-7-6-9"
inkscape:connection-start-point="d4"
inkscape:connection-end="#path6671-7"
inkscape:connection-end-point="d4" />
<path
style="fill:none;stroke:#000000;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:url(#Arrow1Mend);display:inline"
d="m 180,831.86218 0,60.5"
id="path7076"
inkscape:connector-type="polyline"
inkscape:connector-curvature="0"
inkscape:connection-start="#path6671-7"
inkscape:connection-start-point="d4" />
<text
xml:space="preserve"
style="font-size:16px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
x="150.49506"
y="913.74829"
id="text7896"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
id="tspan7898"
x="150.49506"
y="913.74829" /></text>
<text
xml:space="preserve"
style="font-size:16px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
x="152.16797"
y="907.995"
id="text7900"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
id="tspan7902"
x="152.16797"
y="907.995">Internet</tspan></text>
<path
style="fill:none;stroke:#000000;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
d="m 270.39755,591.56673 c 79.43842,33.98981 78.43974,142.67834 0,164.20454"
id="path7904"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cc" />
<path
style="fill:none;stroke:#000000;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
d="m 270.39755,150.25991 c 79.43842,33.98981 78.43974,142.67834 0,164.20454"
id="path7904-1"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cc" />
<text
xml:space="preserve"
style="font-size:16px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
x="103.62207"
y="755.98523"
id="text7928"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
id="tspan7930"
x="103.62207"
y="755.98523"
style="font-size:14px;fill:#ffffff;fill-opacity:1">External Physical Switch</tspan></text>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 51 KiB

View File

@ -1,790 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
version="1.1"
viewBox="-12 -7 582 380"
width="582pt"
height="380pt"
id="svg2"
inkscape:version="0.48.2 r9819"
sodipodi:docname="networking-interactions-swift.svg">
<sodipodi:namedview
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1"
objecttolerance="10"
gridtolerance="10"
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="1593"
inkscape:window-height="944"
id="namedview250"
showgrid="false"
inkscape:zoom="1.2518949"
inkscape:cx="514.23319"
inkscape:cy="180.69728"
inkscape:window-x="65"
inkscape:window-y="38"
inkscape:window-maximized="0"
inkscape:current-layer="g39" />
<metadata
id="metadata4">
<dc:date>2014-03-28 03:35Z</dc:date>
<!-- Produced by OmniGraffle Professional 5.4.4 -->
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
</cc:Work>
</rdf:RDF>
</metadata>
<defs
id="defs6">
<filter
id="Shadow"
filterUnits="userSpaceOnUse">
<feGaussianBlur
in="SourceAlpha"
result="blur"
stdDeviation="3.488"
id="feGaussianBlur9" />
<feOffset
in="blur"
result="offset"
dx="0"
dy="4"
id="feOffset11" />
<feFlood
flood-color="black"
flood-opacity=".75"
result="flood"
id="feFlood13" />
<feComposite
in="flood"
in2="offset"
operator="in"
id="feComposite15" />
</filter>
<font-face
font-family="Helvetica"
font-size="12"
units-per-em="1000"
underline-position="-75.683594"
underline-thickness="49.316406"
slope="0"
x-height="522.94922"
cap-height="717.28516"
ascent="770.01953"
descent="-229.98047"
font-weight="500"
id="font-face17">
<font-face-src
id="font-face-src19">
<font-face-name
name="Helvetica"
id="font-face-name21" />
</font-face-src>
</font-face>
<font-face
font-family="Helvetica"
font-size="14"
units-per-em="1000"
underline-position="-75.683594"
underline-thickness="49.316406"
slope="0"
x-height="522.94922"
cap-height="717.28516"
ascent="770.01953"
descent="-229.98047"
font-weight="500"
id="font-face23">
<font-face-src
id="font-face-src25">
<font-face-name
name="Helvetica"
id="font-face-name27" />
</font-face-src>
</font-face>
<marker
orient="auto"
overflow="visible"
markerUnits="strokeWidth"
id="FilledArrow_Marker"
viewBox="-9 -4 10 8"
markerWidth="10"
markerHeight="8"
color="black">
<g
id="g30">
<path
d="M -8 0 L 0 3 L 0 -3 Z"
fill="currentColor"
stroke="currentColor"
stroke-width="1"
id="path32" />
</g>
</marker>
<marker
orient="auto"
overflow="visible"
markerUnits="strokeWidth"
id="FilledArrow_Marker_2"
viewBox="-1 -4 10 8"
markerWidth="10"
markerHeight="8"
color="black">
<g
id="g35">
<path
d="M 8 0 L 0 -3 L 0 3 Z"
fill="currentColor"
stroke="currentColor"
stroke-width="1"
id="path37" />
</g>
</marker>
</defs>
<g
stroke="none"
stroke-opacity="1"
stroke-dasharray="none"
fill="none"
fill-opacity="1"
id="g39">
<title
id="title41">Canvas 1</title>
<g
id="g49"
transform="translate(-5.7512816,-0.63903128)">
<g
transform="translate(-5.7512816,-0.63903128)"
id="use51"
style="filter:url(#Shadow)">
<rect
x="47.454109"
y="113.5"
width="140"
height="155"
id="rect3745"
style="stroke:#000000;stroke-width:1;stroke-linecap:round;stroke-linejoin:round" />
</g>
<g
transform="translate(-5.7512816,-0.63903128)"
id="use53"
style="filter:url(#Shadow)">
<rect
x="56.454109"
y="120.5"
width="140"
height="155"
id="rect3741"
style="stroke:#000000;stroke-width:1;stroke-linecap:round;stroke-linejoin:round" />
</g>
<g
transform="translate(-5.7512816,-0.63903128)"
id="use55"
style="filter:url(#Shadow)">
<rect
x="83"
y="145"
width="140"
height="155"
id="rect3753"
style="stroke:#000000;stroke-width:1;stroke-linecap:round;stroke-linejoin:round" />
</g>
<g
transform="translate(-5.7512816,-0.63903128)"
id="use57"
style="filter:url(#Shadow)">
<rect
x="74"
y="136"
width="140"
height="155"
id="rect3757"
style="stroke:#000000;stroke-width:1;stroke-linecap:round;stroke-linejoin:round" />
</g>
<g
transform="translate(-5.7512816,-0.63903128)"
id="use59"
style="filter:url(#Shadow)">
<rect
x="74"
y="136"
width="140"
height="155"
id="rect3749"
style="stroke:#000000;stroke-width:1;stroke-linecap:round;stroke-linejoin:round" />
</g>
<g
transform="translate(-5.7512816,-0.63903128)"
id="use61"
style="filter:url(#Shadow)">
<rect
x="65"
y="127"
width="140"
height="155"
id="rect3737"
style="stroke:#000000;stroke-width:1;stroke-linecap:round;stroke-linejoin:round" />
</g>
<use
height="380"
width="582"
y="0"
x="0"
style="filter:url(#Shadow)"
id="use63"
xlink:href="#id2959_Graphic"
transform="translate(-0.63903128,-30.03447)" />
<use
height="380"
width="582"
y="0"
x="0"
style="filter:url(#Shadow)"
id="use65"
xlink:href="#id2961_Graphic"
transform="translate(-0.63903128,-30.03447)" />
<use
height="380"
width="582"
y="0"
x="0"
style="filter:url(#Shadow)"
id="use67"
xlink:href="#id2998_Graphic" />
<use
height="380"
width="582"
y="0"
x="0"
style="filter:url(#Shadow)"
id="use69"
xlink:href="#id2991_Graphic"
transform="translate(-0.63903128,-30.03447)" />
<use
height="380"
width="582"
y="0"
x="0"
style="filter:url(#Shadow)"
id="use71"
xlink:href="#id2992_Graphic"
transform="translate(-0.63903128,-30.03447)" />
<use
height="380"
width="582"
y="0"
x="0"
style="filter:url(#Shadow)"
id="use73"
xlink:href="#id3007_Graphic"
transform="translate(-0.63903128,-0.31951564)" />
<use
height="380"
width="582"
y="0"
x="0"
style="filter:url(#Shadow)"
id="use75"
xlink:href="#id3008_Graphic"
transform="translate(-0.63903128,-30.03447)" />
</g>
<g
id="id2959_Graphic"
transform="translate(-5.1122503,29.395439)">
<rect
style="stroke:#000000;stroke-width:1;stroke-linecap:round;stroke-linejoin:round"
id="rect96"
height="189"
width="142"
y="45"
x="8" />
</g>
<g
id="id2961_Graphic"
transform="translate(-5.1122503,29.395439)">
<rect
style="fill:#ffffff"
id="rect99"
height="33"
width="116.90818"
y="75"
x="22.091818" />
<rect
style="stroke:#000000;stroke-width:1;stroke-linecap:round;stroke-linejoin:round"
id="rect101"
height="33"
width="116.90818"
y="75"
x="22.091818" />
<text
style="fill:#000000"
id="text103"
x="25.174723"
y="74.914536">
<tspan
style="font-size:9.60000038px;font-weight:500;font-family:Helvetica"
id="tspan105"
textLength="102.07617"
y="85.914536"
x="27.590729"
font-weight="500"
font-size="12">swift-container-server</tspan>
</text>
</g>
<text
style="fill:#000000"
id="text107"
x="27.841843"
y="85.395439">
<tspan
style="font-size:14px;font-weight:500;font-family:Helvetica"
id="tspan109"
textLength="91.06836"
y="99.395439"
x="27.841843"
font-weight="500"
font-size="14">Storage nodes</tspan>
</text>
<line
style="stroke:#000000;stroke-width:1;stroke-linecap:round;stroke-linejoin:round"
id="line111"
y2="267.4903"
x2="394.80969"
y1="267.4903"
x1="351.60968" />
<text
style="fill:#000000"
id="text113"
x="418.24872"
y="258.36099">
<tspan
style="font-size:14px;font-weight:500;font-family:Helvetica"
id="tspan115"
textLength="38.13086"
y="272.36099"
x="418.24872"
font-weight="500"
font-size="14">Public</tspan>
</text>
<line
style="stroke:#ff0000;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:8, 4, 1, 4"
id="line117"
y2="315.86096"
x2="395.44873"
y1="315.86096"
x1="352.24872" />
<text
style="fill:#000000"
id="text119"
x="418.24872"
y="307.86099">
<tspan
style="font-size:14px;font-weight:500;font-family:Helvetica"
id="tspan121"
textLength="131.5166"
y="321.86099"
x="418.24872"
font-weight="500"
font-size="14">Replication (optional)</tspan>
</text>
<line
style="stroke:#0033cc;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:8, 5"
id="line123"
y2="287.86096"
x2="396.44873"
y1="287.86096"
x1="351.24875" />
<text
style="fill:#000000"
id="text125"
x="418.24872"
y="279.36102">
<tspan
style="font-size:14px;font-weight:500;font-family:Helvetica"
id="tspan127"
textLength="104.268555"
y="293.36102"
x="418.24872"
font-weight="500"
font-size="14">Storage Network</tspan>
</text>
<rect
style="fill:#ffffff"
id="rect129"
height="40"
width="116.90818"
y="8.3609686"
x="199.99873" />
<rect
style="stroke:#000000;stroke-width:1;stroke-linecap:round;stroke-linejoin:round"
id="rect131"
height="40"
width="116.90818"
y="8.3609686"
x="199.99873" />
<text
style="fill:#000000"
id="text133"
x="204.99873"
y="14.360969">
<tspan
style="font-size:12px;font-weight:500;font-family:Helvetica"
id="tspan135"
textLength="62.701172"
y="25.36097"
x="228.76923"
font-weight="500"
font-size="12">OpenStack</tspan>
<tspan
style="font-size:12px;font-weight:500;font-family:Helvetica"
id="tspan137"
textLength="58.705078"
y="39.36097"
x="229.10028"
font-weight="500"
font-size="12">Dashboard</tspan>
</text>
<rect
style="stroke:#000000;stroke-width:1;stroke-linecap:round;stroke-linejoin:round"
id="rect141"
height="23.746155"
width="116.90818"
y="157.85469"
x="400.01553" />
<text
style="fill:#000000"
id="text143"
x="401.50085"
y="161.77165">
<tspan
style="font-size:11.19999981px;font-weight:500;font-family:Helvetica"
id="tspan145"
textLength="101.390625"
y="172.77165"
x="404.25964"
font-weight="500"
font-size="12">OpenStack Identity</tspan>
</text>
<g
id="id2998_Graphic"
transform="translate(-5.7512816,-0.63903128)">
<rect
style="fill:#ffffff"
id="rect148"
height="41"
width="116.90818"
y="308"
x="136.09181" />
<rect
style="stroke:#000000;stroke-width:1;stroke-linecap:round;stroke-linejoin:round"
id="rect150"
height="41"
width="116.90818"
y="308"
x="136.09181" />
<text
style="fill:#000000"
id="text152"
transform="translate(141.09181,321.5)">
<tspan
style="font-size:12px;font-weight:500;font-family:Helvetica"
id="tspan154"
textLength="91.39453"
y="11"
x="7.7568254"
font-weight="500"
font-size="12">all storage nodes</tspan>
</text>
</g>
<text
style="fill:#000000"
id="text156"
x="348.24872"
y="236.86099">
<tspan
style="font-size:14px;font-weight:500;font-family:Helvetica"
id="tspan158"
textLength="58.344727"
y="250.86099"
x="348.24872"
font-weight="500"
font-size="14">Networks</tspan>
</text>
<rect
style="stroke:#000000;stroke-width:1;stroke-linecap:round;stroke-linejoin:round"
id="rect160"
height="155"
width="140"
y="32.86097"
x="388.24872" />
<rect
style="fill:#ffffff"
id="rect162"
height="27"
width="116.90818"
y="93.36097"
x="400.74869" />
<rect
style="stroke:#000000;stroke-width:1;stroke-linecap:round;stroke-linejoin:round"
id="rect164"
height="27"
width="116.90818"
y="93.36097"
x="400.74869" />
<text
style="fill:#000000"
id="text166"
x="402.55353"
y="100.18049">
<tspan
style="font-size:11.19999981px;font-weight:500;font-family:Helvetica"
id="tspan168"
textLength="98.683594"
y="111.18049"
x="406.66583"
font-weight="500"
font-size="12">swift-proxy-server</tspan>
</text>
<text
style="fill:#000000"
id="text170"
x="402.01978"
y="48.985329">
<tspan
style="font-size:14px;font-weight:500;font-family:Helvetica"
id="tspan172"
textLength="101.9375"
y="62.985329"
x="402.01978"
font-weight="500"
font-size="14">Cloud controller/</tspan>
<tspan
style="font-size:14px;font-weight:500;font-family:Helvetica"
id="tspan174"
textLength="78.572266"
y="79.985329"
x="402.01978"
font-weight="500"
font-size="14">Proxy server</tspan>
</text>
<text
style="fill:#ff0000"
id="text176"
x="151.24872"
y="218.36098">
<tspan
style="font-size:12px;font-weight:500;fill:#ff0000;font-family:Helvetica"
id="tspan178"
textLength="90.697266"
y="229.36098"
x="151.40009"
font-weight="500"
font-size="12">Networking inter-</tspan>
<tspan
style="font-size:12px;font-weight:500;fill:#ff0000;font-family:Helvetica"
id="tspan180"
textLength="86.70117"
y="243.36098"
x="153.39813"
font-weight="500"
font-size="12">communications</tspan>
</text>
<g
id="id2991_Graphic"
transform="translate(-5.1122503,29.395439)">
<rect
style="fill:#ffffff"
id="rect205"
height="33"
width="116.90818"
y="110"
x="22.091818" />
<rect
style="stroke:#000000;stroke-width:1;stroke-linecap:round;stroke-linejoin:round"
id="rect207"
height="33"
width="116.90818"
y="110"
x="22.091818" />
<text
style="fill:#000000"
id="text209"
x="22.618599"
y="86.909409">
<tspan
style="font-size:9.60000038px;font-weight:500;font-family:Helvetica"
id="tspan211"
textLength="94.740234"
y="97.909409"
x="28.702574"
font-weight="500"
font-size="12">swift-account-server</tspan>
</text>
</g>
<g
id="id2992_Graphic"
transform="translate(-5.1122503,29.395439)">
<rect
style="fill:#ffffff"
id="rect214"
height="33"
width="116.90818"
y="145.5"
x="22.091818" />
<rect
style="stroke:#000000;stroke-width:1;stroke-linecap:round;stroke-linejoin:round"
id="rect216"
height="33"
width="116.90818"
y="145.5"
x="22.091818" />
<text
style="fill:#000000"
id="text218"
x="0.25250414"
y="153.72192">
<tspan
style="font-size:9.60000038px;font-weight:500;font-family:Helvetica"
id="tspan220"
textLength="38.021484"
y="164.72192"
x="34.695854"
font-weight="500"
font-size="12">swift-object-server</tspan>
</text>
</g>
<line
style="stroke:#0033cc;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:7.99999999, 4.99999999"
id="line222"
y2="74.395447"
x2="144.80484"
y1="36.477646"
x1="199.5034" />
<line
style="stroke:#0033cc;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:8.0000001, 5.00000007"
id="line226"
y2="25.970657"
x2="318.05356"
y1="70.259567"
x1="387.81421" />
<g
id="id3007_Graphic"
transform="translate(-5.1122503,-0.31951564)">
<rect
style="fill:#ffffff"
id="rect231"
height="27"
width="116.90818"
y="127"
x="405.5459" />
<rect
style="stroke:#000000;stroke-width:1;stroke-linecap:round;stroke-linejoin:round"
id="rect233"
height="27"
width="116.90818"
y="127"
x="405.5459" />
<text
style="fill:#000000"
id="text235"
x="407.35074"
y="133.5">
<tspan
style="font-size:11.19999981px;font-weight:500;font-family:Helvetica"
id="tspan237"
textLength="106.70508"
y="144.5"
x="407.4523"
font-weight="500"
font-size="12">memcached service</tspan>
</text>
</g>
<g
id="id3008_Graphic"
transform="translate(-5.1122503,29.395439)">
<rect
style="fill:#ffffff"
id="rect240"
height="33"
width="116.90818"
y="181"
x="22.091818" />
<rect
style="stroke:#000000;stroke-width:1;stroke-linecap:round;stroke-linejoin:round"
id="rect242"
height="33"
width="116.90818"
y="181"
x="22.091818" />
<text
style="fill:#000000"
id="text244"
transform="translate(27.091818,190.5)">
<tspan
style="font-size:9.60000038px;font-weight:500;font-family:Helvetica"
id="tspan246"
textLength="28.669922"
y="11"
x="39.119129"
font-weight="500"
font-size="12">rsync</tspan>
</text>
</g>
<line
style="stroke:#ff0000;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:8, 4, 1, 4"
id="line248"
y2="233.78802"
x2="131.04532"
y1="315.36096"
x1="180.71121" />
<text
xml:space="preserve"
style="font-size:32px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
x="230.19286"
y="67.543045"
id="text3701"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
id="tspan3703"
x="230.19286"
y="67.543045"
style="font-size:11.19999981px">Tenant API</tspan></text>
<text
xml:space="preserve"
style="font-size:32px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
x="54.459255"
y="159.56354"
id="text3731"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
id="tspan3733"
x="54.459255"
y="159.56354"
style="font-size:10.39999962px">SQLite</tspan></text>
<path
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="M 410.5776,68.416345 499.24319,145.1001"
id="path3781"
inkscape:connector-curvature="0"
transform="matrix(0.8,0,0,0.8,-12,-7)" />
<path
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="M 264.39919,69.215135 196.50212,145.89889"
id="path3783"
inkscape:connector-curvature="0"
transform="matrix(0.8,0,0,0.8,-12,-7)" />
</g>
</svg>

Before

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 112 KiB

File diff suppressed because it is too large Load Diff

Before

Width:  |  Height:  |  Size: 35 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 54 KiB

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 15 KiB

File diff suppressed because it is too large Load Diff

Binary file not shown.

Before

Width:  |  Height:  |  Size: 75 KiB

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 602 KiB

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -1,84 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<parent>
<groupId>org.openstack.docs</groupId>
<artifactId>parent-pom</artifactId>
<version>1.0.0-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>openstack-install-guide</artifactId>
<packaging>jar</packaging>
<name>OpenStack Installation Guide</name>
<properties>
<!-- This is set by Jenkins according to the branch. -->
<release.path.name>local</release.path.name>
<comments.enabled>1</comments.enabled>
<operating.system>apt</operating.system>
<!-- This is set by Jenkins to run twice for each similar operating system group -->
<profile.os>ubuntu</profile.os>
</properties>
<!-- ################################################ -->
<!-- USE "mvn clean generate-sources" to run this POM -->
<!-- ################################################ -->
<build>
<plugins>
<plugin>
<groupId>com.rackspace.cloud.api</groupId>
<artifactId>clouddocs-maven-plugin</artifactId>
<!-- version is set in ../pom.xml file -->
<executions>
<execution>
<id>generate-webhelp</id>
<goals>
<goal>generate-webhelp</goal>
</goals>
<phase>generate-sources</phase>
<configuration>
<!-- These parameters only apply to webhelp -->
<enableDisqus>${comments.enabled}</enableDisqus>
<disqusShortname>os-install-${operating.system}</disqusShortname>
<enableGoogleAnalytics>1</enableGoogleAnalytics>
<googleAnalyticsId>UA-17511903-1</googleAnalyticsId>
<generateToc>
appendix toc,title
article/appendix nop
article toc,title
book toc,title,figure,table,example,equation
chapter toc,title
section toc
part toc,title
qandadiv toc
qandaset toc
reference toc,title
set toc,title
</generateToc>
<chapterAutolabel>1</chapterAutolabel>
<sectionAutolabel>0</sectionAutolabel>
<tocSectionDepth>1</tocSectionDepth>
<formalProcedures>0</formalProcedures>
<webhelpDirname>${release.path.name}/install-guide/install/${operating.system}</webhelpDirname>
<includeDateInPdfFilename>0</includeDateInPdfFilename>
<pdfFilenameBase>openstack-install-guide-${operating.system}-${release.path.name}</pdfFilenameBase>
</configuration>
</execution>
</executions>
<configuration>
<glossaryCollection>${basedir}/../glossary/glossary-terms.xml</glossaryCollection>
<!-- These parameters apply to pdf and webhelp -->
<profileAudience>installer</profileAudience>
<xincludeSupported>true</xincludeSupported>
<sourceDirectory>.</sourceDirectory>
<includes>
bk-openstack-install-guide.xml
</includes>
<canonicalUrlBase>http://docs.openstack.org/${release.path.name}/install-guide/install/${operating.system}/content</canonicalUrlBase>
<branding>openstack</branding>
<profileOs>${profile.os}</profileOs>
</configuration>
</plugin>
</plugins>
</build>
</project>

View File

@ -1,33 +0,0 @@
Roadmap for Install Guides
--------------------------
This file is stored with the source to offer ideas for what to work on.
Put your name next to a task if you want to work on it and put a WIP
review up on review.openstack.org.
May 20, 2014
This guide has an overall blueprint with spec at:
https://wiki.openstack.org/wiki/Documentation/InstallationGuideImprovements
To do tasks:
- Unify chapter and section names (such as Overview)
- Add sample output of each command and highlight important parts
- Mention project as standard but tenant must be used for CLI params
- Refer to generic SQL database and update for MariaDB (RHEL), MySQL,
and PostgreSQL
- Provide sample configuration files for each node
- Compute and network nodes should reference server on controller node
- Update password list
- Add audience information; who is this book intended for
Ongoing tasks:
- Ensure it meets conventions and standards
- Continually update with latest release information relevant to install
Wishlist tasks:
- Replace all individual client commands (like keystone, nova) with
openstack client commands

View File

@ -1,143 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<section xmlns="http://docbook.org/ns/docbook"
xmlns:xi="http://www.w3.org/2001/XInclude"
xmlns:xlink="http://www.w3.org/1999/xlink"
version="5.0"
xml:id="basics-database">
<?dbhtml stop-chunking?>
<title>SQL database</title>
<para>Most OpenStack services use an SQL database to store information.
The database typically runs on the controller node. The procedures in
this guide use <application>MariaDB</application> or
<application>MySQL</application> depending on the distribution.
OpenStack services also support other SQL databases including
<link xlink:href="http://www.postgresql.org/">PostgreSQL</link>.</para>
<procedure>
<title>To install and configure the database server</title>
<step>
<para>Install the packages:</para>
<note os="ubuntu;rhel;centos;fedora;opensuse">
<para>The Python MySQL library is compatible with MariaDB.</para>
</note>
<screen os="ubuntu"><prompt>#</prompt> <userinput>apt-get install mariadb-server python-mysqldb</userinput></screen>
<screen os="debian"><prompt>#</prompt> <userinput>apt-get install mysql-server python-mysqldb</userinput></screen>
<screen os="rhel;fedora;centos"><prompt>#</prompt> <userinput>yum install mariadb mariadb-server MySQL-python</userinput></screen>
<screen os="opensuse;sles"><prompt>#</prompt> <userinput>zypper install mariadb-client mariadb python-mysql</userinput></screen>
</step>
<step os="ubuntu;debian">
<para>Choose a suitable password for the database root account.</para>
</step>
<step>
<para os="ubuntu;debian">Create and edit the
<filename>/etc/mysql/conf.d/mysqld_openstack.cnf</filename> file and
complete the following actions:</para>
<para os="opensuse;sles;rhel;centos;fedora">Create and edit the
<filename>/etc/my.cnf.d/mariadb_openstack.cnf</filename> file and
complete the following actions:</para>
<substeps>
<step>
<para>In the <literal>[mysqld]</literal> section, set the
<literal>bind-address</literal> key to the management IP
address of the controller node to enable access by other
nodes via the management network:</para>
<programlisting language="ini">[mysqld]
...
bind-address = 10.0.0.11</programlisting>
</step>
<step>
<para>In the <literal>[mysqld]</literal> section, set the
following keys to enable useful options and the UTF-8
character set:</para>
<programlisting language="ini">[mysqld]
...
default-storage-engine = innodb
innodb_file_per_table
collation-server = utf8_general_ci
init-connect = 'SET NAMES utf8'
character-set-server = utf8</programlisting>
</step>
</substeps>
</step>
</procedure>
<procedure>
<title>To finalize installation</title>
<step os="ubuntu;debian">
<para>Restart the database service:</para>
<screen><prompt>#</prompt> <userinput>service mysql restart</userinput></screen>
</step>
<step os="rhel;centos;fedora;sles;opensuse">
<para>Start the database service and configure it to start when the
system boots:</para>
<screen os="rhel;centos;fedora"><prompt>#</prompt> <userinput>systemctl enable mariadb.service</userinput>
<prompt>#</prompt> <userinput>systemctl start mariadb.service</userinput></screen>
<screen os="opensuse;sles"><prompt>#</prompt> <userinput>systemctl enable mysql.service</userinput>
<prompt>#</prompt> <userinput>systemctl start mysql.service</userinput></screen>
</step>
<step>
<para os="ubuntu;debian">Secure the database service:</para>
<para os="rhel;centos;fedora;sles;opensuse">Secure the database
service including choosing a suitable password for the root
account:</para>
<screen><prompt>#</prompt> <userinput>mysql_secure_installation</userinput>
<computeroutput>NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB
SERVERS IN PRODUCTION USE! PLEASE READ EACH STEP CAREFULLY!
In order to log into MariaDB to secure it, we'll need the current
password for the root user. If you've just installed MariaDB, and
you haven't set the root password yet, the password will be blank,
so you should just press enter here.
Enter current password for root (enter for none):
OK, successfully used password, moving on...
Setting the root password ensures that nobody can log into the MariaDB
root user without the proper authorisation.
Set root password? [Y/n] Y
New password:
Re-enter new password:
Password updated successfully!
Reloading privilege tables..
... Success!
By default, a MariaDB installation has an anonymous user, allowing anyone
to log into MariaDB without having to have a user account created for
them. This is intended only for testing, and to make the installation
go a bit smoother. You should remove them before moving into a
production environment.
Remove anonymous users? [Y/n] Y
... Success!
Normally, root should only be allowed to connect from 'localhost'. This
ensures that someone cannot guess at the root password from the network.
Disallow root login remotely? [Y/n] Y
... Success!
By default, MariaDB comes with a database named 'test' that anyone can
access. This is also intended only for testing, and should be removed
before moving into a production environment.
Remove test database and access to it? [Y/n] Y
- Dropping test database...
... Success!
- Removing privileges on test database...
... Success!
Reloading the privilege tables will ensure that all changes made so far
will take effect immediately.
Reload privilege tables now? [Y/n] Y
... Success!
Cleaning up...
All done! If you've completed all of the above steps, your MariaDB
installation should now be secure.
Thanks for using MariaDB!</computeroutput></screen>
</step>
</procedure>
</section>

View File

@ -1,406 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE section [
<!ENTITY % openstack SYSTEM "../common/entities/openstack.ent">
%openstack;
]>
<section xmlns="http://docbook.org/ns/docbook"
xmlns:xi="http://www.w3.org/2001/XInclude"
xmlns:xlink="http://www.w3.org/1999/xlink"
version="5.0"
xml:id="basics-networking-neutron">
<?dbhtml stop-chunking?>
<title>OpenStack Networking (neutron)</title>
<para>The example architecture with OpenStack Networking (neutron) requires
one controller node, one network node, and at least one compute node.
The controller node contains one network interface on the
<glossterm>management network</glossterm>. The network node contains
one network interface on the management network, one on the
<glossterm>instance tunnels network</glossterm>, and one on the
<glossterm>external network</glossterm>. The compute node contains
one network interface on the management network and one on the
instance tunnels network.</para>
<para>The example architecture assumes use of the following networks:</para>
<itemizedlist>
<listitem>
<para>Management on 10.0.0.0/24 with gateway 10.0.0.1</para>
<note>
<para>This network requires a gateway to provide Internet
access to all nodes for administrative purposes such as
package installation, security updates,
<glossterm>DNS</glossterm>, and
<glossterm baseform="Network Time Protocol (NTP)"
>NTP</glossterm>.</para>
</note>
</listitem>
<listitem>
<para>Instance tunnels on 10.0.1.0/24 without a gateway</para>
<note>
<para>This network does not require a gateway because communication
only occurs among network and compute nodes in your OpenStack
environment.</para>
</note>
</listitem>
<listitem>
<para>External on 203.0.113.0/24 with gateway 203.0.113.1</para>
<note>
<para>This network requires a gateway to provide Internet
access to instances in your OpenStack environment.</para>
</note>
</listitem>
</itemizedlist>
<para>You can modify these ranges and gateways to work with your
particular network infrastructure.</para>
<note>
<para>Network interface names vary by distribution. Traditionally,
interfaces use "eth" followed by a sequential number. To cover all
variations, this guide simply refers to the first interface as the
interface with the lowest number, the second interface as the
interface with the middle number, and the third interface as the
interface with the highest number.</para>
</note>
<figure>
<title>Minimal architecture example with OpenStack Networking
(neutron)&mdash;Network layout</title>
<mediaobject>
<imageobject>
<imagedata contentwidth="6in"
fileref="../common/figures/installguidearch-neutron-networks.png"/>
</imageobject>
</mediaobject>
</figure>
<para>Unless you intend to use the exact configuration provided in this
example architecture, you must modify the networks in this procedure to
match your environment. Also, each node must resolve the other nodes
by name in addition to IP address. For example, the
<replaceable>controller</replaceable> name must resolve to
<literal>10.0.0.11</literal>, the IP address of the management
interface on the controller node.</para>
<warning>
<para>Reconfiguring network interfaces will interrupt network
connectivity. We recommend using a local terminal session for these
procedures.</para>
</warning>
<section xml:id="basics-neutron-networking-controller-node">
<title>Controller node</title>
<procedure>
<title>To configure networking:</title>
<step>
<para>Configure the first interface as the management interface:</para>
<para>IP address: 10.0.0.11</para>
<para>Network mask: 255.255.255.0 (or /24)</para>
<para>Default gateway: 10.0.0.1</para>
</step>
<step>
<para>Reboot the system to activate the changes.</para>
</step>
</procedure>
<procedure>
<title>To configure name resolution:</title>
<step>
<para>Set the hostname of the node to
<code><replaceable>controller</replaceable></code>.</para>
</step>
<step>
<para>Edit the <filename>/etc/hosts</filename> file to contain the
following:</para>
<programlisting># controller
10.0.0.11 controller
# network
10.0.0.21 network
# compute1
10.0.0.31 compute1</programlisting>
<warning>
<para>Some distributions add an extraneous entry in the
<filename>/etc/hosts</filename> file that resolves the actual
hostname to another loopback IP address such as
<literal>127.0.1.1</literal>. Note it's
<literal>127.0.1.1</literal>, do not remove the required
<literal>127.0.0.1</literal> entry. You must comment out
or remove this entry to prevent name resolution
problems.</para>
</warning>
</step>
</procedure>
</section>
<section xml:id="basics-neutron-networking-network-node">
<title>Network node</title>
<procedure>
<title>To configure networking:</title>
<step>
<para>Configure the first interface as the management interface:</para>
<para>IP address: 10.0.0.21</para>
<para>Network mask: 255.255.255.0 (or /24)</para>
<para>Default gateway: 10.0.0.1</para>
</step>
<step>
<para>Configure the second interface as the instance tunnels
interface:</para>
<para>IP address: 10.0.1.21</para>
<para>Network mask: 255.255.255.0 (or /24)</para>
</step>
<step>
<para>The external interface uses a special configuration without an
IP address assigned to it. Configure the third interface as the
external interface:</para>
<para>Replace <replaceable>INTERFACE_NAME</replaceable> with the
actual interface name. For example, <emphasis>eth2</emphasis> or
<emphasis>ens256</emphasis>.</para>
<substeps>
<step os="ubuntu;debian">
<para>Edit the <filename>/etc/network/interfaces</filename> file
to contain the following:</para>
<programlisting># The external network interface
auto <replaceable>INTERFACE_NAME</replaceable>
iface <replaceable>INTERFACE_NAME</replaceable> inet manual
up ip link set dev $IFACE up
down ip link set dev $IFACE down</programlisting>
</step>
<step os="rhel;centos;fedora">
<para>Edit the
<filename>/etc/sysconfig/network-scripts/ifcfg-<replaceable>INTERFACE_NAME</replaceable></filename>
file to contain the following:</para>
<para>Do not change the <literal>HWADDR</literal> and
<literal>UUID</literal> keys.</para>
<programlisting>DEVICE=<replaceable>INTERFACE_NAME</replaceable>
TYPE=Ethernet
ONBOOT="yes"
BOOTPROTO="none"</programlisting>
</step>
<step os="sles;opensuse">
<para>Edit the
<filename>/etc/sysconfig/network/ifcfg-<replaceable>INTERFACE_NAME</replaceable></filename> file to
contain the following:</para>
<programlisting>STARTMODE='auto'
BOOTPROTO='static'</programlisting>
</step>
</substeps>
</step>
<step>
<para>Reboot the system to activate the changes.</para>
</step>
</procedure>
<procedure>
<title>To configure name resolution:</title>
<step>
<para>Set the hostname of the node to <code>network</code>.</para>
</step>
<step>
<para>Edit the <filename>/etc/hosts</filename> file to contain the
following:</para>
<programlisting># network
10.0.0.21 network
# controller
10.0.0.11 controller
# compute1
10.0.0.31 compute1</programlisting>
<warning>
<para>Some distributions add an extraneous entry in the
<filename>/etc/hosts</filename> file that resolves the actual
hostname to another loopback IP address such as
<literal>127.0.1.1</literal>. Note it's
<literal>127.0.1.1</literal>, do not remove the required
<literal>127.0.0.1</literal> entry. You must comment out
or remove this entry to prevent name resolution
problems.</para>
</warning>
</step>
</procedure>
</section>
<section xml:id="basics-neutron-networking-compute-node">
<title>Compute node</title>
<procedure>
<title>To configure networking:</title>
<step>
<para>Configure the first interface as the management interface:</para>
<para>IP address: 10.0.0.31</para>
<para>Network mask: 255.255.255.0 (or /24)</para>
<para>Default gateway: 10.0.0.1</para>
<note>
<para>Additional compute nodes should use 10.0.0.32, 10.0.0.33,
and so on.</para>
</note>
</step>
<step>
<para>Configure the second interface as the instance tunnels
interface:</para>
<para>IP address: 10.0.1.31</para>
<para>Network mask: 255.255.255.0 (or /24)</para>
<note>
<para>Additional compute nodes should use 10.0.1.32, 10.0.1.33,
and so on.</para>
</note>
</step>
<step>
<para>Reboot the system to activate the changes.</para>
</step>
</procedure>
<procedure>
<title>To configure name resolution:</title>
<step>
<para>Set the hostname of the node to <code>compute1</code>.</para>
</step>
<step>
<para>Edit the <filename>/etc/hosts</filename> file to contain the
following:</para>
<programlisting># compute1
10.0.0.31 compute1
# controller
10.0.0.11 controller
# network
10.0.0.21 network</programlisting>
<warning>
<para>Some distributions add an extraneous entry in the
<filename>/etc/hosts</filename> file that resolves the actual
hostname to another loopback IP address such as
<literal>127.0.1.1</literal>. You must comment out or remove
this entry to prevent name resolution problems.</para>
</warning>
</step>
</procedure>
</section>
<section xml:id="basics-neutron-networking-verify">
<title>Verify connectivity</title>
<para>We recommend that you verify network connectivity to the Internet
and among the nodes before proceeding further.</para>
<procedure>
<step>
<para>From the <emphasis>controller</emphasis> node,
<command>ping</command> a site on the Internet:</para>
<screen><prompt>#</prompt> <userinput>ping -c 4 openstack.org</userinput>
<computeroutput>PING openstack.org (174.143.194.225) 56(84) bytes of data.
64 bytes from 174.143.194.225: icmp_seq=1 ttl=54 time=18.3 ms
64 bytes from 174.143.194.225: icmp_seq=2 ttl=54 time=17.5 ms
64 bytes from 174.143.194.225: icmp_seq=3 ttl=54 time=17.5 ms
64 bytes from 174.143.194.225: icmp_seq=4 ttl=54 time=17.4 ms
--- openstack.org ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3022ms
rtt min/avg/max/mdev = 17.489/17.715/18.346/0.364 ms</computeroutput></screen>
</step>
<step>
<para>From the <emphasis>controller</emphasis> node,
<command>ping</command> the management interface on the
<emphasis>network</emphasis> node:</para>
<screen><prompt>#</prompt> <userinput>ping -c 4 <replaceable>network</replaceable></userinput>
<computeroutput>PING network (10.0.0.21) 56(84) bytes of data.
64 bytes from network (10.0.0.21): icmp_seq=1 ttl=64 time=0.263 ms
64 bytes from network (10.0.0.21): icmp_seq=2 ttl=64 time=0.202 ms
64 bytes from network (10.0.0.21): icmp_seq=3 ttl=64 time=0.203 ms
64 bytes from network (10.0.0.21): icmp_seq=4 ttl=64 time=0.202 ms
--- network ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3000ms
rtt min/avg/max/mdev = 0.202/0.217/0.263/0.030 ms</computeroutput></screen>
</step>
<step>
<para>From the <emphasis>controller</emphasis> node,
<command>ping</command> the management interface on the
<emphasis>compute</emphasis> node:</para>
<screen><prompt>#</prompt> <userinput>ping -c 4 <replaceable>compute1</replaceable></userinput>
<computeroutput>PING compute1 (10.0.0.31) 56(84) bytes of data.
64 bytes from compute1 (10.0.0.31): icmp_seq=1 ttl=64 time=0.263 ms
64 bytes from compute1 (10.0.0.31): icmp_seq=2 ttl=64 time=0.202 ms
64 bytes from compute1 (10.0.0.31): icmp_seq=3 ttl=64 time=0.203 ms
64 bytes from compute1 (10.0.0.31): icmp_seq=4 ttl=64 time=0.202 ms
--- network ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3000ms
rtt min/avg/max/mdev = 0.202/0.217/0.263/0.030 ms</computeroutput></screen>
</step>
<step>
<para>From the <emphasis>network</emphasis> node,
<command>ping</command> a site on the Internet:</para>
<screen><prompt>#</prompt> <userinput>ping -c 4 openstack.org</userinput>
<computeroutput>PING openstack.org (174.143.194.225) 56(84) bytes of data.
64 bytes from 174.143.194.225: icmp_seq=1 ttl=54 time=18.3 ms
64 bytes from 174.143.194.225: icmp_seq=2 ttl=54 time=17.5 ms
64 bytes from 174.143.194.225: icmp_seq=3 ttl=54 time=17.5 ms
64 bytes from 174.143.194.225: icmp_seq=4 ttl=54 time=17.4 ms
--- openstack.org ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3022ms
rtt min/avg/max/mdev = 17.489/17.715/18.346/0.364 ms</computeroutput></screen>
</step>
<step>
<para>From the <emphasis>network</emphasis> node,
<command>ping</command> the management interface on the
<emphasis>controller</emphasis> node:</para>
<screen><prompt>#</prompt> <userinput>ping -c 4 <replaceable>controller</replaceable></userinput>
<computeroutput>PING controller (10.0.0.11) 56(84) bytes of data.
64 bytes from controller (10.0.0.11): icmp_seq=1 ttl=64 time=0.263 ms
64 bytes from controller (10.0.0.11): icmp_seq=2 ttl=64 time=0.202 ms
64 bytes from controller (10.0.0.11): icmp_seq=3 ttl=64 time=0.203 ms
64 bytes from controller (10.0.0.11): icmp_seq=4 ttl=64 time=0.202 ms
--- controller ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3000ms
rtt min/avg/max/mdev = 0.202/0.217/0.263/0.030 ms</computeroutput></screen>
</step>
<step>
<para>From the <emphasis>network</emphasis> node,
<command>ping</command> the instance tunnels interface on the
<emphasis>compute</emphasis> node:</para>
<screen><prompt>#</prompt> <userinput>ping -c 4 10.0.1.31</userinput>
<computeroutput>PING 10.0.1.31 (10.0.1.31) 56(84) bytes of data.
64 bytes from 10.0.1.31 (10.0.1.31): icmp_seq=1 ttl=64 time=0.263 ms
64 bytes from 10.0.1.31 (10.0.1.31): icmp_seq=2 ttl=64 time=0.202 ms
64 bytes from 10.0.1.31 (10.0.1.31): icmp_seq=3 ttl=64 time=0.203 ms
64 bytes from 10.0.1.31 (10.0.1.31): icmp_seq=4 ttl=64 time=0.202 ms
--- 10.0.1.31 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3000ms
rtt min/avg/max/mdev = 0.202/0.217/0.263/0.030 ms</computeroutput></screen>
</step>
<step>
<para>From the <emphasis>compute</emphasis> node,
<command>ping</command> a site on the Internet:</para>
<screen><prompt>#</prompt> <userinput>ping -c 4 openstack.org</userinput>
<computeroutput>PING openstack.org (174.143.194.225) 56(84) bytes of data.
64 bytes from 174.143.194.225: icmp_seq=1 ttl=54 time=18.3 ms
64 bytes from 174.143.194.225: icmp_seq=2 ttl=54 time=17.5 ms
64 bytes from 174.143.194.225: icmp_seq=3 ttl=54 time=17.5 ms
64 bytes from 174.143.194.225: icmp_seq=4 ttl=54 time=17.4 ms
--- openstack.org ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3022ms
rtt min/avg/max/mdev = 17.489/17.715/18.346/0.364 ms</computeroutput></screen>
</step>
<step>
<para>From the <emphasis>compute</emphasis> node,
<command>ping</command> the management interface on the
<emphasis>controller</emphasis> node:</para>
<screen><prompt>#</prompt> <userinput>ping -c 4 <replaceable>controller</replaceable></userinput>
<computeroutput>PING controller (10.0.0.11) 56(84) bytes of data.
64 bytes from controller (10.0.0.11): icmp_seq=1 ttl=64 time=0.263 ms
64 bytes from controller (10.0.0.11): icmp_seq=2 ttl=64 time=0.202 ms
64 bytes from controller (10.0.0.11): icmp_seq=3 ttl=64 time=0.203 ms
64 bytes from controller (10.0.0.11): icmp_seq=4 ttl=64 time=0.202 ms
--- controller ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3000ms
rtt min/avg/max/mdev = 0.202/0.217/0.263/0.030 ms</computeroutput></screen>
</step>
<step>
<para>From the <emphasis>compute</emphasis> node,
<command>ping</command> the instance tunnels interface on the
<emphasis>network</emphasis> node:</para>
<screen><prompt>#</prompt> <userinput>ping -c 4 10.0.1.21</userinput>
<computeroutput>PING 10.0.1.21 (10.0.1.21) 56(84) bytes of data.
64 bytes from 10.0.1.21 (10.0.1.21): icmp_seq=1 ttl=64 time=0.263 ms
64 bytes from 10.0.1.21 (10.0.1.21): icmp_seq=2 ttl=64 time=0.202 ms
64 bytes from 10.0.1.21 (10.0.1.21): icmp_seq=3 ttl=64 time=0.203 ms
64 bytes from 10.0.1.21 (10.0.1.21): icmp_seq=4 ttl=64 time=0.202 ms
--- 10.0.1.21 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3000ms
rtt min/avg/max/mdev = 0.202/0.217/0.263/0.030 ms</computeroutput></screen>
</step>
</procedure>
</section>
</section>

View File

@ -1,258 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE section [
<!ENTITY % openstack SYSTEM "../common/entities/openstack.ent">
%openstack;
]>
<section xmlns="http://docbook.org/ns/docbook"
xmlns:xi="http://www.w3.org/2001/XInclude"
xmlns:xlink="http://www.w3.org/1999/xlink"
version="5.0"
xml:id="basics-networking-nova">
<?dbhtml stop-chunking?>
<title>Legacy networking (nova-network)</title>
<para>The example architecture with legacy networking (nova-network)
requires a controller node and at least one compute node. The controller
node contains one network interface on the
<glossterm>management network</glossterm>. The compute node contains
one network interface on the management network and one on the
<glossterm>external network</glossterm>.</para>
<para>The example architecture assumes use of the following networks:</para>
<itemizedlist>
<listitem>
<para>Management on 10.0.0.0/24 with gateway 10.0.0.1</para>
<note>
<para>This network requires a gateway to provide Internet
access to all nodes for administrative purposes such as
package installation, security updates,
<glossterm>DNS</glossterm>, and
<glossterm baseform="Network Time Protocol (NTP)"
>NTP</glossterm>.</para>
</note>
</listitem>
<listitem>
<para>External on 203.0.113.0/24 with gateway 203.0.113.1</para>
<note>
<para>This network requires a gateway to provide Internet
access to instances in your OpenStack environment.</para>
</note>
</listitem>
</itemizedlist>
<para>You can modify these ranges and gateways to work with your
particular network infrastructure.</para>
<note>
<para>Network interface names vary by distribution. Traditionally,
interfaces use "eth" followed by a sequential number. To cover all
variations, this guide simply refers to the first interface as the
interface with the lowest number and the second interface as the
interface with the highest number.</para>
</note>
<figure>
<title>Minimal architecture example with legacy networking
(nova-network)&mdash;Network layout</title>
<mediaobject>
<imageobject>
<imagedata contentwidth="6in"
fileref="../common/figures/installguidearch-nova-networks.png"/>
</imageobject>
</mediaobject>
</figure>
<para>Unless you intend to use the exact configuration provided in this
example architecture, you must modify the networks in this procedure to
match your environment. Also, each node must resolve the other nodes
by name in addition to IP address. For example, the
<replaceable>controller</replaceable> name must resolve to
<literal>10.0.0.11</literal>, the IP address of the management
interface on the controller node.</para>
<warning>
<para>Reconfiguring network interfaces will interrupt network
connectivity. We recommend using a local terminal session for these
procedures.</para>
</warning>
<section xml:id="basics-networking-nova-controller-node">
<title>Controller node</title>
<procedure>
<title>To configure networking:</title>
<step>
<para>Configure the first interface as the management interface:</para>
<para>IP address: 10.0.0.11</para>
<para>Network mask: 255.255.255.0 (or /24)</para>
<para>Default gateway: 10.0.0.1</para>
</step>
<step>
<para>Reboot the system to activate the changes.</para>
</step>
</procedure>
<procedure>
<title>To configure name resolution:</title>
<step>
<para>Set the hostname of the node to
<code><replaceable>controller</replaceable></code>.</para>
</step>
<step>
<para>Edit the <filename>/etc/hosts</filename> file to contain the
following:</para>
<programlisting># controller
10.0.0.11 controller
# compute1
10.0.0.31 compute1</programlisting>
<warning>
<para>Some distributions add an extraneous entry in the
<filename>/etc/hosts</filename> file that resolves the actual
hostname to another loopback IP address such as
<literal>127.0.1.1</literal>. Note it's
<literal>127.0.1.1</literal>, do not remove the required
<literal>127.0.0.1</literal> entry. You must comment out
or remove this entry to prevent name resolution
problems.</para>
</warning>
</step>
</procedure>
</section>
<section xml:id="basics-networking-node-compute-node">
<title>Compute node</title>
<procedure>
<title>To configure networking:</title>
<step>
<para>Configure the first interface as the management interface:</para>
<para>IP address: 10.0.0.31</para>
<para>Network mask: 255.255.255.0 (or /24)</para>
<para>Default gateway: 10.0.0.1</para>
<note>
<para>Additional compute nodes should use 10.0.0.32, 10.0.0.33,
and so on.</para>
</note>
</step>
<step>
<para>The external interface uses a special configuration without an
IP address assigned to it. Configure the second interface as the
external interface:</para>
<para>Replace <replaceable>INTERFACE_NAME</replaceable> with the
actual interface name. For example, <emphasis>eth1</emphasis> or
<emphasis>ens224</emphasis>.</para>
<substeps>
<step os="ubuntu;debian">
<para>Edit the <filename>/etc/network/interfaces</filename> file
to contain the following:</para>
<programlisting># The external network interface
auto <replaceable>INTERFACE_NAME</replaceable>
iface <replaceable>INTERFACE_NAME</replaceable> inet manual
up ip link set dev $IFACE up
down ip link set dev $IFACE down</programlisting>
</step>
<step os="rhel;centos;fedora">
<para>Edit the
<filename>/etc/sysconfig/network-scripts/ifcfg-<replaceable>INTERFACE_NAME</replaceable></filename>
file to contain the following:</para>
<para>Do not change the <literal>HWADDR</literal> and
<literal>UUID</literal> keys.</para>
<programlisting>DEVICE=<replaceable>INTERFACE_NAME</replaceable>
TYPE=Ethernet
ONBOOT="yes"
BOOTPROTO="none"</programlisting>
</step>
<step os="sles;opensuse">
<para>Edit the
<filename>/etc/sysconfig/network/ifcfg-<replaceable>INTERFACE_NAME</replaceable></filename>
file to contain the following:</para>
<programlisting>STARTMODE='auto'
BOOTPROTO='static'</programlisting>
</step>
</substeps>
</step>
<step>
<para>Reboot the system to activate the changes.</para>
</step>
</procedure>
<procedure>
<title>To configure name resolution:</title>
<step>
<para>Set the hostname of the node to <code>compute1</code>.</para>
</step>
<step>
<para>Edit the <filename>/etc/hosts</filename> file to contain the
following:</para>
<programlisting># compute1
10.0.0.31 compute1
# controller
10.0.0.11 controller</programlisting>
<warning>
<para>Some distributions add an extraneous entry in the
<filename>/etc/hosts</filename> file that resolves the actual
hostname to another loopback IP address such as
<literal>127.0.1.1</literal>. Note it's
<literal>127.0.1.1</literal>, do not remove the required
<literal>127.0.0.1</literal> entry. You must comment out
or remove this entry to prevent name resolution
problems.</para>
</warning>
</step>
</procedure>
</section>
<section xml:id="basics-networking-nova-verify">
<title>Verify connectivity</title>
<para>We recommend that you verify network connectivity to the Internet
and among the nodes before proceeding further.</para>
<procedure>
<step>
<para>From the <emphasis>controller</emphasis> node,
<command>ping</command> a site on the Internet:</para>
<screen><prompt>#</prompt> <userinput>ping -c 4 openstack.org</userinput>
<computeroutput>PING openstack.org (174.143.194.225) 56(84) bytes of data.
64 bytes from 174.143.194.225: icmp_seq=1 ttl=54 time=18.3 ms
64 bytes from 174.143.194.225: icmp_seq=2 ttl=54 time=17.5 ms
64 bytes from 174.143.194.225: icmp_seq=3 ttl=54 time=17.5 ms
64 bytes from 174.143.194.225: icmp_seq=4 ttl=54 time=17.4 ms
--- openstack.org ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3022ms
rtt min/avg/max/mdev = 17.489/17.715/18.346/0.364 ms</computeroutput></screen>
</step>
<step>
<para>From the <emphasis>controller</emphasis> node,
<command>ping</command> the management interface on the
<emphasis>compute</emphasis> node:</para>
<screen><prompt>#</prompt> <userinput>ping -c 4 <replaceable>compute1</replaceable></userinput>
<computeroutput>PING compute1 (10.0.0.31) 56(84) bytes of data.
64 bytes from compute1 (10.0.0.31): icmp_seq=1 ttl=64 time=0.263 ms
64 bytes from compute1 (10.0.0.31): icmp_seq=2 ttl=64 time=0.202 ms
64 bytes from compute1 (10.0.0.31): icmp_seq=3 ttl=64 time=0.203 ms
64 bytes from compute1 (10.0.0.31): icmp_seq=4 ttl=64 time=0.202 ms
--- compute1 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3000ms
rtt min/avg/max/mdev = 0.202/0.217/0.263/0.030 ms</computeroutput></screen>
</step>
<step>
<para>From the <emphasis>compute</emphasis> node,
<command>ping</command> a site on the Internet:</para>
<screen><prompt>#</prompt> <userinput>ping -c 4 openstack.org</userinput>
<computeroutput>PING openstack.org (174.143.194.225) 56(84) bytes of data.
64 bytes from 174.143.194.225: icmp_seq=1 ttl=54 time=18.3 ms
64 bytes from 174.143.194.225: icmp_seq=2 ttl=54 time=17.5 ms
64 bytes from 174.143.194.225: icmp_seq=3 ttl=54 time=17.5 ms
64 bytes from 174.143.194.225: icmp_seq=4 ttl=54 time=17.4 ms
--- openstack.org ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3022ms
rtt min/avg/max/mdev = 17.489/17.715/18.346/0.364 ms</computeroutput></screen>
</step>
<step>
<para>From the <emphasis>compute</emphasis> node,
<command>ping</command> the management interface on the
<emphasis>controller</emphasis> node:</para>
<screen><prompt>#</prompt> <userinput>ping -c 4 <replaceable>controller</replaceable></userinput>
<computeroutput>PING controller (10.0.0.11) 56(84) bytes of data.
64 bytes from controller (10.0.0.11): icmp_seq=1 ttl=64 time=0.263 ms
64 bytes from controller (10.0.0.11): icmp_seq=2 ttl=64 time=0.202 ms
64 bytes from controller (10.0.0.11): icmp_seq=3 ttl=64 time=0.203 ms
64 bytes from controller (10.0.0.11): icmp_seq=4 ttl=64 time=0.202 ms
--- controller ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3000ms
rtt min/avg/max/mdev = 0.202/0.217/0.263/0.030 ms</computeroutput></screen>
</step>
</procedure>
</section>
</section>

View File

@ -1,84 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<section xmlns="http://docbook.org/ns/docbook"
xmlns:xi="http://www.w3.org/2001/XInclude"
xmlns:xlink="http://www.w3.org/1999/xlink"
version="5.0"
xml:id="basics-networking">
<?dbhtml stop-chunking?>
<title>Networking</title>
<para>After installing the operating system on each node for the
architecture that you choose to deploy, you must configure the network
interfaces. We recommend that you disable any automated network
management tools and manually edit the appropriate configuration files
for your distribution. For more information on how to configure networking
on your distribution, see the
<link os="ubuntu"
xlink:href="https://help.ubuntu.com/lts/serverguide/network-configuration.html"
>documentation.</link>
<link os="debian"
xlink:href="https://wiki.debian.org/NetworkConfiguration"
>documentation.</link>
<link os="rhel;centos;fedora"
xlink:href="https://access.redhat.com/site/documentation/en-US/Red_Hat_Enterprise_Linux/6/html/Deployment_Guide/s1-networkscripts-interfaces.html"
>documentation.</link>
<link os="sles;opensuse"
xlink:href="https://www.suse.com/documentation/sles-12/book_sle_admin/data/sec_basicnet_manconf.html"
>SLES 12</link>
<phrase os="sles;opensuse"> or </phrase>
<link os="sles;opensuse"
xlink:href="http://activedoc.opensuse.org/book/opensuse-reference/chapter-13-basic-networking"
>openSUSE documentation.</link></para>
<para>All nodes require Internet access for administrative purposes
such as package installation, security updates,
<glossterm>DNS</glossterm>, and
<glossterm baseform="Network Time Protocol (NTP)"
>NTP</glossterm>. In most cases, nodes should obtain Internet
access through the management network interface. To highlight
the importance of network separation, the example architectures
use <link xlink:href="https://tools.ietf.org/html/rfc1918"
>private address space</link> for the management network and assume
that network infrastructure provides Internet access via
<glossterm baseform="Network Address Translation (NAT)"
>NAT</glossterm>. To illustrate the flexibility of
<glossterm>IaaS</glossterm>, the example architectures use public
IP address space for the external network and assume that network
infrastructure provides direct Internet access to instances in
your OpenStack environment. In environments with only one block
of public IP address space, both the management and external networks
must ultimately obtain Internet access using it. For simplicity, the
diagrams in this guide only show Internet access for OpenStack
services.</para>
<procedure os="sles;opensuse">
<title>To disable Network Manager</title>
<step>
<para>Use the YaST network module:</para>
<screen os="opensuse;sles"><prompt>#</prompt> <userinput>yast2 network</userinput></screen>
<para>For more information, see the
<link xlink:href="https://www.suse.com/documentation/sles-12/book_sle_admin/data/sec_nm_activate.html">SLES </link> or
the
<link xlink:href="http://activedoc.opensuse.org/book/opensuse-reference/chapter-13-basic-networking#sec.basicnet.yast.netcard.global">
openSUSE documentation</link>.
</para>
</step>
</procedure>
<note>
<para os="rhel;centos;fedora;sles;opensuse">Your distribution enables
a restrictive <glossterm>firewall</glossterm> by default. During the
installation process, certain steps will fail unless you alter or
disable the firewall. For more information about securing your
environment, refer to the
<link xlink:href="http://docs.openstack.org/sec/">OpenStack
Security Guide</link>.</para>
<para os="ubuntu;debian">Your distribution does not enable a
restrictive <glossterm>firewall</glossterm> by default. For more
information about securing your environment, refer to the
<link xlink:href="http://docs.openstack.org/sec/">OpenStack
Security Guide</link>.</para>
</note>
<para>Proceed to network configuration for the example
<link linkend="basics-networking-neutron">OpenStack Networking (neutron)
</link> or <link linkend="basics-networking-nova">legacy
networking (nova-network)</link> architecture.</para>
<xi:include href="section_basics-networking-neutron.xml"/>
<xi:include href="section_basics-networking-nova.xml"/>
</section>

View File

@ -1,156 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<section xmlns="http://docbook.org/ns/docbook"
xmlns:xi="http://www.w3.org/2001/XInclude"
xmlns:xlink="http://www.w3.org/1999/xlink"
version="5.0"
xml:id="basics-ntp">
<?dbhtml stop-chunking?>
<title>Network Time Protocol (NTP)</title>
<para>You must install
<glossterm baseform="Network Time Protocol (NTP)">NTP</glossterm> to
properly synchronize services among nodes. We recommend that you configure
the controller node to reference more accurate (lower stratum) servers and
other nodes to reference the controller node.</para>
<section xml:id="basics-ntp-controller-node">
<title>Controller node</title>
<procedure>
<title>To install the NTP service</title>
<step>
<screen os="ubuntu;debian"><prompt>#</prompt> <userinput>apt-get install ntp</userinput></screen>
<screen os="rhel;fedora;centos"><prompt>#</prompt> <userinput>yum install ntp</userinput></screen>
<screen os="opensuse;sles"><prompt>#</prompt> <userinput>zypper install ntp</userinput></screen>
</step>
</procedure>
<procedure>
<title>To configure the NTP service</title>
<para>By default, the controller node synchronizes the time via a pool
of public servers. However, you can optionally edit the
<filename>/etc/ntp.conf</filename> file to configure alternative
servers such as those provided by your organization.</para>
<step>
<para>Edit the <filename>/etc/ntp.conf</filename> file and add,
change, or remove the following keys as necessary for your
environment:</para>
<programlisting language="ini">server <replaceable>NTP_SERVER</replaceable> iburst
restrict -4 default kod notrap nomodify
restrict -6 default kod notrap nomodify</programlisting>
<para>Replace <replaceable>NTP_SERVER</replaceable> with the
hostname or IP address of a suitable more accurate (lower stratum)
NTP server. The configuration supports multiple
<literal>server</literal> keys.</para>
<note>
<para>For the <literal>restrict</literal> keys, you essentially
remove the <literal>nopeer</literal> and <literal>noquery</literal>
options.</para>
</note>
<note os="ubuntu;debian">
<para>Remove the <filename>/var/lib/ntp/ntp.conf.dhcp</filename> file
if it exists.</para>
</note>
</step>
<step os="ubuntu;debian">
<para>Restart the NTP service:</para>
<screen><prompt>#</prompt> <userinput>service ntp restart</userinput></screen>
</step>
<step os="rhel;centos;fedora;sles;opensuse">
<para>Start the NTP service and configure it to start when the system
boots:</para>
<screen><prompt>#</prompt> <userinput>systemctl enable ntpd.service</userinput>
<prompt>#</prompt> <userinput>systemctl start ntpd.service</userinput></screen>
</step>
</procedure>
</section>
<section xml:id="basics-ntp-other-nodes">
<title>Other nodes</title>
<procedure>
<title>To install the NTP service</title>
<step>
<screen os="ubuntu;debian"><prompt>#</prompt> <userinput>apt-get install ntp</userinput></screen>
<screen os="rhel;fedora;centos"><prompt>#</prompt> <userinput>yum install ntp</userinput></screen>
<screen os="opensuse;sles"><prompt>#</prompt> <userinput>zypper install ntp</userinput></screen>
</step>
</procedure>
<procedure>
<title>To configure the NTP service</title>
<para>Configure the network and compute nodes to reference the
controller node.</para>
<step>
<para>Edit the <filename>/etc/ntp.conf</filename> file:</para>
<para>Comment out or remove all but one <literal>server</literal>
key and change it to reference the controller node.</para>
<programlisting language="ini">server <replaceable>controller</replaceable> iburst</programlisting>
<note os="ubuntu;debian">
<para>Remove the <filename>/var/lib/ntp/ntp.conf.dhcp</filename> file
if it exists.</para>
</note>
</step>
<step os="ubuntu;debian">
<para>Restart the NTP service:</para>
<screen><prompt>#</prompt> <userinput>service ntp restart</userinput></screen>
</step>
<step os="rhel;centos;fedora;sles;opensuse">
<para>Start the NTP service and configure it to start when the system
boots:</para>
<screen><prompt>#</prompt> <userinput>systemctl enable ntpd.service</userinput>
<prompt>#</prompt> <userinput>systemctl start ntpd.service</userinput></screen>
</step>
</procedure>
</section>
<section xml:id="basics-ntp-verify">
<title>Verify operation</title>
<para>We recommend that you verify NTP synchronization before proceeding
further. Some nodes, particularly those that reference the controller
node, can take several minutes to synchronize.</para>
<procedure>
<step>
<para>Run this command on the <emphasis>controller</emphasis> node:
</para>
<screen><prompt>#</prompt> <userinput>ntpq -c peers</userinput>
<computeroutput> remote refid st t when poll reach delay offset jitter
==============================================================================
*ntp-server1 192.0.2.11 2 u 169 1024 377 1.901 -0.611 5.483
+ntp-server2 192.0.2.12 2 u 887 1024 377 0.922 -0.246 2.864</computeroutput></screen>
<para>Contents in the <emphasis>remote</emphasis> column should
indicate the hostname or IP address of one or more NTP servers.</para>
<note>
<para>Contents in the <emphasis>refid</emphasis> column typically
reference IP addresses of upstream servers.</para>
</note>
</step>
<step>
<para>Run this command on the <emphasis>controller</emphasis> node:
</para>
<screen><prompt>#</prompt> <userinput>ntpq -c assoc</userinput>
<computeroutput>ind assid status conf reach auth condition last_event cnt
===========================================================
1 20487 961a yes yes none sys.peer sys_peer 1
2 20488 941a yes yes none candidate sys_peer 1</computeroutput></screen>
<para>Contents in the <emphasis>condition</emphasis> column should
indicate <literal>sys.peer</literal> for at least one server.</para>
</step>
<step>
<para>Run this command on <emphasis>all other</emphasis> nodes:</para>
<screen><prompt>#</prompt> <userinput>ntpq -c peers</userinput>
<computeroutput> remote refid st t when poll reach delay offset jitter
==============================================================================
*controller 192.0.2.21 3 u 47 64 37 0.308 -0.251 0.079</computeroutput></screen>
<para>Contents in the <emphasis>remote</emphasis> column should
indicate the hostname of the controller node.</para>
<note>
<para>Contents in the <emphasis>refid</emphasis> column typically
reference IP addresses of upstream servers.</para>
</note>
</step>
<step>
<para>Run this command on <emphasis>all other</emphasis> nodes:
</para>
<screen><prompt>#</prompt> <userinput>ntpq -c assoc</userinput>
<computeroutput>ind assid status conf reach auth condition last_event cnt
===========================================================
1 21181 963a yes yes none sys.peer sys_peer 3</computeroutput></screen>
<para>Contents in the <emphasis>condition</emphasis> column should
indicate <literal>sys.peer</literal>.</para>
</step>
</procedure>
</section>
</section>

View File

@ -1,173 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<section xmlns="http://docbook.org/ns/docbook"
xmlns:xi="http://www.w3.org/2001/XInclude"
xmlns:xlink="http://www.w3.org/1999/xlink"
version="5.0"
xml:id="basics-packages">
<?dbhtml stop-chunking?>
<title>OpenStack packages</title>
<para>Distributions release OpenStack packages as part of the distribution
or using other methods because of differing release schedules. Perform
these procedures on all nodes.</para>
<note>
<para>Disable or remove any automatic update services because they can
impact your OpenStack environment.</para>
</note>
<procedure os="ubuntu">
<title>To enable the OpenStack repository</title>
<step>
<para>Install the Ubuntu Cloud archive keyring and repository:</para>
<screen><prompt>#</prompt> <userinput>apt-get install ubuntu-cloud-keyring</userinput>
<prompt>#</prompt> <userinput>echo "deb http://ubuntu-cloud.archive.canonical.com/ubuntu" \
"trusty-updates/kilo main" > /etc/apt/sources.list.d/cloudarchive-kilo.list</userinput></screen>
</step>
</procedure>
<procedure os="rhel;centos;fedora">
<title>To configure prerequisites</title>
<step>
<para>On RHEL and CentOS, enable the
<link
xlink:href="https://fedoraproject.org/wiki/EPEL">EPEL</link> repository:</para>
<screen os="fedora;centos;rhel"><prompt>#</prompt> <userinput>yum install http://dl.fedoraproject.org/pub/epel/7/x86_64/e/epel-release-7-5.noarch.rpm</userinput></screen>
<note>
<para>Fedora does not require this repository.</para>
</note>
</step>
<step>
<para>On RHEL, enable additional repositories using the subscription
manager:</para>
<screen><prompt>#</prompt> <userinput>subscription-manager repos --enable=rhel-7-server-optional-rpms</userinput>
<prompt>#</prompt> <userinput>subscription-manager repos --enable=rhel-7-server-extras-rpms</userinput></screen>
<note>
<para>CentOS and Fedora do not require these repositories.</para>
</note>
</step>
</procedure>
<procedure os="rhel;centos;fedora">
<title>To enable the OpenStack repository</title>
<step>
<para>Install the <package>rdo-release-kilo</package> package to enable
the RDO repository:</para>
<screen os="fedora;centos;rhel"><prompt>#</prompt> <userinput>yum install http://rdo.fedorapeople.org/openstack-kilo/rdo-release-kilo.rpm</userinput></screen>
</step>
</procedure>
<procedure os="sles;opensuse">
<title>To enable the OpenStack repository</title>
<step>
<para>Enable the Open Build Service repositories based on your openSUSE
or SLES version:</para>
<para>On openSUSE 13.2:</para>
<screen><prompt>#</prompt> <userinput>zypper addrepo -f obs://Cloud:OpenStack:Kilo/openSUSE_13.2 Kilo</userinput></screen>
<para>The openSUSE distribution uses the concept of patterns to represent
collections of packages. If you selected 'Minimal Server Selection (Text Mode)'
during initial installation, you may be presented with a dependency conflict when you
attempt to install the OpenStack packages. To avoid this, remove the minimal_base-conflicts package:</para>
<screen><prompt>#</prompt> <userinput>zypper rm patterns-openSUSE-minimal_base-conflicts</userinput></screen>
<para>On SLES 12:</para>
<screen><prompt>#</prompt> <userinput>zypper addrepo -f obs://Cloud:OpenStack:Kilo/SLE_12 Kilo</userinput></screen>
<note>
<para>The packages are signed by GPG key 893A90DAD85F9316. You should
verify the fingerprint of the imported GPG key before using
it.</para>
<programlisting>Key ID: 893A90DAD85F9316
Key Name: Cloud:OpenStack OBS Project &lt;Cloud:OpenStack@build.opensuse.org&gt;
Key Fingerprint: 35B34E18ABC1076D66D5A86B893A90DAD85F9316
Key Created: Tue Oct 8 13:34:21 2013
Key Expires: Thu Dec 17 13:34:21 2015</programlisting>
</note>
</step>
</procedure>
<procedure os="debian">
<title>To use the Debian Wheezy backports archive for
Juno</title>
<para>The <glossterm>Juno</glossterm> release is available
only in Debian Experimental (otherwise called rc-buggy),
as Jessie is frozen soon, and will contain Icehouse.
However, the Debian maintainers
of OpenStack also maintain a non-official Debian repository
for OpenStack containing Wheezy backports.</para>
<step>
<para>On all nodes, install the Debian Wheezy backport repository
Juno:</para>
<screen><prompt>#</prompt> <userinput>echo "deb http://archive.gplhost.com/debian juno-backports main" >>/etc/apt/sources.list</userinput></screen>
</step>
<step>
<para>Install the Debian Wheezy OpenStack repository for
Juno:</para>
<screen><prompt>#</prompt> <userinput>echo "deb http://archive.gplhost.com/debian juno main" >>/etc/apt/sources.list</userinput></screen>
</step>
<step>
<para>Update the repository database and install the key:</para>
<screen><prompt>#</prompt> <userinput>apt-get update &amp;&amp; apt-get install gplhost-archive-keyring</userinput></screen>
</step>
<step>
<para>Update the package database, upgrade your system, and reboot
for all changes to take effect:</para>
<screen><prompt>#</prompt> <userinput>apt-get update &amp;&amp; apt-get dist-upgrade</userinput>
<prompt>#</prompt> <userinput>reboot</userinput></screen>
</step>
</procedure>
<para os="debian">Numerous archive.gplhost.com mirrors are
available around the world. All are available with both FTP and
HTTP protocols (you should use the closest mirror). The list of
mirrors is available at <link
xlink:href="http://archive.gplhost.com/readme.mirrors"
>http://archive.gplhost.com/readme.mirrors</link>.</para>
<procedure xml:id="basics-argparse" os="debian">
<title>Manually install python-argparse</title>
<para>The Debian OpenStack packages are maintained on Debian Sid
(also known as Debian Unstable) - the current development
version. Backported packages run correctly on Debian Wheezy with
one caveat:</para>
<para>All OpenStack packages are written in Python. All packages
support version 2.7; porting to Python version 3 is ongoing.
Note that Debian Wheezy uses
Python 2.6 and 2.7, with Python 2.7 as the default interpreter;
Sid has only Python 2.7. There is one packaging change between
these two. In Python 2.6, you installed the
<package>python-argparse</package> package separately. In
Python 2.7, this package is installed by default. Unfortunately,
in Python 2.7, this package does not include <code>Provides:
python-argparse</code> directive.</para>
<step>
<para>Because the packages are maintained in Sid where the
<code>Provides: python-argparse</code> directive causes an
error, and the Debian OpenStack maintainer wants to maintain one
version of the OpenStack packages, you must manually install the
<package>python-argparse</package> on each OpenStack system
that runs Debian Wheezy before you install the other OpenStack
packages. Use the following command to install the
package:</para>
<screen><prompt>#</prompt> <userinput>apt-get install python-argparse</userinput></screen>
<para>This caveat applies to most OpenStack packages in
Wheezy.</para>
</step>
</procedure>
<procedure>
<title>To finalize installation</title>
<step>
<para>Upgrade the packages on your system:</para>
<screen os="ubuntu;debian"><prompt>#</prompt> <userinput>apt-get update &amp;&amp; apt-get dist-upgrade</userinput></screen>
<screen os="rhel;centos;fedora"><prompt>#</prompt> <userinput>yum upgrade</userinput></screen>
<screen os="sles;opensuse"><prompt>#</prompt> <userinput>zypper refresh &amp;&amp; zypper dist-upgrade</userinput></screen>
<note>
<para>If the upgrade process includes a new kernel, reboot your system
to activate it.</para>
</note>
</step>
<step os="rhel;centos">
<para>RHEL and CentOS enable <glossterm>SELinux</glossterm> by
default. Install the <package>openstack-selinux</package> package
to automatically manage security policies for OpenStack
services:</para>
<screen os="rhel;centos"><prompt>#</prompt> <userinput>yum install openstack-selinux</userinput></screen>
<note>
<para>Fedora does not require this package.</para>
</note>
<note>
<para>The installation process for this package can take a
while.</para>
</note>
</step>
</procedure>
</section>

View File

@ -1,70 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<section xmlns="http://docbook.org/ns/docbook"
xmlns:xi="http://www.w3.org/2001/XInclude"
xmlns:xlink="http://www.w3.org/1999/xlink"
version="5.0"
xml:id="basics-prerequisites">
<?dbhtml stop-chunking?>
<title>Before you begin</title>
<para>For best performance, we recommend that your environment meets or
exceeds the hardware requirements in
<xref linkend="example-architecture-with-neutron-networking-hw"/> or
<xref linkend="example-architecture-with-legacy-networking-hw"/>. However,
OpenStack does not require a significant amount of resources and the
following minimum requirements should support a proof-of-concept
environment with core services and several
<glossterm>CirrOS</glossterm> instances:</para>
<itemizedlist>
<listitem>
<para>Controller Node: 1 processor, 2 GB memory, and 5 GB
storage</para>
</listitem>
<listitem>
<para>Network Node: 1 processor, 512 MB memory, and 5 GB
storage</para>
</listitem>
<listitem>
<para>Compute Node: 1 processor, 2 GB memory, and 10 GB
storage</para>
</listitem>
</itemizedlist>
<para>To minimize clutter and provide more resources for OpenStack, we
recommend a minimal installation of your Linux distribution. Also, we
strongly recommend that you install a 64-bit version of your distribution
on at least the compute node. If you install a 32-bit version of your
distribution on the compute node, attempting to start an instance using
a 64-bit image will fail.</para>
<note>
<para>A single disk partition on each node works for most basic
installations. However, you should consider
<glossterm>Logical Volume Manager (LVM)</glossterm> for installations
with optional services such as Block Storage.</para>
</note>
<para>Many users build their test environments on
<glossterm baseform="virtual machine (VM)">virtual machines
(VMs)</glossterm>. The primary benefits of VMs include the
following:</para>
<itemizedlist>
<listitem>
<para>One physical server can support multiple nodes, each with almost
any number of network interfaces.</para>
</listitem>
<listitem>
<para>Ability to take periodic "snap shots" throughout the installation
process and "roll back" to a working configuration in the event of
a problem.</para>
</listitem>
</itemizedlist>
<para>However, VMs will reduce performance of your instances, particularly
if your hypervisor and/or processor lacks support for hardware
acceleration of nested VMs.</para>
<note>
<para>If you choose to install on VMs, make sure your hypervisor
permits <glossterm>promiscuous mode</glossterm> and disables MAC
address filtering on the
<glossterm>external network</glossterm>.</para>
</note>
<para>For more information about system requirements, see the <link
xlink:href="http://docs.openstack.org/ops/">OpenStack Operations
Guide</link>.</para>
</section>

View File

@ -1,58 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<section xmlns="http://docbook.org/ns/docbook"
xmlns:xi="http://www.w3.org/2001/XInclude"
xmlns:xlink="http://www.w3.org/1999/xlink"
version="5.0"
xml:id="basics-message-queue">
<?dbhtml stop-chunking?>
<title>Message queue</title>
<para>OpenStack uses a <glossterm>message queue</glossterm> to coordinate
operations and status information among services. The message queue
service typically runs on the controller node. OpenStack supports several
message queue services including
<link xlink:href="http://www.rabbitmq.com">RabbitMQ</link>,
<link xlink:href="http://qpid.apache.org">Qpid</link>, and
<link xlink:href="http://zeromq.org">ZeroMQ</link>.
However, most distributions that package OpenStack support a particular
message queue service. This guide implements the RabbitMQ message queue
service because most distributions support it. If you prefer to implement
a different message queue service, consult the documentation associated
with it.</para>
<procedure>
<title>To install the message queue service</title>
<step os="ubuntu;debian">
<para>Install the package:</para>
<screen><prompt>#</prompt> <userinput>apt-get install rabbitmq-server</userinput></screen>
</step>
<step os="rhel;centos;fedora">
<screen><prompt>#</prompt> <userinput>yum install rabbitmq-server</userinput></screen>
</step>
<step os="sles;opensuse">
<screen><prompt>#</prompt> <userinput>zypper install rabbitmq-server</userinput></screen>
</step>
</procedure>
<procedure>
<title>To configure the message queue service</title>
<step os="rhel;centos;fedora;sles;opensuse">
<para>Start the message queue service and configure it to start when the
system boots:</para>
<screen os="rhel;centos;fedora;sles;opensuse"><prompt>#</prompt> <userinput>systemctl enable rabbitmq-server.service</userinput>
<prompt>#</prompt> <userinput>systemctl start rabbitmq-server.service</userinput></screen>
</step>
<step>
<para>Add the <literal>openstack</literal> user:</para>
<screen><prompt>#</prompt> <userinput>rabbitmqctl add_user openstack <replaceable>RABBIT_PASS</replaceable></userinput>
<computeroutput>Creating user "openstack" ...
...done.</computeroutput></screen>
<para>Replace <replaceable>RABBIT_PASS</replaceable> with a suitable
password.</para>
</step>
<step>
<para>Permit configuration, write, and read access for the
<literal>openstack</literal> user:</para>
<screen><prompt>#</prompt> <userinput>rabbitmqctl set_permissions openstack ".*" ".*" ".*"</userinput>
<computeroutput>Setting permissions for user "openstack" in vhost "/" ...
...done.</computeroutput></screen>
</step>
</procedure>
</section>

View File

@ -1,145 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<section xmlns="http://docbook.org/ns/docbook"
xmlns:xi="http://www.w3.org/2001/XInclude"
xmlns:xlink="http://www.w3.org/1999/xlink"
version="5.0"
xml:id="basics-security">
<?dbhtml stop-chunking?>
<title>Security</title>
<para>OpenStack services support various security methods
including password, policy, and encryption. Additionally,
supporting services including the database server and
message broker support at least password security.</para>
<para>To ease the installation process, this guide only
covers password security where applicable. You can create
secure passwords manually, generate them using a tool such as
<link xlink:href="http://sourceforge.net/projects/pwgen/">pwgen</link>,
or by running the following command:</para>
<screen><prompt>$</prompt> <userinput>openssl rand -hex 10</userinput></screen>
<para>For OpenStack services, this guide uses
<replaceable>SERVICE_PASS</replaceable> to reference
service account passwords and
<replaceable>SERVICE_DBPASS</replaceable> to reference
database passwords.</para>
<para>The following table provides a list of services that require
passwords and their associated references in the guide:
<table rules="all">
<caption>Passwords</caption>
<thead>
<tr>
<th>Password name</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td>Database password (no variable used)</td>
<td>Root password for the database</td>
</tr>
<tr>
<td><literal><replaceable>ADMIN_PASS</replaceable></literal></td>
<td>Password of user <literal>admin</literal></td>
</tr>
<tr>
<td><literal><replaceable>CEILOMETER_DBPASS</replaceable></literal></td>
<td>Database password for the Telemetry service</td>
</tr>
<tr>
<td><literal><replaceable>CEILOMETER_PASS</replaceable></literal></td>
<td>Password of Telemetry service user <literal>ceilometer</literal></td>
</tr>
<tr>
<td><literal><replaceable>CINDER_DBPASS</replaceable></literal></td>
<td>Database password for the Block Storage service</td>
</tr>
<tr>
<td><literal><replaceable>CINDER_PASS</replaceable></literal></td>
<td>Password of Block Storage service user <literal>cinder</literal></td>
</tr>
<tr>
<td><literal><replaceable>DASH_DBPASS</replaceable></literal></td>
<td>Database password for the dashboard</td>
</tr>
<tr>
<td><literal><replaceable>DEMO_PASS</replaceable></literal></td>
<td>Password of user <literal>demo</literal></td>
</tr>
<tr>
<td><literal><replaceable>GLANCE_DBPASS</replaceable></literal></td>
<td>Database password for Image service</td>
</tr>
<tr>
<td><literal><replaceable>GLANCE_PASS</replaceable></literal></td>
<td>Password of Image service user <literal>glance</literal></td>
</tr>
<tr>
<td><literal><replaceable>HEAT_DBPASS</replaceable></literal></td>
<td>Database password for the Orchestration service</td>
</tr>
<tr>
<td><literal><replaceable>HEAT_DOMAIN_PASS</replaceable></literal></td>
<td>Password of Orchestration domain</td>
</tr>
<tr>
<td><literal><replaceable>HEAT_PASS</replaceable></literal></td>
<td>Password of Orchestration service user <literal>heat</literal></td>
</tr>
<tr>
<td><literal><replaceable>KEYSTONE_DBPASS</replaceable></literal></td>
<td>Database password of Identity service</td>
</tr>
<tr>
<td><literal><replaceable>NEUTRON_DBPASS</replaceable></literal></td>
<td>Database password for the Networking service</td>
</tr>
<tr>
<td><literal><replaceable>NEUTRON_PASS</replaceable></literal></td>
<td>Password of Networking service user <literal>neutron</literal></td>
</tr>
<tr>
<td><literal><replaceable>NOVA_DBPASS</replaceable></literal></td>
<td>Database password for Compute service</td>
</tr>
<tr>
<td><literal><replaceable>NOVA_PASS</replaceable></literal></td>
<td>Password of Compute service user <literal>nova</literal></td>
</tr>
<tr>
<td><literal><replaceable>RABBIT_PASS</replaceable></literal></td>
<td>Password of user guest of RabbitMQ</td>
</tr>
<tr>
<td><literal><replaceable>SAHARA_DBPASS</replaceable></literal></td>
<td>Database password of Data processing service</td>
</tr>
<tr>
<td><literal><replaceable>SWIFT_PASS</replaceable></literal></td>
<td>Password of Object Storage service user <literal>swift</literal></td>
</tr>
<tr>
<td><literal><replaceable>TROVE_DBPASS</replaceable></literal></td>
<td>Database password of Database service</td>
</tr>
<tr>
<td><literal><replaceable>TROVE_PASS</replaceable></literal></td>
<td>Password of Database service user <literal>trove</literal></td>
</tr>
</tbody>
</table>
</para>
<para>OpenStack and supporting services require administrative
privileges during installation and operation. In some cases,
services perform modifications to the host that can interfere
with deployment automation tools such as Ansible, Chef, and
Puppet. For example, some OpenStack services add a root
wrapper to <literal>sudo</literal> that can interfere with
security policies. See the
<link xlink:href="http://docs.openstack.org/admin-guide-cloud/content/root-wrap-reference.html">Cloud Administrator Guide</link>
for more information. Also, the Networking service assumes
default values for kernel network parameters and modifies
firewall rules. To avoid most issues during your initial
installation, we recommend using a stock deployment of a
supported distribution on your hosts. However, if you choose
to automate deployment of your hosts, review the configuration
and policies applied to them before proceeding further.</para>
</section>

View File

@ -1,43 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<section xmlns="http://docbook.org/ns/docbook"
xmlns:xi="http://www.w3.org/2001/XInclude"
xmlns:xlink="http://www.w3.org/1999/xlink"
version="5.0"
xml:id="ceilometer-cinder">
<?dbhtml stop-chunking?>
<title>Configure the Block Storage service</title>
<para>To retrieve volume-oriented events and samples, you must
configure the Block Storage service to send notifications to the
message bus. Perform these steps on the controller and storage
nodes.</para>
<procedure>
<title>To configure prerequisites</title>
<para>Edit the <filename>/etc/cinder/cinder.conf</filename> file
and complete the following actions:</para>
<step>
<para>In the <literal>[DEFAULT]</literal> section, configure
notifications:</para>
<programlisting language="ini">[DEFAULT]
...
control_exchange = cinder
notification_driver = messagingv2</programlisting>
</step>
<step>
<para>Restart the Block Storage services on the controller node:</para>
<screen os="ubuntu;debian"><prompt>#</prompt> <userinput>service cinder-api restart</userinput>
<prompt>#</prompt> <userinput>service cinder-scheduler restart</userinput></screen>
<screen os="rhel;centos;fedora;opensuse;sles"><prompt>#</prompt> <userinput>systemctl restart openstack-cinder-api.service openstack-cinder-scheduler.service</userinput></screen>
</step>
<step>
<para>Restart the Block Storage services on the storage nodes:</para>
<screen os="ubuntu;debian"><prompt>#</prompt> <userinput>service cinder-volume restart</userinput></screen>
<screen os="rhel;centos;fedora;opensuse;sles"><prompt>#</prompt> <userinput>systemctl restart openstack-cinder-volume.service</userinput></screen>
</step>
<step>
<para>Use the <command>cinder-volume-usage-audit</command> command to
retrieve meters on demand. For more information, see
<link xlink:href="http://docs.openstack.org/admin-guide-cloud/content/section_telemetry-cinder-audit-script.html"
><citetitle>Block Storage audit script setup to get notifications</citetitle></link>.</para>
</step>
</procedure>
</section>

View File

@ -1,435 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE chapter [
<!ENTITY % openstack SYSTEM "../common/entities/openstack.ent">
%openstack;
]>
<section xmlns="http://docbook.org/ns/docbook"
xmlns:xi="http://www.w3.org/2001/XInclude"
xmlns:xlink="http://www.w3.org/1999/xlink"
version="5.0"
xml:id="ceilometer-controller-install">
<title>Install and configure controller node</title>
<para>This section describes how to install and configure the Telemetry
module, code-named ceilometer, on the controller node. The Telemetry
module uses separate agents to collect measurements from each OpenStack
service in your environment.</para>
<procedure os="ubuntu;rhel;centos;fedora;sles;opensuse">
<title>To configure prerequisites</title>
<para>Before you install and configure Telemetry, you must install
<application>MongoDB</application>, create a MongoDB database,
service credentials, and API endpoint.</para>
<step os="opensuse;sles">
<para>Enable the Open Build Service repositories for MongoDB based on
your openSUSE or SLES version:</para>
<para>On openSUSE:</para>
<screen><prompt>#</prompt> <userinput>zypper addrepo -f obs://server:database/openSUSE_13.2 Database</userinput></screen>
<para>On SLES:</para>
<screen><prompt>#</prompt> <userinput>zypper addrepo -f obs://server:database/SLE_12 Database</userinput></screen>
<note>
<para>The packages are signed by GPG key
<literal>562111AC05905EA8</literal>. You should
verify the fingerprint of the imported GPG key before using
it.</para>
<programlisting>Key Name: server:database OBS Project &lt;server:database@build.opensuse.org&gt;
Key Fingerprint: 116EB86331583E47E63CDF4D562111AC05905EA8
Key Created: Thu Oct 11 20:08:39 2012
Key Expires: Sat Dec 20 20:08:39 2014</programlisting>
</note>
</step>
<step>
<para>Install the MongoDB package:</para>
<screen os="rhel;centos;fedora"><prompt>#</prompt> <userinput>yum install mongodb-server mongodb</userinput></screen>
<screen os="opensuse;sles"><prompt>#</prompt> <userinput>zypper install mongodb</userinput></screen>
<screen os="ubuntu"><prompt>#</prompt> <userinput>apt-get install mongodb-server mongodb-clients python-pymongo</userinput></screen>
</step>
<step>
<para>Edit the <filename os="opensuse;sles;ubuntu">/etc/mongodb.conf</filename>
<filename os="rhel;centos;fedora">/etc/mongod.conf</filename> file and
complete the following actions:</para>
<substeps>
<step>
<para>Configure the <literal>bind_ip</literal> key to use the
management interface IP address of the controller node.</para>
<programlisting language="ini">bind_ip = 10.0.0.11</programlisting>
</step>
<step>
<para>By default, MongoDB creates several 1&nbsp;GB journal files
in the <filename>/var/lib/mongodb/journal</filename>
directory. If you want to reduce the size of each journal file
to 128&nbsp;MB and limit total journal space consumption to
512&nbsp;MB, assert the <literal>smallfiles</literal> key:</para>
<programlisting language="ini">smallfiles = true</programlisting>
<para os="ubuntu">If you change the journaling configuration,
stop the MongoDB service, remove the initial journal files, and
start the service:</para>
<screen os="ubuntu"><prompt>#</prompt> <userinput>service mongodb stop</userinput>
<prompt>#</prompt> <userinput>rm /var/lib/mongodb/journal/prealloc.*</userinput>
<prompt>#</prompt> <userinput>service mongodb start</userinput></screen>
<para>You can also disable journaling. For more information, see
the <link xlink:href="http://docs.mongodb.org/manual/"
>MongoDB manual</link>.</para>
</step>
<step os="ubuntu">
<para>Restart the MongoDB service:</para>
<screen><prompt>#</prompt> <userinput>service mongodb restart</userinput></screen>
</step>
<step os="centos;fedora;opensuse;rhel;sles">
<para>Start the MongoDB services and configure them to start when
the system boots:</para>
<screen os="opensuse;sles"><prompt>#</prompt> <userinput>systemctl enable mongodb.service</userinput>
<prompt>#</prompt> <userinput>systemctl start mongodb.service</userinput></screen>
<!-- NB: The use of mongod, and not mongodb, in the below screen is
intentional. -->
<screen os="centos;fedora;rhel"><prompt>#</prompt> <userinput>systemctl enable mongod.service</userinput>
<prompt>#</prompt> <userinput>systemctl start mongod.service</userinput></screen>
</step>
</substeps>
</step>
<step>
<para>Create the <literal>ceilometer</literal> database:</para>
<screen os="centos;fedora;rhel"><prompt>#</prompt> <userinput>mongo --host <replaceable>controller</replaceable> --eval '
db = db.getSiblingDB("ceilometer");
db.createUser({user: "ceilometer",
pwd: "<replaceable>CEILOMETER_DBPASS</replaceable>",
roles: [ "readWrite", "dbAdmin" ]})'</userinput>
<computeroutput>MongoDB shell version: 2.6.x
connecting to: controller:27017/test
Successfully added user: { "user" : "ceilometer", "roles" : [ "readWrite", "dbAdmin" ] }</computeroutput></screen>
<screen os="ubuntu;opensuse;sles"><prompt>#</prompt> <userinput>mongo --host <replaceable>controller</replaceable> --eval '
db = db.getSiblingDB("ceilometer");
db.addUser({user: "ceilometer",
pwd: "<replaceable>CEILOMETER_DBPASS</replaceable>",
roles: [ "readWrite", "dbAdmin" ]})'</userinput>
<computeroutput>MongoDB shell version: 2.4.x
connecting to: controller:27017/test
{
"user" : "ceilometer",
"pwd" : "72f25aeee7ad4be52437d7cd3fc60f6f",
"roles" : [
"readWrite",
"dbAdmin"
],
"_id" : ObjectId("5489c22270d7fad1ba631dc3")
}</computeroutput></screen>
<para>Replace <replaceable>CEILOMETER_DBPASS</replaceable> with a
suitable password.</para>
</step>
<step>
<para>Source the <literal>admin</literal> credentials to gain access
to admin-only CLI commands:</para>
<screen><prompt>$</prompt> <userinput>source admin-openrc.sh</userinput></screen>
</step>
<step>
<para>To create the service credentials, complete these steps:</para>
<substeps>
<step>
<para>Create the <literal>ceilometer</literal> user:</para>
<screen><prompt>$</prompt> <userinput>openstack user create --password-prompt ceilometer</userinput>
<computeroutput>User Password:
Repeat User Password:
+----------+----------------------------------+
| Field | Value |
+----------+----------------------------------+
| email | None |
| enabled | True |
| id | b7657c9ea07a4556aef5d34cf70713a3 |
| name | ceilometer |
| username | ceilometer |
+----------+----------------------------------+</computeroutput></screen>
</step>
<step>
<para>Add the <literal>admin</literal> role to the
<literal>ceilometer</literal> user.</para>
<screen><prompt>$</prompt> <userinput>openstack role add --project service --user ceilometer admin</userinput>
<computeroutput>+-------+----------------------------------+
| Field | Value |
+-------+----------------------------------+
| id | cd2cb9a39e874ea69e5d4b896eb16128 |
| name | admin |
+-------+----------------------------------+</computeroutput></screen>
</step>
<step>
<para>Create the <literal>ceilometer</literal> service
entity:</para>
<screen><prompt>$</prompt> <userinput>openstack service create --name ceilometer \
--description "Telemetry" metering</userinput>
<computeroutput>+-------------+----------------------------------+
| Field | Value |
+-------------+----------------------------------+
| description | Telemetry |
| enabled | True |
| id | 3405453b14da441ebb258edfeba96d83 |
| name | ceilometer |
| type | metering |
+-------------+----------------------------------+</computeroutput></screen>
</step>
</substeps>
</step>
<step>
<para>Create the Telemetry module API endpoint:</para>
<screen><prompt>$</prompt> <userinput>openstack endpoint create \
--publicurl http://<replaceable>controller</replaceable>:8777 \
--internalurl http://<replaceable>controller</replaceable>:8777 \
--adminurl http://<replaceable>controller</replaceable>:8777 \
--region RegionOne \
metering</userinput>
<computeroutput>+--------------+----------------------------------+
| Field | Value |
+--------------+----------------------------------+
| adminurl | http://controller:8777 |
| id | d3716d85b10d4e60a67a52c6af0068cd |
| internalurl | http://controller:8777 |
| publicurl | http://controller:8777 |
| region | RegionOne |
| service_id | 3405453b14da441ebb258edfeba96d83 |
| service_name | ceilometer |
| service_type | metering |
+--------------+----------------------------------+</computeroutput></screen>
</step>
</procedure>
<procedure os="debian">
<title>To configure prerequisites</title>
<para>Before you install and configure Telemetry, you must install
<application>MongoDB</application>.</para>
<step>
<para>Install the MongoDB package:</para>
<screen><prompt>#</prompt> <userinput>apt-get install mongodb-server</userinput></screen>
</step>
<step>
<para>Edit the <filename>/etc/mongodb.conf</filename> file and
complete the following actions:</para>
<substeps>
<step>
<para>Configure the <literal>bind_ip</literal> key to use the
management interface IP address of the controller node.</para>
<programlisting language="ini">bind_ip = 10.0.0.11</programlisting>
</step>
<step>
<para>By default, MongoDB creates several 1&nbsp;GB journal files
in the <filename>/var/lib/mongodb/journal</filename>
directory. If you want to reduce the size of each journal file
to 128&nbsp;MB and limit total journal space consumption to
512&nbsp;MB, assert the <literal>smallfiles</literal> key:</para>
<programlisting language="ini">smallfiles = true</programlisting>
<para>If you change the journaling configuration, stop the MongoDB
service, remove the initial journal files, and start the
service:</para>
<screen><prompt>#</prompt> <userinput>service mongodb stop</userinput>
<prompt>#</prompt> <userinput>rm /var/lib/mongodb/journal/prealloc.*</userinput>
<prompt>#</prompt> <userinput>service mongodb start</userinput></screen>
<para>You can also disable journaling. For more information, see
the <link xlink:href="http://docs.mongodb.org/manual/"
>MongoDB manual</link>.</para>
</step>
<step>
<para>Restart the MongoDB service:</para>
<screen><prompt>#</prompt> <userinput>service mongodb restart</userinput></screen>
</step>
</substeps>
</step>
</procedure>
<procedure os="ubuntu;rhel;centos;fedora;sles;opensuse">
<title>To install and configure the Telemetry module components</title>
<step>
<para>Install the packages:</para>
<screen os="ubuntu"><prompt>#</prompt> <userinput>apt-get install ceilometer-api ceilometer-collector ceilometer-agent-central \
ceilometer-agent-notification ceilometer-alarm-evaluator ceilometer-alarm-notifier \
python-ceilometerclient</userinput></screen>
<screen os="centos;fedora;rhel"><prompt>#</prompt> <userinput>yum install openstack-ceilometer-api openstack-ceilometer-collector \
openstack-ceilometer-notification openstack-ceilometer-central openstack-ceilometer-alarm \
python-ceilometerclient</userinput></screen>
<screen os="opensuse;sles"><prompt>#</prompt> <userinput>zypper install openstack-ceilometer-api openstack-ceilometer-collector \
openstack-ceilometer-agent-notification openstack-ceilometer-agent-central python-ceilometerclient \
openstack-ceilometer-alarm-evaluator openstack-ceilometer-alarm-notifier</userinput></screen>
</step>
<step>
<para>Generate a random value to use as the telemetry secret:</para>
<screen><prompt>$</prompt> <userinput>openssl rand -hex 10</userinput></screen>
</step>
<step>
<para>Edit the <filename>/etc/ceilometer/ceilometer.conf</filename> file
and complete the following actions:</para>
<substeps>
<step>
<para>In the <literal>[database]</literal> section,
configure database access:</para>
<programlisting language="ini">[database]
...
connection = mongodb://ceilometer:<replaceable>CEILOMETER_DBPASS</replaceable>@<replaceable>controller</replaceable>:27017/ceilometer</programlisting>
<para>Replace <replaceable>CEILOMETER_DBPASS</replaceable> with
the password you chose for the Telemetry module database. You
must escape special characters such as ':', '/', '+', and '@'
in the connection string in accordance with RFC2396.</para>
</step>
<step>
<para>In the <literal>[DEFAULT]</literal> and
<literal>[oslo_messaging_rabbit]</literal> sections, configure
<application>RabbitMQ</application> message queue access:</para>
<programlisting language="ini">[DEFAULT]
...
rpc_backend = rabbit
[oslo_messaging_rabbit]
...
rabbit_host = <replaceable>controller</replaceable>
rabbit_userid = openstack
rabbit_password = <replaceable>RABBIT_PASS</replaceable></programlisting>
<para>Replace <replaceable>RABBIT_PASS</replaceable> with the
password you chose for the <literal>openstack</literal> account in
<application>RabbitMQ</application>.</para>
</step>
<step>
<para>In the <literal>[DEFAULT]</literal> and
<literal>[keystone_authtoken]</literal> sections, configure
Identity service access:</para>
<programlisting language="ini">[DEFAULT]
...
auth_strategy = keystone
[keystone_authtoken]
...
auth_uri = http://<replaceable>controller</replaceable>:5000/v2.0
identity_uri = http://<replaceable>controller</replaceable>:35357
admin_tenant_name = service
admin_user = ceilometer
admin_password = <replaceable>CEILOMETER_PASS</replaceable></programlisting>
<para>Replace <replaceable>CEILOMETER_PASS</replaceable> with the
password you chose for the <literal>ceilometer</literal>
user in the Identity service.</para>
<note>
<para>Comment out any <literal>auth_host</literal>,
<literal>auth_port</literal>, and
<literal>auth_protocol</literal> options because the
<literal>identity_uri</literal> option replaces them.</para>
</note>
</step>
<step>
<para>In the <literal>[service_credentials]</literal>
section, configure service credentials:</para>
<programlisting language="ini">[service_credentials]
...
os_auth_url = http://<replaceable>controller</replaceable>:5000/v2.0
os_username = ceilometer
os_tenant_name = service
os_password = <replaceable>CEILOMETER_PASS</replaceable>
os_endpoint_type = internalURL
os_region_name = RegionOne</programlisting>
<para>Replace <replaceable>CEILOMETER_PASS</replaceable> with
the password you chose for the <literal>ceilometer</literal>
user in the Identity service.</para>
</step>
<step>
<para>In the <literal>[publisher]</literal> section, configure
the telemetry secret:</para>
<programlisting language="ini">[publisher]
...
telemetry_secret = <replaceable>TELEMETRY_SECRET</replaceable></programlisting>
<para>Replace <replaceable>TELEMETRY_SECRET</replaceable> with the
telemetry secret that you generated in a previous step.</para>
</step>
<step os="opensuse;sles">
<para>In the <literal>[collector]</literal> section, configure the
dispatcher:</para>
<!-- should this be 'dispatcher = database' ? -->
<programlisting language="ini">[collector]
...
dispatcher = database</programlisting>
</step>
<step>
<para>(Optional) To assist with troubleshooting,
enable verbose logging in the <literal>[DEFAULT]</literal>
section:</para>
<programlisting language="ini">[DEFAULT]
...
verbose = True</programlisting>
</step>
</substeps>
</step>
</procedure>
<procedure os="debian">
<title>To install and configure the Telemetry module components</title>
<step>
<para>Install the packages:</para>
<screen><prompt>#</prompt> <userinput>apt-get install ceilometer-api ceilometer-collector ceilometer-agent-central \
ceilometer-agent-notification ceilometer-alarm-evaluator ceilometer-alarm-notifier \
python-ceilometerclient</userinput></screen>
</step>
<step>
<para>Respond to prompts for
<link linkend="debconf-dbconfig-common">database management</link>,
<link linkend="debconf-keystone_authtoken">Identity service
credentials</link>,
<link linkend="debconf-api-endpoints">service endpoint
registration</link>, and
<link linkend="debconf-rabbitmq">message broker
credentials</link>.</para>
</step>
<step>
<para>Generate a random value to use as the telemetry secret:</para>
<screen><prompt>$</prompt> <userinput>openssl rand -hex 10</userinput></screen>
</step>
<step>
<para>Edit the <filename>/etc/ceilometer/ceilometer.conf</filename> file
and complete the following actions:</para>
<substeps>
<step>
<para>In the <literal>[publisher]</literal> section, configure
the telemetry secret:</para>
<programlisting language="ini">[publisher]
...
telemetry_secret = <replaceable>TELEMETRY_SECRET</replaceable></programlisting>
<para>Replace <replaceable>TELEMETRY_SECRET</replaceable> with the
telemetry secret that you generated in a previous step.</para>
</step>
<step>
<para>In the <literal>[service_credentials]</literal>
section, configure service credentials:</para>
<programlisting language="ini">[service_credentials]
...
os_auth_url = http://<replaceable>controller</replaceable>:5000/v2.0
os_username = ceilometer
os_tenant_name = service
os_password = <replaceable>CEILOMETER_PASS</replaceable></programlisting>
<para>Replace <replaceable>CEILOMETER_PASS</replaceable> with
the password you chose for the <literal>ceilometer</literal>
user in the Identity service.</para>
</step>
</substeps>
</step>
</procedure>
<procedure>
<title>To finalize installation</title>
<step os="ubuntu;debian">
<para>Restart the Telemetry services:</para>
<screen><prompt>#</prompt> <userinput>service ceilometer-agent-central restart</userinput>
<prompt>#</prompt> <userinput>service ceilometer-agent-notification restart</userinput>
<prompt>#</prompt> <userinput>service ceilometer-api restart</userinput>
<prompt>#</prompt> <userinput>service ceilometer-collector restart</userinput>
<prompt>#</prompt> <userinput>service ceilometer-alarm-evaluator restart</userinput>
<prompt>#</prompt> <userinput>service ceilometer-alarm-notifier restart</userinput></screen>
</step>
<step os="sles;opensuse">
<para>Start the Telemetry services and configure them to start when the
system boots:</para>
<screen><prompt>#</prompt> <userinput>systemctl enable openstack-ceilometer-api.service openstack-ceilometer-agent-notification.service \
openstack-ceilometer-agent-central.service openstack-ceilometer-collector.service \
openstack-ceilometer-alarm-evaluator.service openstack-ceilometer-alarm-notifier.service</userinput>
<prompt>#</prompt> <userinput>systemctl start openstack-ceilometer-api.service openstack-ceilometer-agent-notification.service \
openstack-ceilometer-agent-central.service openstack-ceilometer-collector.service \
openstack-ceilometer-alarm-evaluator.service openstack-ceilometer-alarm-notifier.service</userinput></screen>
</step>
<step os="rhel;centos;fedora">
<para>Start the Telemetry services and configure them to start when the
system boots:</para>
<screen><prompt>#</prompt> <userinput>systemctl enable openstack-ceilometer-api.service openstack-ceilometer-notification.service \
openstack-ceilometer-central.service openstack-ceilometer-collector.service \
openstack-ceilometer-alarm-evaluator.service openstack-ceilometer-alarm-notifier.service</userinput>
<prompt>#</prompt> <userinput>systemctl start openstack-ceilometer-api.service openstack-ceilometer-notification.service \
openstack-ceilometer-central.service openstack-ceilometer-collector.service \
openstack-ceilometer-alarm-evaluator.service openstack-ceilometer-alarm-notifier.service</userinput></screen>
</step>
</procedure>
</section>

View File

@ -1,36 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<section xmlns="http://docbook.org/ns/docbook"
xmlns:xi="http://www.w3.org/2001/XInclude"
xmlns:xlink="http://www.w3.org/1999/xlink"
version="5.0"
xml:id="ceilometer-glance">
<title>Configure the Image service</title>
<para>To retrieve image-oriented events and samples, configure
the Image service to send notifications to the message bus.
Perform these steps on the controller node.</para>
<procedure>
<para>Edit the <filename>/etc/glance/glance-api.conf</filename>
and <filename>/etc/glance/glance-registry.conf</filename> files and
complete the following actions:</para>
<step>
<para>In the <literal>[DEFAULT]</literal> section, configure
notifications and RabbitMQ message broker access:</para>
<programlisting language="ini">[DEFAULT]
...
notification_driver = messagingv2
rpc_backend = rabbit
rabbit_host = <replaceable>controller</replaceable>
rabbit_userid = openstack
rabbit_password = <replaceable>RABBIT_PASS</replaceable></programlisting>
<para>Replace <replaceable>RABBIT_PASS</replaceable> with the
password you chose for the <literal>openstack</literal> account in
<application>RabbitMQ</application>.</para>
</step>
<step>
<para>Restart the Image service:</para>
<screen os="ubuntu;debian"><prompt>#</prompt> <userinput>service glance-registry restart</userinput>
<prompt>#</prompt> <userinput>service glance-api restart</userinput></screen>
<screen os="rhel;centos;fedora;opensuse;sles"><prompt>#</prompt> <userinput>systemctl restart openstack-glance-api.service openstack-glance-registry.service</userinput></screen>
</step>
</procedure>
</section>

View File

@ -1,134 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<section xmlns="http://docbook.org/ns/docbook"
xmlns:xi="http://www.w3.org/2001/XInclude"
xmlns:xlink="http://www.w3.org/1999/xlink"
version="5.0"
xml:id="ceilometer-nova">
<?dbhtml stop-chunking?>
<title>Configure the Compute service</title>
<para>Telemetry uses a combination of notifications and an agent to
collect Compute meters. Perform these steps on each compute node.</para>
<procedure>
<title>To install and configure the agent</title>
<step>
<para>Install the packages:</para>
<screen os="ubuntu;debian"><prompt>#</prompt> <userinput>apt-get install ceilometer-agent-compute</userinput></screen>
<screen os="rhel;centos;fedora"><prompt>#</prompt> <userinput>yum install openstack-ceilometer-compute python-ceilometerclient python-pecan</userinput></screen>
<screen os="opensuse;sles"><prompt>#</prompt> <userinput>zypper install openstack-ceilometer-agent-compute</userinput></screen>
</step>
<step>
<para>Edit the <filename>/etc/ceilometer/ceilometer.conf</filename>
file and complete the following actions:</para>
<substeps>
<step>
<para>In the <literal>[publisher]</literal> section, configure the
telemetry secret:</para>
<programlisting language="ini">[publisher]
...
telemetry_secret = <replaceable>TELEMETRY_SECRET</replaceable></programlisting>
<para>Replace <replaceable>TELEMETRY_SECRET</replaceable> with
the telemetry secret you chose for the Telemetry module.</para>
</step>
<step os="centos;fedora;opensuse;rhel;sles;ubuntu">
<para>In the <literal>[DEFAULT]</literal> and
<literal>[oslo_messaging_rabbit]</literal> sections, configure
<application>RabbitMQ</application> message queue access:</para>
<programlisting language="ini">[DEFAULT]
...
rpc_backend = rabbit
[oslo_messaging_rabbit]
...
rabbit_host = <replaceable>controller</replaceable>
rabbit_userid = openstack
rabbit_password = <replaceable>RABBIT_PASS</replaceable></programlisting>
<para>Replace <replaceable>RABBIT_PASS</replaceable> with the
password you chose for the <literal>openstack</literal> account in
<application>RabbitMQ</application>.</para>
</step>
<step>
<para>In the <literal>[keystone_authtoken]</literal> section,
configure Identity service access:</para>
<programlisting language="ini">[keystone_authtoken]
...
auth_uri = http://<replaceable>controller</replaceable>:5000/v2.0
identity_uri = http://<replaceable>controller</replaceable>:35357
admin_tenant_name = service
admin_user = ceilometer
admin_password = <replaceable>CEILOMETER_PASS</replaceable></programlisting>
<para>Replace <replaceable>CEILOMETER_PASS</replaceable> with the
password you chose for the Telemetry module database.</para>
<note>
<para>Comment out any <literal>auth_host</literal>,
<literal>auth_port</literal>, and
<literal>auth_protocol</literal> options because the
<literal>identity_uri</literal> option replaces them.</para>
</note>
</step>
<step>
<para>In the <literal>[service_credentials]</literal> section,
configure service credentials:</para>
<programlisting language="ini">[service_credentials]
...
os_auth_url = http://<replaceable>controller</replaceable>:5000/v2.0
os_username = ceilometer
os_tenant_name = service
os_password = <replaceable>CEILOMETER_PASS</replaceable>
os_endpoint_type = internalURL
os_region_name = RegionOne</programlisting>
<para>Replace <replaceable>CEILOMETER_PASS</replaceable> with the
password you chose for the <literal>ceilometer</literal> user in
the Identity service.</para>
</step>
<step>
<para>(Optional) To assist with troubleshooting,
enable verbose logging in the <literal>[DEFAULT]</literal>
section:</para>
<programlisting language="ini">[DEFAULT]
...
verbose = True</programlisting>
</step>
</substeps>
</step>
</procedure>
<procedure>
<title>To configure notifications</title>
<para>Configure the Compute service to send notifications to the
message bus.</para>
<step>
<para>Edit the <filename>/etc/nova/nova.conf</filename> file and
configure notifications in the <literal>[DEFAULT]</literal>
section:</para>
<programlisting language="ini">[DEFAULT]
...
instance_usage_audit = True
instance_usage_audit_period = hour
notify_on_state_change = vm_and_task_state
notification_driver = messagingv2</programlisting>
</step>
</procedure>
<procedure>
<title>To finalize installation</title>
<step os="ubuntu;debian">
<para>Restart the agent:</para>
<screen><prompt>#</prompt> <userinput>service ceilometer-agent-compute restart</userinput></screen>
</step>
<step os="sles;opensuse">
<para>Start the Telemetry agent and configure it to start when the
system boots:</para>
<screen><prompt>#</prompt> <userinput>systemctl enable openstack-ceilometer-agent-compute.service</userinput>
<prompt>#</prompt> <userinput>systemctl start openstack-ceilometer-agent-compute.service</userinput></screen>
</step>
<step os="rhel;centos;fedora">
<para>Start the Telemetry agent and configure it to start when the
system boots:</para>
<screen><prompt>#</prompt> <userinput>systemctl enable openstack-ceilometer-compute.service</userinput>
<prompt>#</prompt> <userinput>systemctl start openstack-ceilometer-compute.service</userinput></screen>
</step>
<step>
<para>Restart the Compute service:</para>
<screen os="ubuntu;debian"><prompt>#</prompt> <userinput>service nova-compute restart</userinput></screen>
<screen os="rhel;centos;fedora;opensuse;sles"><prompt>#</prompt> <userinput>systemctl restart openstack-nova-compute.service</userinput></screen>
</step>
</procedure>
</section>

View File

@ -1,99 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<section xmlns="http://docbook.org/ns/docbook"
xmlns:xi="http://www.w3.org/2001/XInclude"
xmlns:xlink="http://www.w3.org/1999/xlink"
version="5.0"
xml:id="ceilometer-swift">
<title>Configure the Object Storage service</title>
<para>To retrieve storage-oriented events and samples, configure the
Object Storage service to send notifications to the message bus.</para>
<procedure>
<title>To configure prerequisites</title>
<para>The Telemetry service requires access to the Object Storage
service using the <literal>ResellerAdmin</literal> role. Perform
these steps on the controller node.</para>
<step>
<para>Source the <literal>admin</literal> credentials to gain
access to admin-only CLI commands.</para>
<screen><prompt>$</prompt> <userinput>source admin-openrc.sh</userinput></screen>
</step>
<step>
<para>Create the <literal>ResellerAdmin</literal> role:</para>
<screen><prompt>$</prompt> <userinput>openstack role create ResellerAdmin</userinput>
<computeroutput>+-------+----------------------------------+
| Field | Value |
+-------+----------------------------------+
| id | 462fa46c13fd4798a95a3bfbe27b5e54 |
| name | ResellerAdmin |
+-------+----------------------------------+</computeroutput></screen>
</step>
<step>
<para>Add the <literal>ResellerAdmin</literal> role to the
<literal>service</literal> tenant and <literal>ceilometer</literal>
user:</para>
<screen><prompt>$</prompt> <userinput>openstack role add --project service --user ceilometer ResellerAdmin</userinput>
<computeroutput>+-------+----------------------------------+
| Field | Value |
+-------+----------------------------------+
| id | 462fa46c13fd4798a95a3bfbe27b5e54 |
| name | ResellerAdmin |
+-------+----------------------------------+</computeroutput></screen>
</step>
</procedure>
<procedure>
<title>To configure notifications</title>
<para>Perform these steps on the controller and any other nodes that
run the Object Storage proxy service.</para>
<step>
<para>Edit the <filename>/etc/swift/proxy-server.conf</filename> file
and complete the following actions:</para>
<substeps>
<step>
<para>In the <literal>[filter:keystoneauth]</literal> section,
add the <literal>ResellerAdmin</literal> role:</para>
<programlisting language="ini">[filter:keystoneauth]
...
operator_roles = admin,user,ResellerAdmin</programlisting>
</step>
<step>
<para>In the <literal>[pipeline:main]</literal> section, add
<literal>ceilometer</literal>:</para>
<programlisting language="ini">[pipeline:main]
...
pipeline = authtoken cache healthcheck keystoneauth proxy-logging ceilometer proxy-server</programlisting>
</step>
<step>
<para>In the <literal>[filter:ceilometer]</literal> section, configure
notifications:</para>
<programlisting language="ini">[filter:ceilometer]
...
paste.filter_factory = ceilometermiddleware.swift:filter_factory
control_exchange = swift
url = rabbit://openstack:<replaceable>RABBIT_PASS</replaceable>@<replaceable>controller</replaceable>:5672/
driver = messagingv2
topic = notifications
log_level = WARN</programlisting>
<para>Replace <replaceable>RABBIT_PASS</replaceable> with the
password you chose for the <literal>openstack</literal> account in
<application>RabbitMQ</application>.</para>
</step>
</substeps>
</step>
<step>
<para>Add the <literal>swift</literal> system user to the
<literal>ceilometer</literal> system group to permit access to the
Telemetry configuration files by the Object Storage service:</para>
<screen><prompt>#</prompt> <userinput>usermod -a -G ceilometer swift</userinput></screen>
</step>
<step os="fedora;centos;rhel">
<!-- Workaround for https://bugzilla.redhat.com/show_bug.cgi?id=1214928. -->
<para>Install the <package>ceilometermiddleware</package> package:</para>
<screen><prompt>#</prompt> <userinput>pip install ceilometermiddleware</userinput></screen>
</step>
<step>
<para>Restart the Object Storage proxy service:</para>
<screen os="ubuntu;debian"><prompt>#</prompt> <userinput>service swift-proxy restart</userinput></screen>
<screen os="rhel;centos;fedora;opensuse;sles"><prompt>#</prompt> <userinput>systemctl restart openstack-swift-proxy.service</userinput></screen>
</step>
</procedure>
</section>

View File

@ -1,67 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<section xmlns="http://docbook.org/ns/docbook"
xmlns:xi="http://www.w3.org/2001/XInclude"
xmlns:xlink="http://www.w3.org/1999/xlink"
version="5.0"
xml:id="ceilometer-verify">
<title>Verify the Telemetry installation</title>
<para>This section describes how to verify operation of the Telemetry
module.</para>
<procedure>
<note>
<para>Perform these steps on the controller node.</para>
</note>
<step>
<para>Source the <literal>admin</literal> credentials to gain access to
admin-only CLI commands:</para>
<screen><prompt>$</prompt> <userinput>source admin-openrc.sh</userinput></screen>
</step>
<step>
<para>List available meters:</para>
<screen><prompt>$</prompt> <userinput>ceilometer meter-list</userinput>
<computeroutput>+--------------+-------+-------+--------------------------------------+---------+----------------------------------+
| Name | Type | Unit | Resource ID | User ID | Project ID |
+--------------+-------+-------+--------------------------------------+---------+----------------------------------+
| image | gauge | image | acafc7c0-40aa-4026-9673-b879898e1fc2 | None | cf12a15c5ea84b019aec3dc45580896b |
| image.size | gauge | B | acafc7c0-40aa-4026-9673-b879898e1fc2 | None | cf12a15c5ea84b019aec3dc45580896b |
| image.update | delta | image | acafc7c0-40aa-4026-9673-b879898e1fc2 | None | cf12a15c5ea84b019aec3dc45580896b |
| image.upload | delta | image | acafc7c0-40aa-4026-9673-b879898e1fc2 | None | cf12a15c5ea84b019aec3dc45580896b |
+--------------+-------+-------+--------------------------------------+---------+----------------------------------+</computeroutput></screen>
</step>
<step>
<para>Download an image from the Image service:</para>
<screen>
<prompt>$</prompt> <userinput>IMAGE_ID=$(glance image-list | grep 'cirros-0.3.4-x86_64' | awk '{ print $2 }')</userinput>
<prompt>$</prompt> <userinput>glance image-download $IMAGE_ID > /tmp/cirros.img</userinput></screen>
</step>
<step>
<para>List available meters again to validate detection of the image
download:</para>
<screen><prompt>$</prompt> <userinput>ceilometer meter-list</userinput>
<computeroutput>+----------------+-------+-------+--------------------------------------+---------+----------------------------------+
| Name | Type | Unit | Resource ID | User ID | Project ID |
+----------------+-------+-------+--------------------------------------+---------+----------------------------------+
| image | gauge | image | acafc7c0-40aa-4026-9673-b879898e1fc2 | None | cf12a15c5ea84b019aec3dc45580896b |
| image.download | delta | B | acafc7c0-40aa-4026-9673-b879898e1fc2 | None | cf12a15c5ea84b019aec3dc45580896b |
| image.serve | delta | B | acafc7c0-40aa-4026-9673-b879898e1fc2 | None | cf12a15c5ea84b019aec3dc45580896b |
| image.size | gauge | B | acafc7c0-40aa-4026-9673-b879898e1fc2 | None | cf12a15c5ea84b019aec3dc45580896b |
| image.update | delta | image | acafc7c0-40aa-4026-9673-b879898e1fc2 | None | cf12a15c5ea84b019aec3dc45580896b |
| image.upload | delta | image | acafc7c0-40aa-4026-9673-b879898e1fc2 | None | cf12a15c5ea84b019aec3dc45580896b |
+----------------+-------+-------+--------------------------------------+---------+----------------------------------+</computeroutput></screen>
</step>
<step>
<para>Retrieve usage statistics from the <literal>image.download</literal>
meter:</para>
<screen><prompt>$</prompt> <userinput>ceilometer statistics -m image.download -p 60</userinput>
<computeroutput>+--------+---------------------+---------------------+------------+------------+------------+------------+-------+----------+----------------------------+----------------------------+
| Period | Period Start | Period End | Max | Min | Avg | Sum | Count | Duration | Duration Start | Duration End |
+--------+---------------------+---------------------+------------+------------+------------+------------+-------+----------+----------------------------+----------------------------+
| 60 | 2015-04-21T12:21:45 | 2015-04-21T12:22:45 | 13200896.0 | 13200896.0 | 13200896.0 | 13200896.0 | 1 | 0.0 | 2015-04-21T12:22:12.983000 | 2015-04-21T12:22:12.983000 |
+--------+---------------------+---------------------+------------+------------+------------+------------+-------+----------+----------------------------+----------------------------+</computeroutput></screen>
</step>
<step>
<para>Remove the previously downloaded image file <filename>/tmp/cirros.img</filename>:</para>
<screen><prompt>$</prompt> <userinput>rm /tmp/cirros.img</userinput></screen>
</step>
</procedure>
</section>

View File

@ -1,286 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<section xmlns="http://docbook.org/ns/docbook"
xmlns:xi="http://www.w3.org/2001/XInclude"
xmlns:xlink="http://www.w3.org/1999/xlink"
version="5.0"
xml:id="cinder-install-controller-node">
<title>Install and configure controller node</title>
<para>This section describes how to install and configure the Block
Storage service, code-named cinder, on the controller node. This
service requires at least one additional storage node that provides
volumes to instances.</para>
<procedure os="ubuntu;rhel;centos;fedora;sles;opensuse">
<title>To configure prerequisites</title>
<para>Before you install and configure the Block Storage service, you
must create a database, service credentials, and API endpoint.</para>
<step>
<para>To create the database, complete these steps:</para>
<substeps>
<step>
<para>Use the database access client to connect to the database
server as the <literal>root</literal> user:</para>
<screen><prompt>$</prompt> <userinput>mysql -u root -p</userinput></screen>
</step>
<step>
<para>Create the <literal>cinder</literal> database:</para>
<screen><userinput>CREATE DATABASE cinder;</userinput></screen>
</step>
<step>
<para>Grant proper access to the <literal>cinder</literal>
database:</para>
<screen><userinput>GRANT ALL PRIVILEGES ON cinder.* TO 'cinder'@'localhost' \
IDENTIFIED BY '<replaceable>CINDER_DBPASS</replaceable>';</userinput>
<userinput>GRANT ALL PRIVILEGES ON cinder.* TO 'cinder'@'%' \
IDENTIFIED BY '<replaceable>CINDER_DBPASS</replaceable>';</userinput></screen>
<para>Replace <replaceable>CINDER_DBPASS</replaceable> with
a suitable password.</para>
</step>
<step>
<para>Exit the database access client.</para>
</step>
</substeps>
</step>
<step>
<para>Source the <literal>admin</literal> credentials to gain access to
admin-only CLI commands:</para>
<screen><prompt>$</prompt> <userinput>source admin-openrc.sh</userinput></screen>
</step>
<step>
<para>To create the service credentials, complete these steps:</para>
<substeps>
<step>
<para>Create a <literal>cinder</literal> user:</para>
<screen><prompt>$</prompt> <userinput>openstack user create --password-prompt cinder</userinput>
<computeroutput>User Password:
Repeat User Password:
+----------+----------------------------------+
| Field | Value |
+----------+----------------------------------+
| email | None |
| enabled | True |
| id | 881ab2de4f7941e79504a759a83308be |
| name | cinder |
| username | cinder |
+----------+----------------------------------+</computeroutput></screen>
</step>
<step>
<para>Add the <literal>admin</literal> role to the
<literal>cinder</literal> user:</para>
<screen><prompt>$</prompt> <userinput>openstack role add --project service --user cinder admin</userinput>
<computeroutput>+-------+----------------------------------+
| Field | Value |
+-------+----------------------------------+
| id | cd2cb9a39e874ea69e5d4b896eb16128 |
| name | admin |
+-------+----------------------------------+</computeroutput></screen>
</step>
<step>
<para>Create the <literal>cinder</literal> service entities:</para>
<screen><prompt>$</prompt> <userinput>openstack service create --name cinder \
--description "OpenStack Block Storage" volume</userinput>
<computeroutput>+-------------+----------------------------------+
| Field | Value |
+-------------+----------------------------------+
| description | OpenStack Block Storage |
| enabled | True |
| id | 1e494c3e22a24baaafcaf777d4d467eb |
| name | cinder |
| type | volume |
+-------------+----------------------------------+</computeroutput></screen>
<screen><prompt>$</prompt> <userinput>openstack service create --name cinderv2 \
--description "OpenStack Block Storage" volumev2</userinput>
<computeroutput>+-------------+----------------------------------+
| Field | Value |
+-------------+----------------------------------+
| description | OpenStack Block Storage |
| enabled | True |
| id | 16e038e449c94b40868277f1d801edb5 |
| name | cinderv2 |
| type | volumev2 |
+-------------+----------------------------------+</computeroutput></screen>
<note>
<para>The Block Storage service requires both the
<literal>volume</literal> and <literal>volumev2</literal>
services. However, both services use the same API
endpoint that references the Block Storage version 2 API.</para>
</note>
</step>
</substeps>
</step>
<step>
<para>Create the Block Storage service API endpoints:</para>
<screen><prompt>$</prompt> <userinput>openstack endpoint create \
--publicurl http://<replaceable>controller</replaceable>:8776/v2/%\(tenant_id\)s \
--internalurl http://<replaceable>controller</replaceable>:8776/v2/%\(tenant_id\)s \
--adminurl http://<replaceable>controller</replaceable>:8776/v2/%\(tenant_id\)s \
--region RegionOne \
volume</userinput>
<computeroutput>+--------------+-----------------------------------------+
| Field | Value |
+--------------+-----------------------------------------+
| adminurl | http://controller:8776/v2/%(tenant_id)s |
| id | d1b7291a2d794e26963b322c7f2a55a4 |
| internalurl | http://controller:8776/v2/%(tenant_id)s |
| publicurl | http://controller:8776/v2/%(tenant_id)s |
| region | RegionOne |
| service_id | 1e494c3e22a24baaafcaf777d4d467eb |
| service_name | cinder |
| service_type | volume |
+--------------+-----------------------------------------+</computeroutput></screen>
<screen><prompt>$</prompt> <userinput>openstack endpoint create \
--publicurl http://<replaceable>controller</replaceable>:8776/v2/%\(tenant_id\)s \
--internalurl http://<replaceable>controller</replaceable>:8776/v2/%\(tenant_id\)s \
--adminurl http://<replaceable>controller</replaceable>:8776/v2/%\(tenant_id\)s \
--region RegionOne \
volumev2</userinput>
<computeroutput>+--------------+-----------------------------------------+
| Field | Value |
+--------------+-----------------------------------------+
| adminurl | http://controller:8776/v2/%(tenant_id)s |
| id | 097b4a6fc8ba44b4b10d4822d2d9e076 |
| internalurl | http://controller:8776/v2/%(tenant_id)s |
| publicurl | http://controller:8776/v2/%(tenant_id)s |
| region | RegionOne |
| service_id | 16e038e449c94b40868277f1d801edb5 |
| service_name | cinderv2 |
| service_type | volumev2 |
+--------------+-----------------------------------------+</computeroutput></screen>
</step>
</procedure>
<procedure os="ubuntu;rhel;centos;fedora;sles;opensuse">
<title>To install and configure Block Storage controller components</title>
<step>
<para>Install the packages:</para>
<screen os="ubuntu"><prompt>#</prompt> <userinput>apt-get install cinder-api cinder-scheduler python-cinderclient</userinput></screen>
<screen os="rhel;centos;fedora"><prompt>#</prompt> <userinput>yum install openstack-cinder python-cinderclient python-oslo-db</userinput></screen>
<screen os="sles;opensuse"><prompt>#</prompt> <userinput>zypper install openstack-cinder-api openstack-cinder-scheduler python-cinderclient</userinput></screen>
</step>
<step>
<!-- Workaround for https://bugzilla.redhat.com/show_bug.cgi?id=1212900. -->
<para os="rhel;centos;fedora">Copy the <filename>/usr/share/cinder/cinder-dist.conf</filename> file
to <filename>/etc/cinder/cinder.conf</filename>.</para>
<screen os="rhel;centos;fedora"><prompt>#</prompt> <userinput>cp /usr/share/cinder/cinder-dist.conf /etc/cinder/cinder.conf</userinput>
<prompt>#</prompt> <userinput>chown -R cinder:cinder /etc/cinder/cinder.conf</userinput></screen>
<para>Edit the <filename>/etc/cinder/cinder.conf</filename> file and
complete the following actions:</para>
<substeps>
<step>
<para>In the <literal>[database]</literal> section, configure
database access:</para>
<programlisting language="ini">[database]
...
connection = mysql://cinder:<replaceable>CINDER_DBPASS</replaceable>@controller/cinder</programlisting>
<para>Replace <replaceable>CINDER_DBPASS</replaceable> with the
password you chose for the Block Storage database.</para>
</step>
<step>
<para>In the <literal>[DEFAULT]</literal> and
<literal>[oslo_messaging_rabbit]</literal> sections, configure
<application>RabbitMQ</application> message queue access:</para>
<programlisting language="ini">[DEFAULT]
...
rpc_backend = rabbit
[oslo_messaging_rabbit]
...
rabbit_host = <replaceable>controller</replaceable>
rabbit_userid = openstack
rabbit_password = <replaceable>RABBIT_PASS</replaceable></programlisting>
<para>Replace <replaceable>RABBIT_PASS</replaceable> with the
password you chose for the <literal>openstack</literal> account in
<application>RabbitMQ</application>.</para>
</step>
<step>
<para>In the <literal>[DEFAULT]</literal> and
<literal>[keystone_authtoken]</literal> sections,
configure Identity service access:</para>
<programlisting language="ini">[DEFAULT]
...
auth_strategy = keystone
[keystone_authtoken]
...
auth_uri = http://<replaceable>controller</replaceable>:5000
auth_url = http://<replaceable>controller</replaceable>:35357
auth_plugin = password
project_domain_id = default
user_domain_id = default
project_name = service
username = cinder
password = <replaceable>CINDER_PASS</replaceable></programlisting>
<para>Replace <replaceable>CINDER_PASS</replaceable> with the password
you chose for the <literal>cinder</literal> user in the Identity
service.</para>
<note>
<para>Comment out or remove any other options in the
<literal>[keystone_authtoken]</literal> section.</para>
</note>
</step>
<step>
<para>In the <literal>[DEFAULT]</literal> section, configure the
<literal>my_ip</literal> option to use the management interface IP
address of the controller node:</para>
<programlisting language="ini">[DEFAULT]
...
my_ip = 10.0.0.11</programlisting>
</step>
<step>
<para>In the <literal>[oslo_concurrency]</literal> section,
configure the lock path:</para>
<programlisting language="ini">[oslo_concurrency]
...
lock_path = /var/lock/cinder</programlisting>
</step>
<step>
<para>(Optional) To assist with troubleshooting,
enable verbose logging in the <literal>[DEFAULT]</literal>
section:</para>
<programlisting language="ini">[DEFAULT]
...
verbose = True</programlisting>
</step>
</substeps>
</step>
<step>
<para>Populate the Block Storage database:</para>
<screen><prompt>#</prompt> <userinput>su -s /bin/sh -c "cinder-manage db sync" cinder</userinput></screen>
</step>
</procedure>
<procedure os="debian">
<title>To install and configure Block Storage controller components</title>
<step>
<para>Install the packages:</para>
<screen><prompt>#</prompt> <userinput>apt-get install cinder-api cinder-scheduler python-cinderclient</userinput></screen>
</step>
<step>
<para>Respond to the prompts for
<link linkend="debconf-dbconfig-common">database management</link>,
<link linkend="debconf-keystone_authtoken">Identity service
credentials</link>,
<link linkend="debconf-api-endpoints">service endpoint
registration</link>, and
<link linkend="debconf-rabbitmq">message broker
credentials</link>.</para>
</step>
</procedure>
<procedure>
<title>To finalize installation</title>
<step os="ubuntu;debian">
<para>Restart the Block Storage services:</para>
<screen><prompt>#</prompt> <userinput>service cinder-scheduler restart</userinput>
<prompt>#</prompt> <userinput>service cinder-api restart</userinput></screen>
</step>
<step os="rhel;centos;fedora;sles;opensuse">
<para>Start the Block Storage services and configure them to start when
the system boots:</para>
<screen><prompt>#</prompt> <userinput>systemctl enable openstack-cinder-api.service openstack-cinder-scheduler.service</userinput>
<prompt>#</prompt> <userinput>systemctl start openstack-cinder-api.service openstack-cinder-scheduler.service</userinput></screen>
</step>
<step os="ubuntu">
<para>By default, the Ubuntu packages create an SQLite database.</para>
<para>Because this configuration uses a SQL database server, you can
remove the SQLite database file:</para>
<screen><prompt>#</prompt> <userinput>rm -f /var/lib/cinder/cinder.sqlite</userinput></screen>
</step>
</procedure>
</section>

View File

@ -1,317 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<section xmlns="http://docbook.org/ns/docbook"
xmlns:xi="http://www.w3.org/2001/XInclude"
xmlns:xlink="http://www.w3.org/1999/xlink"
version="5.0"
xml:id="cinder-install-storage-node">
<?dbhtml stop-chunking?>
<title>Install and configure a storage node</title>
<para>This section describes how to install and configure storage nodes
for the Block Storage service. For simplicity, this configuration
references one storage node with an empty local block storage device
<literal>/dev/sdb</literal> that contains a suitable partition table with
one partition <literal>/dev/sdb1</literal> occupying the entire device.
The service provisions logical volumes on this device using the
<glossterm>LVM</glossterm> driver and provides them to instances via
<glossterm baseform="Internet Small Computer Systems Interface (iSCSI)"
>iSCSI</glossterm> transport. You can follow these instructions with
minor modifications to horizontally scale your environment with
additional storage nodes.</para>
<procedure>
<title>To configure prerequisites</title>
<para>You must configure the storage node before you install and
configure the volume service on it. Similar to the controller node,
the storage node contains one network interface on the
<glossterm>management network</glossterm>. The storage node also
needs an empty block storage device of suitable size for your
environment. For more information, see
<xref linkend="ch_basic_environment"/>.</para>
<step>
<para>Configure the management interface:</para>
<para>IP address: 10.0.0.41</para>
<para>Network mask: 255.255.255.0 (or /24)</para>
<para>Default gateway: 10.0.0.1</para>
</step>
<step>
<para>Set the hostname of the node to
<replaceable>block1</replaceable>.</para>
</step>
<step>
<para>Copy the contents of the <filename>/etc/hosts</filename> file from
the controller node to the storage node and add the following
to it:</para>
<programlisting language="ini"># block1
10.0.0.41 block1</programlisting>
<para>Also add this content to the <filename>/etc/hosts</filename> file
on all other nodes in your environment.</para>
</step>
<step>
<para>Install and configure
<glossterm baseform="Network Time Protocol (NTP)">NTP</glossterm>
using the instructions in
<xref linkend="basics-ntp-other-nodes"/>.</para>
</step>
<step>
<para>If you intend to use non-raw image types such as QCOW2 and VMDK,
install the QEMU support package:</para>
<screen os="ubuntu;debian"><prompt>#</prompt> <userinput>apt-get install qemu</userinput></screen>
<screen os="rhel;centos;fedora"><prompt>#</prompt> <userinput>yum install qemu</userinput></screen>
<screen os="sles;opensuse"><prompt>#</prompt> <userinput>zypper install qemu</userinput></screen>
</step>
<step>
<para>Install the LVM packages:</para>
<screen os="ubuntu;debian"><prompt>#</prompt> <userinput>apt-get install lvm2</userinput></screen>
<screen os="rhel;centos;fedora"><prompt>#</prompt> <userinput>yum install lvm2</userinput></screen>
<note>
<para>Some distributions include LVM by default.</para>
</note>
</step>
<step os="rhel;centos;fedora">
<para>Start the LVM metadata service and configure it to start when the
system boots:</para>
<screen><prompt>#</prompt> <userinput>systemctl enable lvm2-lvmetad.service</userinput>
<prompt>#</prompt> <userinput>systemctl start lvm2-lvmetad.service</userinput></screen>
</step>
<step>
<para>Create the LVM physical volume <literal>/dev/sdb1</literal>:</para>
<screen><prompt>#</prompt> <userinput>pvcreate /dev/sdb1</userinput>
<computeroutput> Physical volume "/dev/sdb1" successfully created</computeroutput></screen>
<note>
<para>If your system uses a different device name, adjust these
steps accordingly.</para>
</note>
</step>
<step>
<para>Create the LVM volume group
<literal>cinder-volumes</literal>:</para>
<screen><prompt>#</prompt> <userinput>vgcreate cinder-volumes /dev/sdb1</userinput>
<computeroutput> Volume group "cinder-volumes" successfully created</computeroutput></screen>
<para>The Block Storage service creates logical volumes in this
volume group.</para>
</step>
<step>
<para>Only instances can access Block Storage volumes. However, the
underlying operating system manages the devices associated with
the volumes. By default, the LVM volume scanning tool scans the
<literal>/dev</literal> directory for block storage devices that
contain volumes. If projects use LVM on their volumes, the scanning
tool detects these volumes and attempts to cache them which can cause
a variety of problems with both the underlying operating system
and project volumes. You must reconfigure LVM to scan only the devices
that contain the <literal>cinder-volume</literal> volume group. Edit
the <filename>/etc/lvm/lvm.conf</filename> file and complete the
following actions:</para>
<substeps>
<step>
<para>In the <literal>devices</literal> section, add a filter
that accepts the <literal>/dev/sdb</literal> device and rejects
all other devices:</para>
<programlisting language="ini">devices {
...
filter = [ "a/sdb/", "r/.*/"]</programlisting>
<para>Each item in the filter array begins with <literal>a</literal>
for <emphasis>accept</emphasis> or <literal>r</literal> for
<emphasis>reject</emphasis> and includes a regular expression
for the device name. The array must end with
<literal>r/.*/</literal> to reject any remaining
devices. You can use the <command>vgs -vvvv</command>
command to test filters.</para>
<warning>
<para>If your storage nodes use LVM on the operating system disk,
you must also add the associated device to the filter. For
example, if the <literal>/dev/sda</literal> device contains
the operating system:</para>
<programlisting language="ini">filter = [ "a/sda/", "a/sdb/", "r/.*/"]</programlisting>
<para>Similarly, if your compute nodes use LVM on the operating
system disk, you must also modify the filter in the
<literal>/etc/lvm/lvm.conf</literal> file on those nodes to
include only the operating system disk. For example, if the
<literal>/dev/sda</literal> device contains the operating
system:</para>
<programlisting language="ini">filter = [ "a/sda/", "r/.*/"]</programlisting>
</warning>
</step>
</substeps>
</step>
</procedure>
<procedure os="ubuntu;rhel;centos;fedora;sles;opensuse">
<title>Install and configure Block Storage volume components</title>
<step>
<para>Install the packages:</para>
<screen os="ubuntu"><prompt>#</prompt> <userinput>apt-get install cinder-volume python-mysqldb</userinput></screen>
<!-- Temporary workaround for bug:
https://bugzilla.redhat.com/show_bug.cgi?id=1212899 -->
<screen os="rhel;centos;fedora"><prompt>#</prompt> <userinput>yum install openstack-cinder targetcli python-oslo-db python-oslo-log MySQL-python</userinput></screen>
<screen os="sles;opensuse"><prompt>#</prompt> <userinput>zypper install openstack-cinder-volume tgt python-mysql</userinput></screen>
</step>
<step>
<para>Edit the <filename>/etc/cinder/cinder.conf</filename> file
and complete the following actions:</para>
<substeps>
<step>
<para>In the <literal>[database]</literal> section, configure
database access:</para>
<programlisting language="ini">[database]
...
connection = mysql://cinder:<replaceable>CINDER_DBPASS</replaceable>@<replaceable>controller</replaceable>/cinder</programlisting>
<para>Replace <replaceable>CINDER_DBPASS</replaceable> with
the password you chose for the Block Storage database.</para>
</step>
<step>
<para>In the <literal>[DEFAULT]</literal> and
<literal>[oslo_messaging_rabbit]</literal> sections, configure
<application>RabbitMQ</application> message queue access:</para>
<programlisting language="ini">[DEFAULT]
...
rpc_backend = rabbit
[oslo_messaging_rabbit]
...
rabbit_host = <replaceable>controller</replaceable>
rabbit_userid = openstack
rabbit_password = <replaceable>RABBIT_PASS</replaceable></programlisting>
<para>Replace <replaceable>RABBIT_PASS</replaceable> with the
password you chose for the <literal>openstack</literal> account in
<application>RabbitMQ</application>.</para>
</step>
<step>
<para>In the <literal>[DEFAULT]</literal> and
<literal>[keystone_authtoken]</literal> sections,
configure Identity service access:</para>
<programlisting language="ini">[DEFAULT]
...
auth_strategy = keystone
[keystone_authtoken]
...
auth_uri = http://<replaceable>controller</replaceable>:5000
auth_url = http://<replaceable>controller</replaceable>:35357
auth_plugin = password
project_domain_id = default
user_domain_id = default
project_name = service
username = cinder
password = <replaceable>CINDER_PASS</replaceable></programlisting>
<para>Replace <replaceable>CINDER_PASS</replaceable> with the password
you chose for the <literal>cinder</literal> user in the Identity
service.</para>
<note>
<para>Comment out or remove any other options in the
<literal>[keystone_authtoken]</literal> section.</para>
</note>
</step>
<step>
<para>In the <literal>[DEFAULT]</literal> section, configure the
<literal>my_ip</literal> option:</para>
<programlisting language="ini">[DEFAULT]
...
my_ip = <replaceable>MANAGEMENT_INTERFACE_IP_ADDRESS</replaceable></programlisting>
<para>Replace
<replaceable>MANAGEMENT_INTERFACE_IP_ADDRESS</replaceable> with
the IP address of the management network interface on your
storage node, typically 10.0.0.41 for the first node in the
<link linkend="architecture_example-architectures">example
architecture</link>.</para>
</step>
<step>
<para>In the <literal>[lvm]</literal> section, configure the LVM
back end with the LVM driver, <literal>cinder-volumes</literal>
volume group, iSCSI protocol, and appropriate iSCSI
service:</para>
<programlisting os="ubuntu;sles;opensuse" language="ini">[lvm]
...
volume_driver = cinder.volume.drivers.lvm.LVMVolumeDriver
volume_group = cinder-volumes
iscsi_protocol = iscsi
iscsi_helper = tgtadm</programlisting>
<programlisting os="rhel;centos;fedora" language="ini">[lvm]
...
volume_driver = cinder.volume.drivers.lvm.LVMVolumeDriver
volume_group = cinder-volumes
iscsi_protocol = iscsi
iscsi_helper = lioadm</programlisting>
</step>
<step>
<para>In the <literal>[DEFAULT]</literal> section, enable the LVM
back end:</para>
<programlisting language="ini">[DEFAULT]
...
enabled_backends = lvm</programlisting>
<note>
<para>Back-end names are arbitrary. As an example, this guide
uses the name of the driver as the name of the back end.</para>
</note>
</step>
<step>
<para>In the <literal>[DEFAULT]</literal> section, configure the
location of the Image service:</para>
<programlisting language="ini">[DEFAULT]
...
glance_host = <replaceable>controller</replaceable></programlisting>
</step>
<step>
<para>In the <literal>[oslo_concurrency]</literal> section,
configure the lock path:</para>
<programlisting language="ini">[oslo_concurrency]
...
lock_path = /var/lock/cinder</programlisting>
</step>
<step>
<para>(Optional) To assist with troubleshooting,
enable verbose logging in the <literal>[DEFAULT]</literal>
section:</para>
<programlisting language="ini">[DEFAULT]
...
verbose = True</programlisting>
</step>
</substeps>
</step>
</procedure>
<procedure os="debian">
<title>Install and configure Block Storage volume components</title>
<step>
<para>Install the packages:</para>
<screen><prompt>#</prompt> <userinput>apt-get install cinder-volume python-mysqldb</userinput></screen>
</step>
<step>
<para>Respond to the prompts for
<link linkend="debconf-dbconfig-common">database management</link>,
<link linkend="debconf-keystone_authtoken">Identity service
credentials</link>,
<link linkend="debconf-api-endpoints">service endpoint
registration</link>, and
<link linkend="debconf-rabbitmq">message broker
credentials.</link>.</para>
</step>
<step>
<para>Respond to prompts for the volume group to associate with the
Block Storage service. The script scans for volume groups and
attempts to use the first one. If your system only contains the
<literal>cinder-volumes</literal> volume group, the script should
automatically choose it.</para>
</step>
</procedure>
<procedure>
<title>To finalize installation</title>
<step os="ubuntu;debian">
<para>Restart the Block Storage volume service including its
dependencies:</para>
<screen><prompt>#</prompt> <userinput>service tgt restart</userinput>
<prompt>#</prompt> <userinput>service cinder-volume restart</userinput></screen>
</step>
<step os="rhel;centos;fedora;sles;opensuse">
<para>Start the Block Storage volume service including its dependencies
and configure them to start when the system boots:</para>
<screen os="rhel;centos;fedora"><prompt>#</prompt> <userinput>systemctl enable openstack-cinder-volume.service target.service</userinput>
<prompt>#</prompt> <userinput>systemctl start openstack-cinder-volume.service target.service</userinput></screen>
<screen os="opensuse;sles"><prompt>#</prompt> <userinput>systemctl enable openstack-cinder-volume.service tgtd.service</userinput>
<prompt>#</prompt> <userinput>systemctl start openstack-cinder-volume.service tgtd.service</userinput></screen>
</step>
<step os="ubuntu">
<para>By default, the Ubuntu packages create an SQLite database.
Because this configuration uses a SQL database server, remove
the SQLite database file:</para>
<screen><prompt>#</prompt> <userinput>rm -f /var/lib/cinder/cinder.sqlite</userinput></screen>
</step>
</procedure>
</section>

View File

@ -1,91 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<section xmlns="http://docbook.org/ns/docbook"
xmlns:xi="http://www.w3.org/2001/XInclude"
xmlns:xlink="http://www.w3.org/1999/xlink"
version="5.0"
xml:id="cinder-verify">
<title>Verify operation</title>
<para>This section describes how to verify operation of the Block Storage
service by creating a volume.</para>
<para>For more information about how to manage volumes, see the <link
xlink:href="http://docs.openstack.org/user-guide/index.html"
><citetitle>OpenStack User Guide</citetitle></link>.</para>
<note>
<para>Perform these commands on the controller node.</para>
</note>
<procedure>
<step>
<para>In each client environment script, configure the Block Storage
client to use API version 2.0:</para>
<screen><prompt>$</prompt> <userinput>echo "export OS_VOLUME_API_VERSION=2" | tee -a admin-openrc.sh demo-openrc.sh</userinput></screen>
</step>
<step>
<para>Source the <literal>admin</literal> credentials to gain access to
admin-only CLI commands:</para>
<screen><prompt>$</prompt> <userinput>source admin-openrc.sh</userinput></screen>
</step>
<step>
<para>List service components to verify successful launch of each
process:</para>
<screen><prompt>$</prompt> <userinput>cinder service-list</userinput>
<computeroutput>+------------------+------------+------+---------+-------+----------------------------+-----------------+
| Binary | Host | Zone | Status | State | Updated_at | Disabled Reason |
+------------------+------------+------+---------+-------+----------------------------+-----------------+
| cinder-scheduler | controller | nova | enabled | up | 2014-10-18T01:30:54.000000 | None |
| cinder-volume | block1@lvm | nova | enabled | up | 2014-10-18T01:30:57.000000 | None |
+------------------+------------+------+---------+-------+----------------------------+-----------------+</computeroutput></screen>
</step>
<step>
<para>Source the <literal>demo</literal> credentials to perform
the following steps as a non-administrative project:</para>
<screen><prompt>$</prompt> <userinput>source demo-openrc.sh</userinput></screen>
</step>
<step>
<para>Create a 1 GB volume:</para>
<screen><prompt>$</prompt> <userinput>cinder create --name demo-volume1 1</userinput>
<computeroutput>+---------------------------------------+--------------------------------------+
| Property | Value |
+---------------------------------------+--------------------------------------+
| attachments | [] |
| availability_zone | nova |
| bootable | false |
| consistencygroup_id | None |
| created_at | 2015-04-21T23:46:08.000000 |
| description | None |
| encrypted | False |
| id | 6c7a3d28-e1ef-42a0-b1f7-8d6ce9218412 |
| metadata | {} |
| multiattach | False |
| name | demo-volume1 |
| os-vol-tenant-attr:tenant_id | ab8ea576c0574b6092bb99150449b2d3 |
| os-volume-replication:driver_data | None |
| os-volume-replication:extended_status | None |
| replication_status | disabled |
| size | 1 |
| snapshot_id | None |
| source_volid | None |
| status | creating |
| user_id | 3a81e6c8103b46709ef8d141308d4c72 |
| volume_type | None |
+---------------------------------------+--------------------------------------+</computeroutput></screen>
</step>
<step>
<para>Verify creation and availability of the volume:</para>
<screen><prompt>$</prompt> <userinput>cinder list</userinput>
<computeroutput>+--------------------------------------+-----------+--------------+------+-------------+----------+-------------+
| ID | Status | Name | Size | Volume Type | Bootable | Attached to |
+--------------------------------------+-----------+--------------+------+-------------+----------+-------------+
| 6c7a3d28-e1ef-42a0-b1f7-8d6ce9218412 | available | demo-volume1 | 1 | None | false | |
+--------------------------------------+-----------+--------------+------+-------------+----------+-------------+</computeroutput></screen>
<para>If the status does not indicate <literal>available</literal>,
check the logs in the <filename>/var/log/cinder</filename> directory
on the controller and volume nodes for more information.</para>
<note>
<para>The
<link linkend="launch-instance">launch an instance</link>
chapter includes instructions for attaching this volume to an
instance.</para>
</note>
</step>
</procedure>
</section>

View File

@ -1,142 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<section xmlns="http://docbook.org/ns/docbook"
xmlns:xi="http://www.w3.org/2001/XInclude"
xmlns:xlink="http://www.w3.org/1999/xlink"
version="5.0"
xml:id="install_dashboard">
<?dbhtml stop-chunking?>
<title>Install and configure</title>
<para>This section describes how to install and configure the dashboard
on the controller node.</para>
<para>The dashboard relies on functional core services including
Identity, Image service, Compute, and either Networking (neutron)
or legacy networking (nova-network). Environments with
stand-alone services such as Object Storage cannot use the
dashboard. For more information, see the
<link xlink:href="http://docs.openstack.org/developer/horizon/topics/deployment.html">developer documentation</link>.</para>
<para>This section assumes proper installation, configuration, and
operation of the Identity service using the Apache HTTP server and
Memcached as described in <xref linkend="keystone-install"/>.</para>
<procedure os="ubuntu;rhel;centos;fedora;sles;opensuse">
<title>To install the dashboard components</title>
<step>
<para>Install the packages:</para>
<screen os="ubuntu"><prompt>#</prompt> <userinput>apt-get install openstack-dashboard</userinput></screen>
<screen os="rhel;centos;fedora"><prompt>#</prompt> <userinput>yum install openstack-dashboard httpd mod_wsgi memcached python-memcached</userinput></screen>
<screen os="sles;opensuse"><prompt>#</prompt> <userinput>zypper install openstack-dashboard apache2-mod_wsgi memcached python-python-memcached</userinput></screen>
<note os="ubuntu">
<para>Ubuntu installs the
<package>openstack-dashboard-ubuntu-theme</package> package
as a dependency. Some users reported issues with this theme in
previous releases. If you encounter issues, remove this package
to restore the original OpenStack theme.</para>
</note>
</step>
</procedure>
<procedure os="debian">
<title>To install the dashboard components</title>
<step>
<para>Install the packages:</para>
<screen><prompt>#</prompt> <userinput>apt-get install openstack-dashboard-apache</userinput></screen>
</step>
<step>
<para>Respond to prompts for web server configuration.</para>
<note>
<para>The automatic configuration process generates a self-signed
SSL certificate. Consider obtaining an official certificate for
production environments.</para>
</note>
</step>
</procedure>
<procedure>
<title>To configure the dashboard</title>
<step os="sles;opensuse">
<para>Configure the web server:</para>
<screen><prompt>#</prompt> <userinput>cp /etc/apache2/conf.d/openstack-dashboard.conf.sample \
/etc/apache2/conf.d/openstack-dashboard.conf</userinput>
<prompt>#</prompt> <userinput>a2enmod rewrite;a2enmod ssl;a2enmod wsgi</userinput></screen>
</step>
<step>
<para os="ubuntu;debian">Edit the
<filename>/etc/openstack-dashboard/local_settings.py</filename>
file and complete the following actions:</para>
<para os="rhel;centos;fedora">Edit the
<filename>/etc/openstack-dashboard/local_settings</filename>
file and complete the following actions:</para>
<para os="sles;opensuse">Edit the
<filename>/srv/www/openstack-dashboard/openstack_dashboard/local/local_settings.py</filename>
file and complete the following actions:</para>
<substeps>
<step>
<para>Configure the dashboard to use OpenStack services on the
<literal>controller</literal> node:</para>
<programlisting language="python">OPENSTACK_HOST = "<replaceable>controller</replaceable>"</programlisting>
</step>
<step>
<para>Allow all hosts to access the dashboard:</para>
<programlisting language="python">ALLOWED_HOSTS = '*'</programlisting>
</step>
<step>
<para>Configure the <application>memcached</application> session
storage service:</para>
<programlisting language="python">CACHES = {
'default': {
'BACKEND': 'django.core.cache.backends.memcached.MemcachedCache',
'LOCATION': '127.0.0.1:11211',
}
}</programlisting>
<note>
<para>Comment out any other session storage configuration.</para>
</note>
<note os="sles;opensuse">
<para>By default, SLES and openSUSE use a SQL database for session
storage. For simplicity, we recommend changing the configuration
to use <application>memcached</application> for session
storage.</para>
</note>
</step>
<step>
<para>Configure <literal>user</literal> as the default role for
users that you create via the dashboard:</para>
<programlisting language="python">OPENSTACK_KEYSTONE_DEFAULT_ROLE = "user"</programlisting>
</step>
<step>
<para>Optionally, configure the time zone:</para>
<programlisting language="python">TIME_ZONE = "<replaceable>TIME_ZONE</replaceable>"</programlisting>
<para>Replace <replaceable>TIME_ZONE</replaceable> with an
appropriate time zone identifier. For more information, see the
<link xlink:href="http://en.wikipedia.org/wiki/List_of_tz_database_time_zones"
>list of time zones</link>.</para>
</step>
</substeps>
</step>
</procedure>
<procedure>
<title>To finalize installation</title>
<step os="rhel;centos;fedora">
<para>On RHEL and CentOS, configure SELinux to permit the web server
to connect to OpenStack services:</para>
<screen><prompt>#</prompt> <userinput>setsebool -P httpd_can_network_connect on</userinput></screen>
</step>
<step os="rhel;centos;fedora">
<para>Due to a packaging bug, the dashboard CSS fails to load properly.
Run the following command to resolve this issue:</para>
<screen><prompt>#</prompt> <userinput>chown -R apache:apache /usr/share/openstack-dashboard/static</userinput></screen>
<para>For more information, see the
<link xlink:href="https://bugzilla.redhat.com/show_bug.cgi?id=1150678"
>bug report</link>.</para>
</step>
<step os="ubuntu;debian">
<para>Reload the web server configuration:</para>
<screen><prompt>#</prompt> <userinput>service apache2 reload</userinput></screen>
</step>
<step os="rhel;centos;fedora;sles;opensuse">
<para>Start the web server and session storage service and configure
them to start when the system boots:</para>
<screen os="rhel;centos;fedora"><prompt>#</prompt> <userinput>systemctl enable httpd.service memcached.service</userinput>
<prompt>#</prompt> <userinput>systemctl start httpd.service memcached.service</userinput></screen>
<screen os="opensuse;sles"><prompt>#</prompt> <userinput>systemctl enable apache2.service memcached.service</userinput>
<prompt>#</prompt> <userinput>systemctl start apache2.service memcached.service</userinput></screen>
</step>
</procedure>
</section>

Some files were not shown because too many files have changed in this diff Show More