Restructured manual
Change-Id: I979c55f9c45797e40fc8456cd898351bb94cceb2
This commit is contained in:
parent
d03e46a3e1
commit
bd92cadeb9
1
.gitignore
vendored
1
.gitignore
vendored
@ -1,5 +1,6 @@
|
|||||||
#IntelJ Idea
|
#IntelJ Idea
|
||||||
.idea/
|
.idea/
|
||||||
|
*.iml
|
||||||
|
|
||||||
#Build results
|
#Build results
|
||||||
target
|
target
|
||||||
|
@ -19,7 +19,7 @@
|
|||||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
|
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
|
||||||
<modelVersion>4.0.0</modelVersion>
|
<modelVersion>4.0.0</modelVersion>
|
||||||
<groupId>com.mirantis.murano</groupId>
|
<groupId>com.mirantis.murano</groupId>
|
||||||
<artifactId>manuals</artifactId>
|
<artifactId>murano-manual</artifactId>
|
||||||
<version>1.0.0-SNAPSHOT</version>
|
<version>1.0.0-SNAPSHOT</version>
|
||||||
<packaging>jar</packaging>
|
<packaging>jar</packaging>
|
||||||
<name>Murano Project Documentation</name>
|
<name>Murano Project Documentation</name>
|
||||||
|
213
src/murano-manual/src/docbkx/content/blueprint.xml
Normal file
213
src/murano-manual/src/docbkx/content/blueprint.xml
Normal file
@ -0,0 +1,213 @@
|
|||||||
|
<?xml version='1.0' encoding='UTF-8'?>
|
||||||
|
<!--
|
||||||
|
Copyright (c) 2013 Mirantis, Inc.
|
||||||
|
|
||||||
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
you may not use this file except in compliance with the License.
|
||||||
|
You may obtain a copy of the License at
|
||||||
|
|
||||||
|
http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
|
||||||
|
Unless required by applicable law or agreed to in writing, software
|
||||||
|
distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
|
||||||
|
implied.
|
||||||
|
See the License for the specific language governing permissions and
|
||||||
|
limitations under the License.
|
||||||
|
-->
|
||||||
|
|
||||||
|
<chapter xmlns="http://docbook.org/ns/docbook"
|
||||||
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
|
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||||
|
xsi:schemaLocation="http://docbook.org/ns/docbook http://www.docbook.org/xml/5.0/xsd/docbook.xsd
|
||||||
|
http://www.w3.org/1999/xlink http://www.w3.org/1999/xlink.xsd"
|
||||||
|
version="5.0">
|
||||||
|
<title>Blueprint</title>
|
||||||
|
<section>
|
||||||
|
|
||||||
|
<title>Project Background</title>
|
||||||
|
<para>Enterprise customers frequently use Windows-based environments for their internal and external
|
||||||
|
products. Configuration of the Windows environment is a complex task which usually requires a lot of
|
||||||
|
effort from administrators. Windows setup consists of numerous services which might be tightly coupled
|
||||||
|
to each other. While the automated installation of Windows services can be fairly straightforward,
|
||||||
|
service configuration can be hard to automate because it requires a well-designed Windows architecture
|
||||||
|
and deep knowledge of Windows services configuration.
|
||||||
|
</para>
|
||||||
|
<para>Currently several open source solutions exists that can help to partially solve automation of Windows
|
||||||
|
environment provisioning. In the world of OpenStack there is the Heat project, which is similar to
|
||||||
|
Amazon Cloud Formation. Heat is an excellent tool for managing OpenStack cloud resources such as VM
|
||||||
|
instances, security groups, and so on. It allows you to define all cloud resources in a single JSON
|
||||||
|
template, then later maintain all of those resources by editing that template. Although the declarative
|
||||||
|
template approach is well suited to OpenStack resources, it quickly becomes complex when it comes to
|
||||||
|
application management.
|
||||||
|
</para>
|
||||||
|
<para>Another option is a tool such as Chef or Puppet. These tools are flexible, but require you to have a
|
||||||
|
deep knowledge of scripting and require a significant amount of effort to manually script or modify
|
||||||
|
cookbooks for your specific environment configuration. This is manageable in a stable environment, but
|
||||||
|
it becomes time-consuming and involves manual script coding when one needs to deploy various
|
||||||
|
environments with rapidly changing configurations. Also Chef and Puppet require additional
|
||||||
|
infrastructure to support them.
|
||||||
|
</para>
|
||||||
|
<para>The biggest problem for both approaches above is in supporting multi-step configuration of services
|
||||||
|
with circular dependencies required for correct configuration of Windows services. This can be solved by
|
||||||
|
using external orchestration.
|
||||||
|
</para>
|
||||||
|
<para>Another potential problem is the lack of UI functionality enabling creation and configuration of an
|
||||||
|
environment without writing a script.
|
||||||
|
</para>
|
||||||
|
<section>
|
||||||
|
<title>Proposal</title>
|
||||||
|
<para>Mirantis proposes to introduce a new service which will allow a non-experienced user to deploy
|
||||||
|
reliable Windows based environments in a “push-the-button” manner. The key goal is to provide a UI
|
||||||
|
and API enabling the deployment and operation of Windows Environments at the Windows Services
|
||||||
|
abstraction level. The service should be able to orchestrate complex circular dependent cases in
|
||||||
|
order to set up a complex Windows Environment with multiple dependant services.
|
||||||
|
</para>
|
||||||
|
<para>The service will address following use cases:
|
||||||
|
<itemizedlist spacing="compact">
|
||||||
|
<listitem>
|
||||||
|
<para>Self-provisioning of predefined Windows services with their dependencies</para>
|
||||||
|
</listitem>
|
||||||
|
<listitem>
|
||||||
|
<para>Automation of administrative tasks during data center roll-out</para>
|
||||||
|
</listitem>
|
||||||
|
<listitem>
|
||||||
|
<para>Custom windows application as a windows service</para>
|
||||||
|
</listitem>
|
||||||
|
</itemizedlist>
|
||||||
|
</para>
|
||||||
|
<para>
|
||||||
|
The solution will provide higher level of abstraction for manipulation Windows Environments. Key
|
||||||
|
concepts are:
|
||||||
|
<itemizedlist spacing="compact">
|
||||||
|
<listitem>
|
||||||
|
<para>Windows Service - a service such as Active Directory, MSSQL, or IIS, which usually
|
||||||
|
consists of multiple virtual machines and has multiple dependencies.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
<listitem>
|
||||||
|
<para>Windows Environment - a logical unit for all Services and represents a classical
|
||||||
|
Windows Datacenter
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
<listitem>
|
||||||
|
<para>Windows VM instance - a VM which hosts a Windows Service. A Windows Service might be
|
||||||
|
deployed
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
</itemizedlist>
|
||||||
|
</para>
|
||||||
|
<para>
|
||||||
|
The Key Features of the Service are the following:
|
||||||
|
<orderedlist>
|
||||||
|
<listitem>
|
||||||
|
<para>Native to OpenStack</para>
|
||||||
|
</listitem>
|
||||||
|
<listitem>
|
||||||
|
<para>Introduces abstraction level for Windows Environments</para>
|
||||||
|
</listitem>
|
||||||
|
<listitem>
|
||||||
|
<para>Supports Availability Zones and Disaster Recovery scenarios</para>
|
||||||
|
</listitem>
|
||||||
|
<listitem>
|
||||||
|
<para>Uses native Windows features for HA solutions</para>
|
||||||
|
</listitem>
|
||||||
|
</orderedlist>
|
||||||
|
</para>
|
||||||
|
</section>
|
||||||
|
</section>
|
||||||
|
<section xml:id="architecture">
|
||||||
|
<title>Architecture</title>
|
||||||
|
<para>
|
||||||
|
The Murano Service communicates with the following OpenStack components:
|
||||||
|
<itemizedlist>
|
||||||
|
<listitem>
|
||||||
|
<para>Horizon - provides a GUI with ability to use all Murano features;</para>
|
||||||
|
</listitem>
|
||||||
|
<listitem>
|
||||||
|
<para>Keystone - authenticates users and provides the security token that is used to work with
|
||||||
|
OpenStack, hence limiting the user abilities in Murano based on OpenStack privileges;
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
<listitem>
|
||||||
|
<para>Heat - is used to provision VMs and other OpenStack resources for Windows Environments;
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
<listitem>
|
||||||
|
<para>Glance - stores Windows Server VM images, with each image containing an installed OS and a
|
||||||
|
set of scripts
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
<listitem>
|
||||||
|
<para>Quantum - provides the network configuration API</para>
|
||||||
|
</listitem>
|
||||||
|
<listitem>
|
||||||
|
<para>Agent - provides agent functionality to communicate with the Orchestration Engine and
|
||||||
|
executes tasks on VMs
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
</itemizedlist>
|
||||||
|
</para>
|
||||||
|
<figure xml:id="muranoarchitecture">
|
||||||
|
<title>Architecture</title>
|
||||||
|
<mediaobject>
|
||||||
|
<imageobject role="fo">
|
||||||
|
<imagedata fileref="figures/architecture_diagram.png"
|
||||||
|
contentwidth="5in"/>
|
||||||
|
</imageobject>
|
||||||
|
<imageobject role="html">
|
||||||
|
<imagedata fileref="figures/architecture_diagram.png"/>
|
||||||
|
</imageobject>
|
||||||
|
</mediaobject>
|
||||||
|
</figure>
|
||||||
|
<section>
|
||||||
|
<title>REST API</title>
|
||||||
|
<para>Murano exposes a service endpoint for communication with a client. It exposes API functions to
|
||||||
|
manipulate objects such as environment and service.
|
||||||
|
</para>
|
||||||
|
<para>This component is responsible for translating API function parameters to Object Model attributes
|
||||||
|
and propagating the deployment status from the Orchestration Engine.
|
||||||
|
</para>
|
||||||
|
</section>
|
||||||
|
<section>
|
||||||
|
<title>Object Model</title>
|
||||||
|
<para>An internal representation of Windows Services and Environments. All attributes and entities are
|
||||||
|
described in the API specification.
|
||||||
|
</para>
|
||||||
|
</section>
|
||||||
|
<section>
|
||||||
|
<title>Orchestration Engine</title>
|
||||||
|
<para>This is the core component which evaluates Object Model changes and creates a plan for
|
||||||
|
implementing these changes on the instances or in the cloud. This component will support extensions
|
||||||
|
via plug-ins. Plugins can add new services and extend existing services for integration. Currently
|
||||||
|
there are two services which are already implemented as plugins. They are Active Directory and IIS
|
||||||
|
Service.
|
||||||
|
</para>
|
||||||
|
</section>
|
||||||
|
</section>
|
||||||
|
<section>
|
||||||
|
<title>Integration with Heat</title>
|
||||||
|
<para>Heat is a cloud resource management engine that allows you to manipulate resources that represent
|
||||||
|
OpenStack entities (Security Groups, Instances, Floating IPs, Volumes, etc.) and some entities such as
|
||||||
|
AutoScaling groups from a single point of control.
|
||||||
|
</para>
|
||||||
|
<para>OpenStack resource provisioning is one of the steps required for environment deployment and Heat will
|
||||||
|
be used for that purpose. Heat allows you to define all OpenStack resources in a single document that
|
||||||
|
will be easy to maintain and will not require resorting to multiple OpenStack APIs while keeping the
|
||||||
|
software configuration separate.
|
||||||
|
</para>
|
||||||
|
</section>
|
||||||
|
<section>
|
||||||
|
<title>Windows on OpenStack</title>
|
||||||
|
<para>Windows works on KVM pretty smoothly, and with the RedHat-created open-source VirtIO drivers for
|
||||||
|
Windows, it’s possible to work efficiently with KVM exposed devices.
|
||||||
|
</para>
|
||||||
|
<para>In OpenStack’s Grizzly release, Microsoft’s hypervisor Hyper-V will be supported. The Hyper-V virtual
|
||||||
|
switch will be also supported as a Quantum plug-in. From the performance viewpoint, Hyper-V Server 2012
|
||||||
|
compares very favorably with bare metal, processing just over 6% fewer transactions per second compared
|
||||||
|
to the same workload running on a similarly configured physical server.
|
||||||
|
</para>
|
||||||
|
<para>Also, unlike the current OpenStack, Hyper-V also natively supports Windows Clusters.
|
||||||
|
</para>
|
||||||
|
</section>
|
||||||
|
</chapter>
|
472
src/murano-manual/src/docbkx/content/installation-guide.xml
Normal file
472
src/murano-manual/src/docbkx/content/installation-guide.xml
Normal file
@ -0,0 +1,472 @@
|
|||||||
|
<?xml version='1.0' encoding='UTF-8'?>
|
||||||
|
<!--
|
||||||
|
Copyright (c) 2013 Mirantis, Inc.
|
||||||
|
|
||||||
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
you may not use this file except in compliance with the License.
|
||||||
|
You may obtain a copy of the License at
|
||||||
|
|
||||||
|
http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
|
||||||
|
Unless required by applicable law or agreed to in writing, software
|
||||||
|
distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
|
||||||
|
implied.
|
||||||
|
See the License for the specific language governing permissions and
|
||||||
|
limitations under the License.
|
||||||
|
-->
|
||||||
|
|
||||||
|
<chapter xmlns="http://docbook.org/ns/docbook"
|
||||||
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
|
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||||
|
xsi:schemaLocation="http://docbook.org/ns/docbook http://www.docbook.org/xml/5.0/xsd/docbook.xsd
|
||||||
|
http://www.w3.org/1999/xlink http://www.w3.org/1999/xlink.xsd"
|
||||||
|
version="5.0">
|
||||||
|
<title>Installation Guide</title>
|
||||||
|
<para>This chapter is about installation and configuration Murano services.</para>
|
||||||
|
<para>Note that all Murano modules can be downloaded from
|
||||||
|
<link xlink:href="https://launchpad.net/murano/">our page</link>
|
||||||
|
on launchpad.
|
||||||
|
</para>
|
||||||
|
<section>
|
||||||
|
<title>Common Pre-Requirements</title>
|
||||||
|
<para>Operation system:</para>
|
||||||
|
<orderedlist>
|
||||||
|
<listitem><para>Ubuntu</para></listitem>
|
||||||
|
<listitem><para>RHEL/CentOS</para></listitem>
|
||||||
|
</orderedlist>
|
||||||
|
<para>Packages:</para>
|
||||||
|
<orderedlist>
|
||||||
|
<listitem><para>python-dev</para></listitem>
|
||||||
|
<listitem><para>libxml2-dev</para></listitem>
|
||||||
|
<listitem><para>libxslt-dev</para></listitem>
|
||||||
|
</orderedlist>
|
||||||
|
|
||||||
|
</section>
|
||||||
|
<section>
|
||||||
|
<title>Murano API Service</title>
|
||||||
|
<para>Murano API provides access to the Murano orchestration engine via API.</para>
|
||||||
|
<para>This chapter describes Murano API for contributors of the project, and assumes that you are already
|
||||||
|
familiar with Murano API from an end-user perspective.
|
||||||
|
</para>
|
||||||
|
<section>
|
||||||
|
<title>Install</title>
|
||||||
|
<itemizedlist>
|
||||||
|
<listitem>
|
||||||
|
<para>Project source can be checked out as git repository (see below) or downloaded from
|
||||||
|
<link xlink:href="http://tarballs.openstack.org/murano-api/">here</link>
|
||||||
|
</para>
|
||||||
|
<programlisting>
|
||||||
|
<![CDATA[
|
||||||
|
user@work:~/$ git clone https://github.com/stackforge/murano-api.git
|
||||||
|
]]>
|
||||||
|
</programlisting>
|
||||||
|
</listitem>
|
||||||
|
<listitem>
|
||||||
|
<para>Switch to just created directory</para>
|
||||||
|
<programlisting>
|
||||||
|
<![CDATA[
|
||||||
|
user@work:~/$ cd murano-api
|
||||||
|
]]>
|
||||||
|
</programlisting>
|
||||||
|
</listitem>
|
||||||
|
<listitem>
|
||||||
|
<para>And them perform installation:</para>
|
||||||
|
<programlisting>
|
||||||
|
<![CDATA[
|
||||||
|
user@work:~/murano-api$ chmod +x setup.sh ; sudo ./setup.sh install
|
||||||
|
]]>
|
||||||
|
</programlisting>
|
||||||
|
</listitem>
|
||||||
|
</itemizedlist>
|
||||||
|
</section>
|
||||||
|
<section>
|
||||||
|
<title>Configure</title>
|
||||||
|
<itemizedlist>
|
||||||
|
<listitem>
|
||||||
|
<para>First configure rabbitMQ by adding vhost and user with administrator rights:</para>
|
||||||
|
<programlisting>
|
||||||
|
<![CDATA[
|
||||||
|
sudo rabbitmqctl add_user murano murano
|
||||||
|
sudo rabbitmqctl set_user_tags murano administrator
|
||||||
|
sudo rabbitmqctl add_vhost murano
|
||||||
|
sudo rabbitmqctl set_permissions -p murano murano ".*" ".*" ".*"
|
||||||
|
]]>
|
||||||
|
</programlisting>
|
||||||
|
</listitem>
|
||||||
|
<listitem>
|
||||||
|
<para>Copy and edit configuration file:</para>
|
||||||
|
<programlisting>
|
||||||
|
<![CDATA[
|
||||||
|
user@work:~/murano-api$ sudo cp /etc/murano-api/murano-api.conf.sample /etc/murano-api/murano-api.conf
|
||||||
|
user@work:~/murano-api$ sudo nano /etc/murano-api/murano-api.conf
|
||||||
|
]]>
|
||||||
|
</programlisting>
|
||||||
|
</listitem>
|
||||||
|
<listitem>
|
||||||
|
<para>Configure it according to your environment:
|
||||||
|
<itemizedlist>
|
||||||
|
<listitem>
|
||||||
|
<para><emphasis>[DEFAULT]</emphasis>section sets up logging.</para>
|
||||||
|
</listitem>
|
||||||
|
<listitem>
|
||||||
|
<para><emphasis>[reports]</emphasis> section you can set names for new rabbitMQ queues.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
<listitem>
|
||||||
|
<para>In <emphasis>[rabbitmq]</emphasis> section sets up host configuration where rabbitMQ
|
||||||
|
with just created user and vhost is running.</para>
|
||||||
|
</listitem>
|
||||||
|
</itemizedlist>
|
||||||
|
</para>
|
||||||
|
<programlisting>
|
||||||
|
<![CDATA[
|
||||||
|
[DEFAULT]
|
||||||
|
# Show more verbose log output (sets INFO log level output)
|
||||||
|
verbose = True
|
||||||
|
# Show debugging output in logs (sets DEBUG log level output)
|
||||||
|
debug = True
|
||||||
|
# Address to bind the server to
|
||||||
|
bind_host = 0.0.0.0
|
||||||
|
# Port the bind the server to
|
||||||
|
bind_port = 8082
|
||||||
|
# Log to this file. Make sure the user running skeleton-api has
|
||||||
|
# permissions to write to this file!
|
||||||
|
log_file = /tmp/murano-api.log
|
||||||
|
#A valid SQLAlchemy connection string for the metadata database
|
||||||
|
sql_connection = sqlite:///murano.sqlite
|
||||||
|
|
||||||
|
[reports]
|
||||||
|
results_exchange = task-results
|
||||||
|
results_queue = task-results
|
||||||
|
reports_exchange = task-reports
|
||||||
|
reports_queue = task-reports
|
||||||
|
|
||||||
|
[rabbitmq]
|
||||||
|
host = localhost
|
||||||
|
port = 5672
|
||||||
|
virtual_host = murano
|
||||||
|
login = murano
|
||||||
|
password = murano
|
||||||
|
]]>
|
||||||
|
</programlisting>
|
||||||
|
</listitem>
|
||||||
|
<listitem>
|
||||||
|
<para>Copy and edit one more configuration file:</para>
|
||||||
|
<programlisting>
|
||||||
|
<![CDATA[
|
||||||
|
user@work:~/murano-api$ sudo cp etc/murano-api/murano-api-paste.ini.sample etc/murano-api/murano-api-paste.ini
|
||||||
|
user@work:~/murano-api$ sudo nano /etc/murano-api/murano-api-paste.ini
|
||||||
|
]]>
|
||||||
|
</programlisting>
|
||||||
|
</listitem>
|
||||||
|
<listitem>
|
||||||
|
<para>Configure keystone auth_token in
|
||||||
|
<emphasis>[filter:authtoken]</emphasis>
|
||||||
|
section.
|
||||||
|
For more information see
|
||||||
|
<link xlink:href="http://docs.openstack.org/developer/keystone/configuringservices.html">Auth-Token
|
||||||
|
Middleware with Username and Password
|
||||||
|
</link>
|
||||||
|
</para>
|
||||||
|
<programlisting>
|
||||||
|
<![CDATA[
|
||||||
|
[pipeline:murano-api]
|
||||||
|
pipeline = authtoken context apiv1app
|
||||||
|
[app:apiv1app]
|
||||||
|
paste.app_factory = muranoapi.api.v1.router:API.factory
|
||||||
|
[filter:context]
|
||||||
|
paste.filter_factory = muranoapi.api.middleware.context:ContextMiddleware.factory
|
||||||
|
|
||||||
|
[filter:authtoken]
|
||||||
|
paste.filter_factory = keystoneclient.middleware.auth_token:filter_factory
|
||||||
|
auth_host = localhost
|
||||||
|
auth_port = 35357
|
||||||
|
auth_protocol = http
|
||||||
|
admin_tenant_name = admin
|
||||||
|
admin_user = admin
|
||||||
|
admin_password = password
|
||||||
|
signing_dir = /tmp/keystone-signing-muranoapi
|
||||||
|
]]>
|
||||||
|
</programlisting>
|
||||||
|
</listitem>
|
||||||
|
<listitem>
|
||||||
|
<para>Register murano-api service in Openstack
|
||||||
|
(note: you need to be authorized in Openstack to run this commands)
|
||||||
|
</para>
|
||||||
|
<programlisting>
|
||||||
|
<![CDATA[
|
||||||
|
user@work:~/$ keystone service-create --name muranoapi --type murano --description "Murano-Api Service"
|
||||||
|
]]>
|
||||||
|
<![CDATA[
|
||||||
|
user@work:~/$ keystone endpoint-create
|
||||||
|
|
||||||
|
--region RegionOne
|
||||||
|
--service-id The ID field returned by the keystone service-create
|
||||||
|
--publicurl http://x.x.x.x:8082 (where x.x.x.x - host ip where murano-api installed)
|
||||||
|
--internalurl the same as publicurl
|
||||||
|
--adminurl the same as publicurl
|
||||||
|
]]>
|
||||||
|
</programlisting>
|
||||||
|
</listitem>
|
||||||
|
</itemizedlist>
|
||||||
|
</section>
|
||||||
|
<section>
|
||||||
|
<title>Run</title>
|
||||||
|
<para>Run Murano API and supply valid configuration file:</para>
|
||||||
|
<programlisting>
|
||||||
|
<![CDATA[
|
||||||
|
user@work:~/$ sudo service murano-api start
|
||||||
|
]]>
|
||||||
|
</programlisting>
|
||||||
|
</section>
|
||||||
|
</section>
|
||||||
|
<section>
|
||||||
|
<title>Conductor Service</title>
|
||||||
|
<para>Conductor is a Murano orchestration engine that transforms object model sent by REST API service into
|
||||||
|
a series of Heat and Murano-Agent commands.
|
||||||
|
</para>
|
||||||
|
<para>This document describes Conductor for contributors of the project.</para>
|
||||||
|
<section>
|
||||||
|
<title>Install</title>
|
||||||
|
<itemizedlist>
|
||||||
|
<listitem>
|
||||||
|
<para>Murano Condutor uses OpenStack Heat for new virtual machines creation, therefore Heat should
|
||||||
|
been installed and configured. Some services require the Internet access for virtual machines to
|
||||||
|
successfull deployment.
|
||||||
|
</para>
|
||||||
|
<para>The detailed information about Heat configuration is described
|
||||||
|
<link xlink:href="http://docs.openstack.org/developer/heat/getting_started/index.html">here.</link>
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
<listitem>
|
||||||
|
<para>OpenStack Heat require Key Pair for Load Balancer instances. Murano Conductor uses
|
||||||
|
LoadBalancer for IIS Farms and ASP.NET Farms. The default name for Key Pair is 'murano-lb-key',
|
||||||
|
you can change this parameter in file
|
||||||
|
<![CDATA[
|
||||||
|
/etc/murano-conductor/data/templates/cf/Windows.template
|
||||||
|
]]>
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
<listitem>
|
||||||
|
<para>Project source code can be checked out from git repository (see below) or downloaded from
|
||||||
|
<link xlink:href="http://tarballs.openstack.org/murano-conductor/">here.</link>
|
||||||
|
|
||||||
|
<programlisting>
|
||||||
|
<![CDATA[
|
||||||
|
user@work:~/$ git clone https://github.com/stackforge/murano-conductor.git
|
||||||
|
]]>
|
||||||
|
</programlisting>
|
||||||
|
|
||||||
|
</para>
|
||||||
|
|
||||||
|
</listitem>
|
||||||
|
<listitem>
|
||||||
|
<para>Switch to just created directory</para>
|
||||||
|
<programlisting>
|
||||||
|
<![CDATA[
|
||||||
|
user@work:~/cd murano-conductor
|
||||||
|
]]>
|
||||||
|
</programlisting>
|
||||||
|
</listitem>
|
||||||
|
<listitem>
|
||||||
|
<para>And install Conductor Service to the system:</para>
|
||||||
|
<programlisting>
|
||||||
|
<![CDATA[
|
||||||
|
user@work:~/murano-conductor$ chmod +x setup.sh ; sudo ./setup.sh install
|
||||||
|
]]>
|
||||||
|
</programlisting>
|
||||||
|
</listitem>
|
||||||
|
</itemizedlist>
|
||||||
|
</section>
|
||||||
|
<section>
|
||||||
|
<title>Configure</title>
|
||||||
|
<itemizedlist>
|
||||||
|
<listitem>
|
||||||
|
<para>Edit configuration file:</para>
|
||||||
|
<programlisting>
|
||||||
|
<![CDATA[
|
||||||
|
user@work:~/murano-conductor$ nano /etc/murano-conductor/conductor.conf
|
||||||
|
]]>
|
||||||
|
</programlisting>
|
||||||
|
</listitem>
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Change it according to your environment.
|
||||||
|
<itemizedlist>
|
||||||
|
<listitem>
|
||||||
|
<para><emphasis>[DEFAULT]</emphasis>section is responsible for logging.</para>
|
||||||
|
</listitem>
|
||||||
|
<listitem>
|
||||||
|
<para><emphasis>[heat]</emphasis>points where heat is running.</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para><emphasis>[rabbitmq]</emphasis>section points where your rabbitMQ installed and configured.</para>
|
||||||
|
</listitem>
|
||||||
|
</itemizedlist>
|
||||||
|
</para>
|
||||||
|
<programlisting>
|
||||||
|
<![CDATA[
|
||||||
|
[DEFAULT]
|
||||||
|
log_file = logs/conductor.log
|
||||||
|
debug=True
|
||||||
|
verbose=True
|
||||||
|
|
||||||
|
[heat]
|
||||||
|
auth_url = http://localhost:5000/v2.0
|
||||||
|
|
||||||
|
[rabbitmq]
|
||||||
|
host = localhost
|
||||||
|
port = 5672
|
||||||
|
virtual_host = murano
|
||||||
|
login = murano
|
||||||
|
password = murano
|
||||||
|
]]>
|
||||||
|
</programlisting>
|
||||||
|
</listitem>
|
||||||
|
</itemizedlist>
|
||||||
|
</section>
|
||||||
|
<section>
|
||||||
|
<title>Run</title>
|
||||||
|
<para>Run Conductor and supply valid configuration file:</para>
|
||||||
|
<programlisting>
|
||||||
|
<![CDATA[
|
||||||
|
user@work:~/murano-conductor$ sudo service murano-conductor start
|
||||||
|
]]>
|
||||||
|
</programlisting>
|
||||||
|
</section>
|
||||||
|
</section>
|
||||||
|
<section>
|
||||||
|
<title>Murano Dashboard</title>
|
||||||
|
<para>Murano Dashboard provides Web UI for Murano Project.</para>
|
||||||
|
<section>
|
||||||
|
<title>Pre-Requirements</title>
|
||||||
|
<itemizedlist>
|
||||||
|
<listitem>
|
||||||
|
<para>To setup Murano Dashboard on a host with Openstack Dashbord already installed you just need to
|
||||||
|
install<emphasis>
|
||||||
|
the python-muranoclient</emphasis>. You can download it from
|
||||||
|
<link xlink:href="http://tarballs.openstack.org/python-muranoclient/">here.</link>
|
||||||
|
</para>
|
||||||
|
<para>And then perform installation with pip:
|
||||||
|
<programlisting>
|
||||||
|
<![CDATA[
|
||||||
|
user@work:~/$ sudo pip install ]]><emphasis>just_downloaded</emphasis>.tar.gz
|
||||||
|
</programlisting>
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
<listitem>
|
||||||
|
<para>If there is no OpenStack Dashboard (horizon) you'll need to install it. See
|
||||||
|
<link xlink:href="http://docs.openstack.org/trunk/openstack-compute/install/yum/content/ch_install-dashboard.html">
|
||||||
|
here
|
||||||
|
</link>
|
||||||
|
how to do that.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
</itemizedlist>
|
||||||
|
</section>
|
||||||
|
<section>
|
||||||
|
<title>Install</title>
|
||||||
|
<itemizedlist>
|
||||||
|
<listitem>
|
||||||
|
<para>Project source code can be checked out from git repository (see below) or downloaded from
|
||||||
|
<link xlink:href="http://tarballs.openstack.org/murano-dashboard/">here.</link>
|
||||||
|
</para>
|
||||||
|
<programlisting>
|
||||||
|
<![CDATA[
|
||||||
|
user@work:~/$ git clone https://github.com/stackforge/murano-dashboard.git
|
||||||
|
]]>
|
||||||
|
</programlisting>
|
||||||
|
</listitem>
|
||||||
|
<listitem>
|
||||||
|
<para>Switch to just created directory</para>
|
||||||
|
<programlisting>
|
||||||
|
<![CDATA[
|
||||||
|
user@work:~/$ cd murano-dashboard ]]>
|
||||||
|
</programlisting>
|
||||||
|
</listitem>
|
||||||
|
<listitem>
|
||||||
|
<para>And perform installation</para>
|
||||||
|
<programlisting>
|
||||||
|
<![CDATA[
|
||||||
|
user@work:~/murano-dashboard$ sudo python setup.py install
|
||||||
|
]]>
|
||||||
|
</programlisting>
|
||||||
|
</listitem>
|
||||||
|
</itemizedlist>
|
||||||
|
</section>
|
||||||
|
<section>
|
||||||
|
<title>Configure</title>
|
||||||
|
<itemizedlist>
|
||||||
|
<listitem>
|
||||||
|
<para>Open Django configuration file:</para>
|
||||||
|
<programlisting>
|
||||||
|
<![CDATA[
|
||||||
|
user@work:~/$ cd <Horizon Installation Dir> && nano settings.py
|
||||||
|
]]>
|
||||||
|
</programlisting>
|
||||||
|
<para>Please, make sure that no local/local_settings.py file exists.</para>
|
||||||
|
</listitem>
|
||||||
|
<listitem>
|
||||||
|
<para>Add to import section</para>
|
||||||
|
<programlisting>
|
||||||
|
<![CDATA[
|
||||||
|
from muranoclient.common import exceptions as muranoclient
|
||||||
|
]]>
|
||||||
|
</programlisting>
|
||||||
|
</listitem>
|
||||||
|
<listitem>
|
||||||
|
<para>And this so muranoclient exceptions can be safely handle by horizon:</para>
|
||||||
|
<programlisting>
|
||||||
|
<![CDATA[
|
||||||
|
RECOVERABLE_EXC = (muranoclient.HTTPException,
|
||||||
|
muranoclient.CommunicationError,
|
||||||
|
muranoclient.Forbidden)
|
||||||
|
EXTENDED_RECOVERABLE_EXCEPTIONS = tuple(
|
||||||
|
exceptions.RECOVERABLE + RECOVERABLE_EXC)
|
||||||
|
|
||||||
|
NOT_FOUND_EXC = (muranoclient.HTTPNotFound, muranoclient.EndpointNotFound)
|
||||||
|
EXTENDED_NOT_FOUND_EXCEPTIONS = tuple(exceptions.NOT_FOUND + NOT_FOUND_EXC)
|
||||||
|
|
||||||
|
UNAUTHORIZED_EXC = (muranoclient.HTTPUnauthorized, )
|
||||||
|
EXTENDED_UNAUTHORIZED_EXCEPTIONS = tuple(
|
||||||
|
exceptions.UNAUTHORIZED + UNAUTHORIZED_EXC)
|
||||||
|
]]>
|
||||||
|
</programlisting>
|
||||||
|
</listitem>
|
||||||
|
<listitem>
|
||||||
|
<para>And finally edit HORIZON_CONFIG and INSTALLED_APPS sections</para>
|
||||||
|
<programlisting>
|
||||||
|
<![CDATA[
|
||||||
|
|
||||||
|
HORIZON_CONFIG = {
|
||||||
|
...
|
||||||
|
'exceptions': {'recoverable': EXTENDED_RECOVERABLE_EXCEPTIONS,
|
||||||
|
'not_found': EXTENDED_NOT_FOUND_EXCEPTIONS,
|
||||||
|
'unauthorized': EXTENDED_UNAUTHORIZED_EXCEPTIONS},
|
||||||
|
'customization_module': 'muranodashboard.panel.overrides'
|
||||||
|
|
||||||
|
}
|
||||||
|
...
|
||||||
|
INSTALLED_APPS = (
|
||||||
|
...
|
||||||
|
'muranodashboard',
|
||||||
|
...
|
||||||
|
)
|
||||||
|
]]>
|
||||||
|
</programlisting>
|
||||||
|
</listitem>
|
||||||
|
</itemizedlist>
|
||||||
|
</section>
|
||||||
|
<section>
|
||||||
|
<title>Run</title>
|
||||||
|
<para>Run Horizon:</para>
|
||||||
|
<programlisting>
|
||||||
|
<![CDATA[
|
||||||
|
user@work:~/$ sudo service apache2 restart
|
||||||
|
]]>
|
||||||
|
</programlisting>
|
||||||
|
</section>
|
||||||
|
</section>
|
||||||
|
</chapter>
|
73
src/murano-manual/src/docbkx/content/overview.xml
Normal file
73
src/murano-manual/src/docbkx/content/overview.xml
Normal file
@ -0,0 +1,73 @@
|
|||||||
|
<?xml version='1.0' encoding='UTF-8'?>
|
||||||
|
<!--
|
||||||
|
Copyright (c) 2013 Mirantis, Inc.
|
||||||
|
|
||||||
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
you may not use this file except in compliance with the License.
|
||||||
|
You may obtain a copy of the License at
|
||||||
|
|
||||||
|
http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
|
||||||
|
Unless required by applicable law or agreed to in writing, software
|
||||||
|
distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
|
||||||
|
implied.
|
||||||
|
See the License for the specific language governing permissions and
|
||||||
|
limitations under the License.
|
||||||
|
-->
|
||||||
|
<chapter xmlns="http://docbook.org/ns/docbook"
|
||||||
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
|
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||||
|
xsi:schemaLocation="http://docbook.org/ns/docbook http://www.docbook.org/xml/5.0/xsd/docbook.xsd
|
||||||
|
http://www.w3.org/1999/xlink http://www.w3.org/1999/xlink.xsd"
|
||||||
|
version="5.0">
|
||||||
|
<title>Overview</title>
|
||||||
|
<para>Welcome to Murano Project.
|
||||||
|
</para>
|
||||||
|
<section>
|
||||||
|
<title>Intended Audience</title>
|
||||||
|
<para>This guide is intended to individuals who want to contribute
|
||||||
|
to our
|
||||||
|
project.
|
||||||
|
</para>
|
||||||
|
</section>
|
||||||
|
<section>
|
||||||
|
<title>Document Change History</title>
|
||||||
|
<para>This version of the Murano Manual replaces and obsoletes all
|
||||||
|
previous versions. The
|
||||||
|
most recent changes are described in the table below:
|
||||||
|
</para>
|
||||||
|
<informaltable rules="all">
|
||||||
|
<thead>
|
||||||
|
<tr>
|
||||||
|
<td align="center" colspan="1">Revision Date</td>
|
||||||
|
<td align="center" colspan="4">Summary of Changes</td>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
<tr>
|
||||||
|
<td colspan="1" align="center">April. 4, 2013</td>
|
||||||
|
<td colspan="4">
|
||||||
|
<itemizedlist spacing="compact">
|
||||||
|
<listitem>
|
||||||
|
<para>Initial document creation.</para>
|
||||||
|
</listitem>
|
||||||
|
</itemizedlist>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</informaltable>
|
||||||
|
</section>
|
||||||
|
<section>
|
||||||
|
<title>Additional Resources</title>
|
||||||
|
<itemizedlist spacing="compact">
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
<link xlink:href="http://www.mirantis.com">
|
||||||
|
Mirantis - Cloud Software
|
||||||
|
</link>
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
</itemizedlist>
|
||||||
|
</section>
|
||||||
|
</chapter>
|
143
src/murano-manual/src/docbkx/content/roadmap.xml
Normal file
143
src/murano-manual/src/docbkx/content/roadmap.xml
Normal file
@ -0,0 +1,143 @@
|
|||||||
|
<?xml version='1.0' encoding='UTF-8'?>
|
||||||
|
<!--
|
||||||
|
Copyright (c) 2013 Mirantis, Inc.
|
||||||
|
|
||||||
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
you may not use this file except in compliance with the License.
|
||||||
|
You may obtain a copy of the License at
|
||||||
|
|
||||||
|
http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
|
||||||
|
Unless required by applicable law or agreed to in writing, software
|
||||||
|
distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
|
||||||
|
implied.
|
||||||
|
See the License for the specific language governing permissions and
|
||||||
|
limitations under the License.
|
||||||
|
-->
|
||||||
|
|
||||||
|
<chapter xmlns="http://docbook.org/ns/docbook"
|
||||||
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
|
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||||
|
xsi:schemaLocation="http://docbook.org/ns/docbook http://www.docbook.org/xml/5.0/xsd/docbook.xsd
|
||||||
|
http://www.w3.org/1999/xlink http://www.w3.org/1999/xlink.xsd"
|
||||||
|
version="5.0">
|
||||||
|
<title>Roadmap</title>
|
||||||
|
<para>
|
||||||
|
<itemizedlist spacing="compact">
|
||||||
|
<title>
|
||||||
|
<emphasis>Phase 1. Initial Version</emphasis>
|
||||||
|
</title>
|
||||||
|
<para>(Release date: May 30th)</para>
|
||||||
|
<listitem>
|
||||||
|
<para>Core Services: REST API, Orchestration Engine</para>
|
||||||
|
</listitem>
|
||||||
|
<listitem>
|
||||||
|
<para>Horizon dashboard extension as plugin</para>
|
||||||
|
</listitem>
|
||||||
|
<listitem>
|
||||||
|
<para>Integration with Heat</para>
|
||||||
|
</listitem>
|
||||||
|
<listitem>
|
||||||
|
<para>Support single Data Center (no Disaster Recovery)</para>
|
||||||
|
</listitem>
|
||||||
|
<listitem>
|
||||||
|
<para>Support the following Windows Services:
|
||||||
|
<itemizedlist spacing="compact">
|
||||||
|
<listitem>
|
||||||
|
<para>Active Directory - Single Domain with multiple domain controllers</para>
|
||||||
|
</listitem>
|
||||||
|
<listitem>
|
||||||
|
<para>IIS Server - single instance of IIS Server</para>
|
||||||
|
</listitem>
|
||||||
|
<listitem>
|
||||||
|
<para>IIS Cluster - multiple IIS instances with Load Balancing</para>
|
||||||
|
</listitem>
|
||||||
|
<listitem>
|
||||||
|
<para>ASP.NET Application Service - ASP.NET application installed on top of IIS</para>
|
||||||
|
</listitem>
|
||||||
|
</itemizedlist>
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
</itemizedlist>
|
||||||
|
</para>
|
||||||
|
<para>
|
||||||
|
<itemizedlist spacing="compact">
|
||||||
|
<title>
|
||||||
|
<emphasis>Phase 2. Stable Release</emphasis>
|
||||||
|
</title>
|
||||||
|
<para>(3 month)</para>
|
||||||
|
<listitem>
|
||||||
|
<para>Stabilize Core Services (bug fixing)</para>
|
||||||
|
</listitem>
|
||||||
|
<listitem>
|
||||||
|
<para>Support API, UI extensibility</para>
|
||||||
|
</listitem>
|
||||||
|
<listitem>
|
||||||
|
<para>UI design</para>
|
||||||
|
</listitem>
|
||||||
|
<listitem>
|
||||||
|
<para>Workflow and recipes repository</para>
|
||||||
|
</listitem>
|
||||||
|
<listitem>
|
||||||
|
<para>Data transfer between service instances</para>
|
||||||
|
</listitem>
|
||||||
|
<listitem>
|
||||||
|
<para>Basic Service monitoring</para>
|
||||||
|
</listitem>
|
||||||
|
<listitem>
|
||||||
|
<para>Additional Services:
|
||||||
|
<itemizedlist spacing="compact">
|
||||||
|
<listitem>
|
||||||
|
<para>MS SQL - single instance of Microsoft SQL Server or Pair of SQL Servers with DB
|
||||||
|
mirroring
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
</itemizedlist>
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
</itemizedlist>
|
||||||
|
</para>
|
||||||
|
<para>
|
||||||
|
<itemizedlist spacing="compact">
|
||||||
|
<title>
|
||||||
|
<emphasis>Phase 3</emphasis>
|
||||||
|
</title>
|
||||||
|
<listitem>
|
||||||
|
<para>Add more services</para>
|
||||||
|
</listitem>
|
||||||
|
<listitem>
|
||||||
|
<para>Services Dependencies support</para>
|
||||||
|
</listitem>
|
||||||
|
<listitem>
|
||||||
|
<para>Extended health monitoring</para>
|
||||||
|
</listitem>
|
||||||
|
<listitem>
|
||||||
|
<para>Agent extensibility (allow 3rd party configuration tools)</para>
|
||||||
|
</listitem>
|
||||||
|
<listitem>
|
||||||
|
<para>Basic Self-healing (actions on monitoring events)</para>
|
||||||
|
</listitem>
|
||||||
|
<listitem>
|
||||||
|
<para>Additional Services</para>
|
||||||
|
</listitem>
|
||||||
|
</itemizedlist>
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
<itemizedlist spacing="compact">
|
||||||
|
<title>
|
||||||
|
<emphasis>Phase 4</emphasis>
|
||||||
|
</title>
|
||||||
|
<listitem>
|
||||||
|
<para>Availability Zones support</para>
|
||||||
|
</listitem>
|
||||||
|
<listitem>
|
||||||
|
<para>Auto-scaling for Windows services</para>
|
||||||
|
</listitem>
|
||||||
|
<listitem>
|
||||||
|
<para>Security improvements</para>
|
||||||
|
</listitem>
|
||||||
|
</itemizedlist>
|
||||||
|
</para>
|
||||||
|
</chapter>
|
98
src/murano-manual/src/docbkx/content/screenshots.xml
Normal file
98
src/murano-manual/src/docbkx/content/screenshots.xml
Normal file
@ -0,0 +1,98 @@
|
|||||||
|
<?xml version='1.0' encoding='UTF-8'?>
|
||||||
|
<!--
|
||||||
|
Copyright (c) 2013 Mirantis, Inc.
|
||||||
|
|
||||||
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
you may not use this file except in compliance with the License.
|
||||||
|
You may obtain a copy of the License at
|
||||||
|
|
||||||
|
http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
|
||||||
|
Unless required by applicable law or agreed to in writing, software
|
||||||
|
distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
|
||||||
|
implied.
|
||||||
|
See the License for the specific language governing permissions and
|
||||||
|
limitations under the License.
|
||||||
|
-->
|
||||||
|
|
||||||
|
<chapter xmlns="http://docbook.org/ns/docbook"
|
||||||
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
|
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||||
|
xsi:schemaLocation="http://docbook.org/ns/docbook http://www.docbook.org/xml/5.0/xsd/docbook.xsd
|
||||||
|
http://www.w3.org/1999/xlink http://www.w3.org/1999/xlink.xsd"
|
||||||
|
version="5.0">
|
||||||
|
<title>ScreenShots</title>
|
||||||
|
<mediaobject>
|
||||||
|
<imageobject role="fo">
|
||||||
|
<imagedata fileref="../figures/screens/1.png"
|
||||||
|
contentwidth="5in"/>
|
||||||
|
</imageobject>
|
||||||
|
<imageobject role="html">
|
||||||
|
<imagedata fileref="../figures/screens/1.png"/>
|
||||||
|
</imageobject>
|
||||||
|
</mediaobject>
|
||||||
|
<mediaobject>
|
||||||
|
<imageobject role="fo">
|
||||||
|
<imagedata fileref="../figures/screens/2.png"
|
||||||
|
contentwidth="5in"/>
|
||||||
|
</imageobject>
|
||||||
|
<imageobject role="html">
|
||||||
|
<imagedata fileref="../figures/screens/2.png"/>
|
||||||
|
</imageobject>
|
||||||
|
</mediaobject>
|
||||||
|
<mediaobject>
|
||||||
|
<imageobject role="fo">
|
||||||
|
<imagedata fileref="../figures/screens/3.png"
|
||||||
|
contentwidth="5in"/>
|
||||||
|
</imageobject>
|
||||||
|
<imageobject role="html">
|
||||||
|
<imagedata fileref="../figures/screens/3.png"/>
|
||||||
|
</imageobject>
|
||||||
|
</mediaobject>
|
||||||
|
<mediaobject>
|
||||||
|
<imageobject role="fo">
|
||||||
|
<imagedata fileref="../figures/screens/4.png"
|
||||||
|
contentwidth="5in"/>
|
||||||
|
</imageobject>
|
||||||
|
<imageobject role="html">
|
||||||
|
<imagedata fileref="../figures/screens/4.png"/>
|
||||||
|
</imageobject>
|
||||||
|
</mediaobject>
|
||||||
|
<mediaobject>
|
||||||
|
<imageobject role="fo">
|
||||||
|
<imagedata fileref="../figures/screens/5.png"
|
||||||
|
contentwidth="5in"/>
|
||||||
|
</imageobject>
|
||||||
|
<imageobject role="html">
|
||||||
|
<imagedata fileref="../figures/screens/5.png"/>
|
||||||
|
</imageobject>
|
||||||
|
</mediaobject>
|
||||||
|
<mediaobject>
|
||||||
|
<imageobject role="fo">
|
||||||
|
<imagedata fileref="../figures/screens/6.png"
|
||||||
|
contentwidth="5in"/>
|
||||||
|
</imageobject>
|
||||||
|
<imageobject role="html">
|
||||||
|
<imagedata fileref="../figures/screens/6.png"/>
|
||||||
|
</imageobject>
|
||||||
|
</mediaobject>
|
||||||
|
<mediaobject>
|
||||||
|
<imageobject role="fo">
|
||||||
|
<imagedata fileref="../figures/screens/7.png"
|
||||||
|
contentwidth="5in"/>
|
||||||
|
</imageobject>
|
||||||
|
<imageobject role="html">
|
||||||
|
<imagedata fileref="../figures/screens/7.png"/>
|
||||||
|
</imageobject>
|
||||||
|
</mediaobject>
|
||||||
|
<mediaobject>
|
||||||
|
<imageobject role="fo">
|
||||||
|
<imagedata fileref="../figures/screens/1.png"
|
||||||
|
contentwidth="5in"/>
|
||||||
|
</imageobject>
|
||||||
|
<imageobject role="html">
|
||||||
|
<imagedata fileref="../figures/screens/1.png"/>
|
||||||
|
</imageobject>
|
||||||
|
</mediaobject>
|
||||||
|
</chapter>
|
2962
src/murano-manual/src/docbkx/content/specification.xml
Normal file
2962
src/murano-manual/src/docbkx/content/specification.xml
Normal file
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue
Block a user