You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cloudstack.apache.org by ah...@apache.org on 2013/07/01 23:25:10 UTC
[26/50] [abbrv] git commit: updated refs/heads/vmsync to f737019
ACS4.1_Quick_install_guide
Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/676d8744
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/676d8744
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/676d8744
Branch: refs/heads/vmsync
Commit: 676d8744ef6801cf3fcf6425d37ba27a149e5615
Parents: bd784fb
Author: Meng Han <me...@ufl.edu>
Authored: Sat Jun 29 11:32:36 2013 -0400
Committer: Sebastien Goasguen <ru...@gmail.com>
Committed: Sat Jun 29 15:40:12 2013 -0400
----------------------------------------------------------------------
docs/qig/en-US/Author_Group.xml | 32 ++++
docs/qig/en-US/Book_Info.xml | 52 +++++++
docs/qig/en-US/Chapter.xml | 53 +++++++
docs/qig/en-US/Environment.xml | 258 +++++++++++++++++++++++++++++++
docs/qig/en-US/Management.xml | 99 ++++++++++++
docs/qig/en-US/Overview.xml | 93 +++++++++++
docs/qig/en-US/Preface.xml | 33 ++++
docs/qig/en-US/Revision_History.xml | 42 +++++
docs/qig/en-US/config.xml | 177 +++++++++++++++++++++
docs/qig/en-US/kvm.xml | 142 +++++++++++++++++
docs/qig/en-US/qig.ent | 22 +++
docs/qig/en-US/qig.xml | 36 +++++
12 files changed, 1039 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/676d8744/docs/qig/en-US/Author_Group.xml
----------------------------------------------------------------------
diff --git a/docs/qig/en-US/Author_Group.xml b/docs/qig/en-US/Author_Group.xml
new file mode 100644
index 0000000..432ef6f
--- /dev/null
+++ b/docs/qig/en-US/Author_Group.xml
@@ -0,0 +1,32 @@
+<?xml version='1.0' encoding='utf-8' ?>
+<!DOCTYPE authorgroup PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
+<!ENTITY % BOOK_ENTITIES SYSTEM "qig.ent">
+%BOOK_ENTITIES;
+]>
+
+<!-- Licensed to the Apache Software Foundation (ASF) under one
+ or more contributor license agreements. See the NOTICE file
+ distributed with this work for additional information
+ regarding copyright ownership. The ASF licenses this file
+ to you 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.
+-->
+
+
+<authorgroup>
+ <author>
+ <firstname>Apache</firstname>
+ <surname>CloudStack</surname>
+ </author>
+</authorgroup>
+
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/676d8744/docs/qig/en-US/Book_Info.xml
----------------------------------------------------------------------
diff --git a/docs/qig/en-US/Book_Info.xml b/docs/qig/en-US/Book_Info.xml
new file mode 100644
index 0000000..e356de4
--- /dev/null
+++ b/docs/qig/en-US/Book_Info.xml
@@ -0,0 +1,52 @@
+<?xml version='1.0' encoding='utf-8' ?>
+<!DOCTYPE bookinfo PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
+<!ENTITY % BOOK_ENTITIES SYSTEM "Runbook.ent">
+%BOOK_ENTITIES;
+]>
+
+<!-- Licensed to the Apache Software Foundation (ASF) under one
+ or more contributor license agreements. See the NOTICE file
+ distributed with this work for additional information
+ regarding copyright ownership. The ASF licenses this file
+ to you 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.
+-->
+
+
+<bookinfo id="book-qig-qig">
+ <title>Quick Install Guide</title>
+ <subtitle>Prescriptive instructions for deploying Apache CloudStack</subtitle>
+ <productname>Apache CloudStack</productname>
+ <productnumber>4.0.2</productnumber>
+ <edition>0</edition>
+ <pubsnumber>0</pubsnumber>
+ <abstract>
+ <para>
+ This guide is designed to provide a strict environment to guarantee
+ a higher degree of success in initial deployments of Apache CloudStack.
+ All of the elements of the environment will be provided to you.
+ Apache CloudStack is capable of much more complex configurations,
+ but they are beyond the scope of this document.
+ </para>
+ </abstract>
+ <corpauthor>
+ <inlinemediaobject>
+ <imageobject>
+ <imagedata fileref="Common_Content/images/title_logo.svg" format="SVG" />
+ </imageobject>
+ </inlinemediaobject>
+ </corpauthor>
+ <xi:include href="Common_Content/Legal_Notice.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
+ <xi:include href="Author_Group.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
+</bookinfo>
+
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/676d8744/docs/qig/en-US/Chapter.xml
----------------------------------------------------------------------
diff --git a/docs/qig/en-US/Chapter.xml b/docs/qig/en-US/Chapter.xml
new file mode 100644
index 0000000..4adf63c
--- /dev/null
+++ b/docs/qig/en-US/Chapter.xml
@@ -0,0 +1,53 @@
+<?xml version='1.0' encoding='utf-8' ?>
+<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
+<!ENTITY % BOOK_ENTITIES SYSTEM "Runbook.ent">
+%BOOK_ENTITIES;
+]>
+
+<!-- Licensed to the Apache Software Foundation (ASF) under one
+ or more contributor license agreements. See the NOTICE file
+ distributed with this work for additional information
+ regarding copyright ownership. The ASF licenses this file
+ to you 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 id="chap-Runbook-Test_Chapter">
+ <title>Test Chapter</title>
+ <para>
+ This is a test paragraph
+ </para>
+ <section id="sect-Runbook-Test_Chapter-Test_Section_1">
+ <title>Test Section 1</title>
+ <para>
+ This is a test paragraph in a section
+ </para>
+ </section>
+
+ <section id="sect-Runbook-Test_Chapter-Test_Section_2">
+ <title>Test Section 2</title>
+ <para>
+ This is a test paragraph in Section 2
+ <orderedlist>
+ <listitem>
+ <para>
+ listitem text
+ </para>
+ </listitem>
+ </orderedlist>
+ </para>
+ </section>
+
+</chapter>
+
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/676d8744/docs/qig/en-US/Environment.xml
----------------------------------------------------------------------
diff --git a/docs/qig/en-US/Environment.xml b/docs/qig/en-US/Environment.xml
new file mode 100644
index 0000000..e48b405
--- /dev/null
+++ b/docs/qig/en-US/Environment.xml
@@ -0,0 +1,258 @@
+<?xml version='1.0' encoding='utf-8' ?>
+<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
+<!ENTITY % BOOK_ENTITIES SYSTEM "qig.ent">
+%BOOK_ENTITIES;
+]>
+
+<!-- Licensed to the Apache Software Foundation (ASF) under one
+ or more contributor license agreements. See the NOTICE file
+ distributed with this work for additional information
+ regarding copyright ownership. The ASF licenses this file
+ to you 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 id="chap-qig-Environment">
+ <title>Environment</title>
+ <para>
+ Before you begin, you need to prepare the environment before you install CloudStack.
+ We will go over the steps to prepare now.
+ </para>
+ <section id="sect-qig-Environment-operatingsys">
+ <title>Operating System</title>
+ <para>
+ Using the CentOS 6.4 x86_64 minimal install ISO, you'll need to install CentOS
+ on your hardware. The defaults will generally be acceptable for this installation.
+ </para>
+ <para>
+ Once this installation is complete, you'll want to connect to your freshly
+ installed machine via SSH as the root user. Note that you should not allow root
+ logins in a production environment, so be sure to turn off remote logins once you
+ have finished the installation and configuration.
+ </para>
+ <section id="sect-qig-Environment-operatingsys-network">
+ <title>Configuring the network</title>
+ <para>
+ By default the network will not come up on your hardware and you
+ will need to configure it to work in your environment. Since we
+ specified that there will be no DHCP server in this environment
+ we will be manually configuring your network interface. We will
+ assume, for the purposes of this exercise, that eth0 is the only network
+ interface that will be connected and used.
+ </para>
+ <para>
+ Connecting via the console you should login as root. Check the
+ file <filename>/etc/sysconfig/network-scripts/ifcfg-eth0</filename>,
+ it will look like this by default:
+ <screen>
+DEVICE="eth0"
+HWADDR="52:54:00:B9:A6:C0"
+NM_CONTROLLED="yes"
+ONBOOT="no"
+ </screen>
+ </para>
+ <para>
+ Unfortunately, this configuration will not permit you to connect to the network,
+ and is also unsuitable for our purposes with CloudStack. We want to
+ configure that file so that it specifies the IP address, netmask, etc., as shown
+ in the following example:
+ </para>
+ <important>
+ <title>Hardware Addresses</title>
+ <para>You should not use the hardware address (aka MAC address) from our example
+ for your configuration. It is network interface specific, so you should keep the
+ address already provided in the HWADDR directive.
+ </para>
+ </important>
+ <screen>
+DEVICE=eth0
+HWADDR=52:54:00:B9:A6:C0
+NM_CONTROLLED=no
+ONBOOT=yes
+BOOTPROTO=none
+IPADDR=172.16.10.2
+NETMASK=255.255.255.0
+GATEWAY=172.16.10.1
+DNS1=8.8.8.8
+DNS2=8.8.4.4
+ </screen>
+ <note>
+ <title>IP Addressing</title>
+ <para>Throughout this document we are assuming that you will
+ have a /24 network for your CloudStack implementation. This can be any
+ RFC 1918 network. However, we are assuming that you will match the
+ machine address that we are using. Thus we may use
+ <userinput><replaceable>172.16.10</replaceable>.2</userinput> and because
+ you might be using the 192.168.55.0/24 network you would use
+ <userinput><replaceable>192.168.55</replaceable>.2</userinput>
+ </para>
+ </note>
+ <para> Now that we have the configuration files properly set up, we need to run a
+ few commands to start up the network</para>
+ <screen><prompt># </prompt><userinput><command>chkconfig</command> network on</userinput></screen>
+ <screen><prompt># </prompt><userinput><command>service</command> network start</userinput></screen>
+ </section>
+ <section id="sect-qig-Environment-operatingsys-hostname">
+ <title>Hostname</title>
+ <para>
+ Cloudstack requires that the hostname be properly set. If you used the default
+ options in the installation, then your hostname is currently set to
+ localhost.localdomain. To test this we will run: </para>
+ <screen><prompt># </prompt><userinput>hostname --fqdn</userinput></screen>
+ <para>At this point it will likely return:</para>
+ <screen>localhost</screen>
+ <para>To rectify this situation - we'll set the hostname by editing the
+ <filename>/etc/hosts</filename> file so that it follows a similar format to this example:<screen>
+127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
+::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
+172.16.10.2 srvr1.cloud.priv
+</screen>
+ </para>
+ <para>After you've modified that file, go ahead and restart the network using:</para>
+<screen><prompt># </prompt><userinput><command>service</command> network restart</userinput></screen>
+ <para>Now recheck with the <command>hostname --fqdn</command> command and ensure that it returns
+ a FQDN response</para>
+ </section>
+ <section id="sect-qig-Environment-operatingsys-selinux">
+ <title>SELinux</title>
+ <para>At the moment, for CloudStack to work properly SELinux must be
+ set to permissive. We want to both configure this for future boots and modify it
+ in the current running system.
+ </para>
+ <para>To configure SELinux to be permissive in the running system we need to run
+ the following command:</para>
+ <screen><prompt># </prompt><userinput><command>setenforce</command> 0</userinput></screen>
+ <para>
+ To ensure that it remains in that state we need to configure the file
+ <filename>/etc/selinux/config</filename> to reflect the permissive state,
+ as shown in this example: </para>
+ <screen>
+
+# This file controls the state of SELinux on the system.
+# SELINUX= can take one of these three values:
+# enforcing - SELinux security policy is enforced.
+# permissive - SELinux prints warnings instead of enforcing.
+# disabled - No SELinux policy is loaded.
+SELINUX=permissive
+# SELINUXTYPE= can take one of these two values:
+# targeted - Targeted processes are protected,
+# mls - Multi Level Security protection.
+SELINUXTYPE=targeted
+ </screen>
+
+ </section>
+ <section id="sect-qig-Environment-operatingsys-ntp">
+ <title>NTP</title>
+ <para>NTP configuration is a necessity for keeping all of the clocks in your cloud
+ servers in sync. However, NTP is not installed by default. So we'll install and
+ and configure NTP at this stage. Installation is accomplished as follows:
+ </para>
+ <screen><prompt># </prompt><userinput><command>yum</command> -y install ntp</userinput></screen>
+ <para>The actual default configuration is fine for our purposes, so we merely need to
+ enable it and set it to start on boot as follows:</para>
+ <screen><prompt># </prompt><userinput><command>chkconfig</command> ntpd on</userinput></screen>
+ <screen><prompt># </prompt><userinput><command>service</command> ntpd start</userinput></screen>
+ </section>
+ <section id="sect-qig-Environment-operatingsys-repoconfig">
+ <title>Configuring the CloudStack Package Repository</title>
+ <para>
+ We need to configure the machine to use a CloudStack package repository.
+ <important>
+ <title>The below repository is not an official Apache CloudStack project repository</title>
+ <para>
+ The Apache CloudStack official releases are source code. As such there are no
+ 'official' binaries available. The full installation guide describes how to take
+ the source release and generate RPMs and and yum repository. This guide attempts
+ to keep things as simple as possible, and thus we are using one of the
+ community-provided yum repositories.
+ </para>
+ </important>
+ </para>
+ <para>To add the CloudStack repository, create <filename>/etc/yum.repos.d/cloudstack.repo</filename> and insert the following information.</para>
+ <programlisting>
+[cloudstack]
+name=cloudstack
+baseurl=http://cloudstack.apt-get.eu/rhel/4.1/
+enabled=1
+gpgcheck=0
+ </programlisting>
+ </section>
+ </section>
+ <section id="sect-qig-Environment-nfs">
+ <title>NFS</title>
+ <para>
+ Our configuration is going to use NFS for both primary and secondary
+ storage. We are going to go ahead and setup two NFS shares for those
+ purposes. We'll start out by installing
+ <application>nfs-utils</application>.
+ </para>
+ <screen><prompt># </prompt><userinput><command>yum</command> install nfs-utils</userinput></screen>
+ <para>
+ We now need to configure NFS to serve up two different shares. This is handled comparatively easily
+ in the <filename>/etc/exports</filename> file. You should ensure that it has the following content:
+ </para>
+ <screen>
+/secondary *(rw,async,no_root_squash)
+/primary *(rw,async,no_root_squash)
+ </screen>
+ <para>
+ You will note that we specified two directories that don't exist (yet) on the system.
+ We'll go ahead and create those directories and set permissions appropriately on them with the following commands:
+ </para>
+ <screen>
+<prompt># </prompt><userinput><command>mkdir</command> /primary</userinput>
+<prompt># </prompt><userinput><command>mkdir</command> /secondary</userinput>
+ </screen>
+ <para>CentOS 6.x releases use NFSv4 by default. NFSv4 requires that domain setting matches on all clients.
+ In our case, the domain is cloud.priv, so ensure that the domain setting in <filename>/etc/idmapd.conf</filename>
+ is uncommented and set as follows:</para>
+ <screen>Domain = cloud.priv</screen>
+ <para>Now you'll need uncomment the configuration values in the file <filename>/etc/sysconfig/nfs</filename></para>
+ <screen>
+LOCKD_TCPPORT=32803
+LOCKD_UDPPORT=32769
+MOUNTD_PORT=892
+RQUOTAD_PORT=875
+STATD_PORT=662
+STATD_OUTGOING_PORT=2020
+ </screen>
+ <para> Now we need to configure the firewall to permit incoming NFS connections.
+ Edit the file <filename>/etc/sysconfig/iptables</filename>
+ </para>
+ <screen>
+-A INPUT -s 172.16.10.0/24 -m state --state NEW -p udp --dport 111 -j ACCEPT
+-A INPUT -s 172.16.10.0/24 -m state --state NEW -p tcp --dport 111 -j ACCEPT
+-A INPUT -s 172.16.10.0/24 -m state --state NEW -p tcp --dport 2049 -j ACCEPT
+-A INPUT -s 172.16.10.0/24 -m state --state NEW -p tcp --dport 32803 -j ACCEPT
+-A INPUT -s 172.16.10.0/24 -m state --state NEW -p udp --dport 32769 -j ACCEPT
+-A INPUT -s 172.16.10.0/24 -m state --state NEW -p tcp --dport 892 -j ACCEPT
+-A INPUT -s 172.16.10.0/24 -m state --state NEW -p udp --dport 892 -j ACCEPT
+-A INPUT -s 172.16.10.0/24 -m state --state NEW -p tcp --dport 875 -j ACCEPT
+-A INPUT -s 172.16.10.0/24 -m state --state NEW -p udp --dport 875 -j ACCEPT
+-A INPUT -s 172.16.10.0/24 -m state --state NEW -p tcp --dport 662 -j ACCEPT
+-A INPUT -s 172.16.10.0/24 -m state --state NEW -p udp --dport 662 -j ACCEPT
+ </screen>
+ <para>Now you can restart the iptables service with the following command:
+ </para>
+ <screen><prompt># </prompt><userinput><command>service</command> iptables restart</userinput></screen>
+ <para>We now need to configure nfs service to start on boot and actually start it on the host by
+ executing the following commands:</para>
+ <screen>
+<prompt># </prompt><userinput><command>service</command> rpcbind start</userinput>
+<prompt># </prompt><userinput><command>service</command> nfs start</userinput>
+<prompt># </prompt><userinput><command>chkconfig</command> rpcbind on</userinput>
+<prompt># </prompt><userinput><command>chkconfig</command> nfs on</userinput>
+ </screen>
+ </section>
+</chapter>
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/676d8744/docs/qig/en-US/Management.xml
----------------------------------------------------------------------
diff --git a/docs/qig/en-US/Management.xml b/docs/qig/en-US/Management.xml
new file mode 100644
index 0000000..8c6040f
--- /dev/null
+++ b/docs/qig/en-US/Management.xml
@@ -0,0 +1,99 @@
+<?xml version='1.0' encoding='utf-8' ?>
+<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
+<!ENTITY % BOOK_ENTITIES SYSTEM "qig.ent">
+%BOOK_ENTITIES;
+]>
+
+<!-- Licensed to the Apache Software Foundation (ASF) under one
+ or more contributor license agreements. See the NOTICE file
+ distributed with this work for additional information
+ regarding copyright ownership. The ASF licenses this file
+ to you 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 id="chap-qig-Management">
+ <title>Installation of the management server</title>
+ <para>
+ Now it is time to start installing CloudStack's management server
+ and some of the related components.
+ </para>
+ <section id="sect-qig-Management-database">
+ <title>Database Installation and Configuration</title>
+ <para>
+ We'll start out by installing <application>MySQL</application> and configuring
+ some options to ensure CloudStack runs well.
+ </para>
+ <para>
+ To install <application>MySQL</application> run the following command:
+ <screen><prompt># </prompt><userinput><command>yum</command> -y install mysql-server</userinput></screen>
+ </para>
+ <para>With <application>MySQL</application> installed we need to make
+ a few configuration changes to <filename>/etc/my.cnf</filename>.
+ Specifically we need to add the following options to the [mysqld] section:
+ <screen>
+innodb_rollback_on_timeout=1
+innodb_lock_wait_timeout=600
+max_connections=350
+log-bin=mysql-bin
+binlog-format = 'ROW'
+ </screen>
+ </para>
+ <para>
+ Now that <application>MySQL</application> is properly configured we can
+ start it and configure it to start on boot as follows:
+ <screen>
+<prompt># </prompt><userinput><command>service</command> mysqld start</userinput>
+<prompt># </prompt><userinput><command>chkconfig</command> mysqld on</userinput>
+ </screen>
+ </para>
+
+ </section>
+
+ <section id="sect-qig-Management-installation">
+ <title>Installation</title>
+ <para>We are now going to install the management server. We do that by executing the following command:
+ <screen><prompt># </prompt><userinput><command>yum</command> -y install cloud-client</userinput></screen>
+ </para>
+ <para>With the application itself installed we can now setup the database, we'll do that with the following command
+ and options:
+ </para>
+ <screen><prompt># </prompt><userinput><command>cloudstack-setup-databases</command> cloud:<replaceable>password</replaceable>@localhost --deploy-as=root</userinput></screen>
+ <para>When this process is finished, you should see a message like "CloudStack has successfully initialized the database."
+ </para>
+ <para>Now that the database has been created, we can take the final step in setting up the management server by issuing the following command:</para>
+ <screen><prompt># </prompt><userinput><command>cloudstack-setup-management</command></userinput></screen>
+ </section>
+ <section id="sect-qig-Management-templatesetup">
+ <title>System Template Setup</title>
+ <para>CloudStack uses a number of system VMs to provide functionality for
+ accessing the console of virtual machines, providing various networking
+ services, and managing various aspects of storage. This step will
+ acquire those system images ready for deployment when we bootstrap
+ your cloud.
+ </para>
+ <para>
+ Now we need to download the system VM template and deploy that to the
+ share we just mounted. The management server includes a script to properly
+ manipulate the system VMs images.
+ </para>
+ <screen><prompt># </prompt><userinput><command>/usr/share/cloudstack-common/scripts/storage/secondary/cloud-install-sys-tmplt</command> -m /secondary -u http://download.cloud.com/templates/acton/acton-systemvm-02062012.qcow2.bz2 -h kvm -F</userinput>
+ </screen>
+ <para>
+ That concludes our setup of the management server. We still need to
+ configure CloudStack, but we will do that after we get our hypervisor
+ set up.
+ </para>
+ </section>
+</chapter>
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/676d8744/docs/qig/en-US/Overview.xml
----------------------------------------------------------------------
diff --git a/docs/qig/en-US/Overview.xml b/docs/qig/en-US/Overview.xml
new file mode 100644
index 0000000..31915f5
--- /dev/null
+++ b/docs/qig/en-US/Overview.xml
@@ -0,0 +1,93 @@
+<?xml version='1.0' encoding='utf-8' ?>
+<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
+<!ENTITY % BOOK_ENTITIES SYSTEM "qig.ent">
+%BOOK_ENTITIES;
+]>
+
+<!-- Licensed to the Apache Software Foundation (ASF) under one
+ or more contributor license agreements. See the NOTICE file
+ distributed with this work for additional information
+ regarding copyright ownership. The ASF licenses this file
+ to you 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 id="chap-qig-Overview">
+ <title>Overview</title>
+ <para>
+ Infrastructure-as-a-Service (IaaS) clouds can be a complex thing to build,
+ and by definition they have a plethora of options, which often lead to confusion
+ for even experienced admins who are newcomers to building cloud platforms.
+ The goal for this runbook is to provide a straightforward set of instructions
+ to get you up and running with CloudStack with a minimum amount of trouble.
+ </para>
+ <section id="sect-qig-Overview-What_building">
+ <title>What exactly are we building?</title>
+ <para>
+ This runbook will focus on building a CloudStack cloud using KVM with
+ CentOS 6.4 with NFS storage on a flat layer-2 network utilizing
+ layer-3 network isolation (aka Security Groups), and doing it all
+ on a single piece of hardware.
+ </para>
+ <para>
+ KVM, or Kernel-based Virtual Machine is a virtualization technology
+ for the Linux kernel. KVM supports native virtualization atop
+ processors with hardware virtualization extensions.
+ </para>
+ <para>
+ Security Groups act as distributed firewalls that control access
+ to a group of virtual machines.
+ </para>
+ </section>
+ <section id="sect-qig-Overview-hilevel">
+ <title>High level overview of the process</title>
+ <para>
+ Before we actually get to installing CloudStack, we'll start with
+ installing our base operating system, and then configuring that to act
+ as an NFS server for several types of storage. We'll install the
+ management server, download the systemVMs, and finally install the agent
+ software. Finally we'll spend a good deal of time configuring the entire
+ cloud in the CloudStack web interface.
+ </para>
+ </section>
+ <section id="sect-qig-Overview-prereqs">
+ <title>Prerequisites</title>
+ <para>
+ To complete this runbook you'll need the following items:
+ <orderedlist>
+ <listitem>
+ <para>
+ At least one computer which supports hardware virtualization.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ The
+ <ulink url="http://mirror.stanford.edu/yum/pub/centos/6.4/isos/x86_64/CentOS-6.4-x86_64-minimal.iso">
+ CentOS 6.4 x86_64 minimal install CD
+ </ulink>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ A /24 network with the gateway being at xxx.xxx.xxx.1, no DHCP should be on this network and
+ none of the computers running CloudStack will have a dynamic address. Again this is done for
+ the sake of simplicity.
+ </para>
+ </listitem>
+ </orderedlist>
+ </para>
+ </section>
+
+</chapter>
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/676d8744/docs/qig/en-US/Preface.xml
----------------------------------------------------------------------
diff --git a/docs/qig/en-US/Preface.xml b/docs/qig/en-US/Preface.xml
new file mode 100644
index 0000000..d6ba80e
--- /dev/null
+++ b/docs/qig/en-US/Preface.xml
@@ -0,0 +1,33 @@
+<?xml version='1.0' encoding='utf-8' ?>
+<!DOCTYPE preface PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
+<!ENTITY % BOOK_ENTITIES SYSTEM "qig.ent">
+%BOOK_ENTITIES;
+]>
+
+<!-- Licensed to the Apache Software Foundation (ASF) under one
+ or more contributor license agreements. See the NOTICE file
+ distributed with this work for additional information
+ regarding copyright ownership. The ASF licenses this file
+ to you 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.
+-->
+
+
+<preface id="pref-qig-Preface">
+ <title>Preface</title>
+ <xi:include href="Common_Content/Conventions.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
+ <xi:include href="Feedback.xml" xmlns:xi="http://www.w3.org/2001/XInclude"><xi:fallback xmlns:xi="http://www.w3.org/2001/XInclude"><xi:include href="Common_Content/Feedback.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
+ </xi:fallback>
+ </xi:include>
+</preface>
+
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/676d8744/docs/qig/en-US/Revision_History.xml
----------------------------------------------------------------------
diff --git a/docs/qig/en-US/Revision_History.xml b/docs/qig/en-US/Revision_History.xml
new file mode 100644
index 0000000..1ff4d77
--- /dev/null
+++ b/docs/qig/en-US/Revision_History.xml
@@ -0,0 +1,42 @@
+<?xml version='1.0' encoding='utf-8' ?>
+<!DOCTYPE appendix PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
+<!ENTITY % BOOK_ENTITIES SYSTEM "qig.ent">
+%BOOK_ENTITIES;
+]>
+
+<!-- Licensed to the Apache Software Foundation (ASF) under one
+ or more contributor license agreements. See the NOTICE file
+ distributed with this work for additional information
+ regarding copyright ownership. The ASF licenses this file
+ to you 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.
+-->
+
+
+<appendix id="appe-qig-Revision_History">
+ <title>Revision History</title>
+ <simpara>
+ <revhistory>
+ <revision>
+ <revnumber>0-0</revnumber>
+ <date>Fri Jun 28 2013</date>
+ <revdescription>
+ <simplelist>
+ <member>Initial creation of book by publican</member>
+ </simplelist>
+ </revdescription>
+ </revision>
+ </revhistory>
+ </simpara>
+</appendix>
+
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/676d8744/docs/qig/en-US/config.xml
----------------------------------------------------------------------
diff --git a/docs/qig/en-US/config.xml b/docs/qig/en-US/config.xml
new file mode 100644
index 0000000..7ff7a72
--- /dev/null
+++ b/docs/qig/en-US/config.xml
@@ -0,0 +1,177 @@
+<?xml version='1.0' encoding='utf-8' ?>
+<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
+<!ENTITY % BOOK_ENTITIES SYSTEM "qig.ent">
+%BOOK_ENTITIES;
+]>
+
+<!-- Licensed to the Apache Software Foundation (ASF) under one
+ or more contributor license agreements. See the NOTICE file
+ distributed with this work for additional information
+ regarding copyright ownership. The ASF licenses this file
+ to you 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 id="chap-qig-Config">
+ <title>Configuration</title>
+ <para>
+ As we noted before we will be using security groups to provide isolation
+ and by default that implies that we'll be using a flat layer-2 network.
+ It also means that the simplicity of our setup means that we can use the
+ quick installer.
+ </para>
+ <section id="sect-qig-Config-UI_Access">
+ <title>UI Access</title>
+ <para>
+ To get access to CloudStack's web interface, merely point your
+ browser to http://<replaceable>172.16.10.</replaceable>2:8080/client
+ The default username is 'admin', and the default password is 'password'.
+ You should see a splash screen that allows you to choose several options
+ for setting up CloudStack. You should choose the
+ <option>Continue with Basic Setup</option> option.
+ </para>
+ <para>
+ You should now see a prompt requiring you to change the password for
+ the admin user. Please do so.
+ </para>
+ </section>
+ <section id="sect-qig-Config-Zone">
+ <title>Setting up a Zone</title>
+ <para>
+ A zone is the largest organization entity in CloudStack - and we'll be creating one, this
+ should be the screen that you see in front of you now. And for us there are 5 pieces of
+ information that we need.
+ <orderedlist>
+ <listitem>
+ <para>Name - we will set this to the ever-descriptive 'Zone1' for our cloud.</para>
+ </listitem>
+ <listitem>
+ <para>Public DNS 1 - we will set this to '8.8.8.8' for our cloud.</para>
+ </listitem>
+ <listitem>
+ <para>Public DNS 2 - we will set this to '8.8.4.4' for our cloud.</para>
+ </listitem>
+ <listitem>
+ <para>Internal DNS1 - we will also set this to '8.8.8.8' for our cloud.</para>
+ </listitem>
+ <listitem>
+ <para>Internal DNS2 - we will also set this to '8.8.8.4' for our cloud.</para>
+ </listitem>
+ </orderedlist>
+ </para>
+ <note>
+ <title>Notes about DNS settings</title>
+ <para>
+ CloudStack distinguishes between internal and public DNS. Internal
+ DNS is assumed to be capable of resolving internal-only
+ hostnames, such as your NFS server’s DNS name. Public DNS is
+ provided to the guest VMs to resolve public IP addresses. You can
+ enter the same DNS server for both types, but if you do so, you
+ must make sure that both internal and public IP addresses can
+ route to the DNS server. In our specific case we will not use any
+ names for resources internally, and we have indeed them set to look
+ to the same external resource so as to not add a namerserver setup
+ to our list of requirements.
+ </para>
+ </note>
+ </section>
+ <section id="sect-qig-Config-Pod">
+ <title>Pod Configuration</title>
+ <para>Now that we've added a Zone, the next step that comes up is a prompt
+ for information regading a pod. Which is looking for 4 items.
+ <orderedlist>
+ <listitem>
+ <para>Name - We'll use Pod1 for our cloud.</para>
+ </listitem>
+ <listitem>
+ <para>Gateway - We'll use <replaceable>172.16.10</replaceable>.1 as our gateway</para>
+ </listitem>
+ <listitem>
+ <para>Netmask - We'll use 255.255.255.0</para>
+ </listitem>
+ <listitem>
+ <para>Start/end reserved system IPs - we will use 172.16.10.10-172.16.10.20 </para>
+ </listitem>
+ <listitem>
+ <para>Guest gateway - We'll use <replaceable>172.16.10</replaceable>.1</para>
+ </listitem>
+ <listitem>
+ <para>Guest netmask - We'll use 255.255.255.0</para>
+ </listitem>
+ <listitem>
+ <para>Guest start/end IP - We'll use <replaceable>172.16.10.</replaceable>30-<replaceable>172.16.10.</replaceable>200</para>
+ </listitem>
+ </orderedlist>
+ </para>
+ </section>
+ <section id="Runbook-config-cluster">
+ <title>Cluster</title>
+ <para> Now that we've added a Zone, we need only add a few more items for configuring the cluster.
+ <orderedlist>
+ <listitem>
+ <para>Name - We'll use Cluster1</para>
+ </listitem>
+ <listitem>
+ <para>Hypervisor - Choose KVM</para>
+ </listitem>
+ </orderedlist>
+ </para>
+ <para> You should be prompted to add the first host to your cluster at this point. Only a few bits of information are needed.
+ <orderedlist>
+ <listitem>
+ <para>Hostname - we'll use the IP address <replaceable>172.16.10.</replaceable>2 since we didn't set up a DNS server.</para>
+ </listitem>
+ <listitem>
+ <para>Username - we'll use 'root' </para>
+ </listitem>
+ <listitem>
+ <para>Password - enter the operating system password for the root user</para>
+ </listitem>
+ </orderedlist>
+ </para>
+ <section id="Runbook-config-cluster-pristorage">
+ <title>Primary Storage</title>
+ <para>With your cluster now setup - you should be prompted for primary storage information. Choose NFS as the storage type and then enter the following values in the fields:
+ <orderedlist>
+ <listitem>
+ <para>Name - We'll use 'Primary1'</para>
+ </listitem>
+ <listitem>
+ <para>Server - We'll be using the IP address <replaceable>172.16.10.</replaceable>2</para>
+ </listitem>
+ <listitem>
+ <para>Path - Well define /primary as the path we are using </para>
+ </listitem>
+ </orderedlist>
+ </para>
+ </section>
+ <section id="Runbook-config-cluster-secstorage">
+ <title>Secondary Storage</title>
+ <para> If this is a new zone, you'll be prompted for secondary storage information - populate it as follows:
+ <orderedlist>
+ <listitem>
+ <para>NFS server - We'll use the IP address <replaceable>172.16.10.</replaceable>2</para>
+ </listitem>
+ <listitem>
+ <para>Path - We'll use /secondary</para>
+ </listitem>
+ </orderedlist>
+ </para>
+ <para> Now, click Launch and your cloud should begin setup - it may take several minutes depending on your internet connection speed for setup to finalize.</para>
+ </section>
+ </section>
+
+
+</chapter>
+
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/676d8744/docs/qig/en-US/kvm.xml
----------------------------------------------------------------------
diff --git a/docs/qig/en-US/kvm.xml b/docs/qig/en-US/kvm.xml
new file mode 100644
index 0000000..91ed9d5
--- /dev/null
+++ b/docs/qig/en-US/kvm.xml
@@ -0,0 +1,142 @@
+<?xml version='1.0' encoding='utf-8' ?>
+<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
+<!ENTITY % BOOK_ENTITIES SYSTEM "qig.ent">
+%BOOK_ENTITIES;
+]>
+
+<!-- Licensed to the Apache Software Foundation (ASF) under one
+ or more contributor license agreements. See the NOTICE file
+ distributed with this work for additional information
+ regarding copyright ownership. The ASF licenses this file
+ to you 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 id="chap-qig-KVM">
+ <title>KVM Setup and installation</title>
+ <para>
+ KVM is the hypervisor we'll be using - we will recover the initial setup
+ which has already been done on the hypervisor host and cover installation
+ of the agent software, you can use the same steps to add additional KVM
+ nodes to your CloudStack environment.
+ </para>
+ <section id="sect-qig-KVM-Prerequisites">
+ <title>Prerequisites</title>
+ <para>
+ We explicitly are using the management server as a compute node as well,
+ which means that we have already performed many of the prerequisite steps
+ when setting up the management server, but we will list them here for
+ clarity. Those steps are:
+ <orderedlist>
+ <listitem>
+ <para>
+ <xref linkend="sect-qig-Environment-operatingsys-network" />
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <xref linkend="sect-qig-Environment-operatingsys-hostname" />
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <xref linkend="sect-qig-Environment-operatingsys-selinux" />
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <xref linkend="sect-qig-Environment-operatingsys-ntp" />
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <xref linkend="sect-qig-Environment-operatingsys-repoconfig" />
+ </para>
+ </listitem>
+ </orderedlist>
+ </para>
+ <para>
+ You shouldn't need to do that for the management server, of course, but
+ any additional hosts will need for you to complete the above steps.
+ </para>
+ </section>
+
+ <section id="sect-qig-KVM-Installation">
+ <title>Installation</title>
+ <para>Installation of the KVM agent is trivial with just a single command, but afterwards we'll need to configure a few things.</para>
+ <screen><prompt># </prompt><userinput><command>yum</command> -y install cloud-agent</userinput></screen>
+ <section id="sect-qig-KVM-Configuration">
+ <title>KVM Configuration</title>
+ <para>We have two different parts of KVM to configure, libvirt, and QEMU.</para>
+ <section id="sect-qig-KVM-Configuration-qemu">
+ <title>QEMU Configuration</title>
+ <para>
+ KVM configuration is relatively simple at only a single item. We need to
+ edit the QEMU VNC configuration. This is done by editing
+ <filename>/etc/libvirt/qemu.conf</filename> and ensuring the following
+ line is present and uncommented.
+ <screen>vnc_listen=0.0.0.0</screen>
+ </para>
+ </section>
+ <section id="sect-qig-KVM-Configuration-libvirt">
+ <title>Libvirt Configuration</title>
+ <para>
+ CloudStack uses libvirt for managing virtual machines. Therefore it
+ is vital that libvirt is configured correctly. Libvirt is a dependency
+ of cloud-agent and should already be installed.
+ </para>
+ <orderedlist>
+ <listitem>
+ <para>In order to have live migration working libvirt has to listen
+ for unsecured TCP connections. We also need to turn off libvirts
+ attempt to use Multicast DNS advertising. Both of these settings
+ are in <filename>/etc/libvirt/libvirtd.conf</filename>
+ </para>
+ <para>Set the following paramaters:</para>
+ <programlisting>listen_tls = 0</programlisting>
+ <programlisting>listen_tcp = 1</programlisting>
+ <programlisting>tcp_port = "16059"</programlisting>
+ <programlisting>auth_tcp = "none"</programlisting>
+ <programlisting>mdns_adv = 0</programlisting>
+ </listitem>
+ <listitem>
+ <para>Turning on "listen_tcp" in libvirtd.conf is not enough, we have to change the parameters as well:</para>
+ <para>On RHEL or CentOS modify <filename>/etc/sysconfig/libvirtd</filename>:</para>
+ <para>Uncomment the following line:</para>
+ <programlisting>#LIBVIRTD_ARGS="--listen"</programlisting>
+ <para>On Ubuntu: modify <filename>/etc/init/libvirt-bin.conf</filename></para>
+ <para>Change the following line (at the end of the file):</para>
+ <programlisting>exec /usr/sbin/libvirtd -d</programlisting>
+ <para>to (just add -l)</para>
+ <programlisting>exec /usr/sbin/libvirtd -d -l</programlisting>
+ </listitem>
+ <listitem>
+ <para>Restart libvirt</para>
+ <para>In RHEL or CentOS:</para>
+ <programlisting><command>$ service libvirtd restart</command></programlisting>
+ <para>In Ubuntu:</para>
+ <programlisting><command>$ service libvirt-bin restart</command></programlisting>
+ </listitem>
+ </orderedlist>
+ </section>
+ <section id="sect-qig-KVM-Configuration-finish">
+ <title>KVM configuration complete</title>
+ <para>
+ That concludes our installation and configuration of KVM, and we'll now move to using the CloudStack UI
+ for the actual configuration of our cloud.
+ </para>
+ </section>
+ </section>
+ </section>
+</chapter>
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/676d8744/docs/qig/en-US/qig.ent
----------------------------------------------------------------------
diff --git a/docs/qig/en-US/qig.ent b/docs/qig/en-US/qig.ent
new file mode 100644
index 0000000..3b1649a
--- /dev/null
+++ b/docs/qig/en-US/qig.ent
@@ -0,0 +1,22 @@
+<!-- Licensed to the Apache Software Foundation (ASF) under one
+ or more contributor license agreements. See the NOTICE file
+ distributed with this work for additional information
+ regarding copyright ownership. The ASF licenses this file
+ to you 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.
+-->
+
+<!ENTITY PRODUCT "Apache CloudStack">
+<!ENTITY BOOKID "Quick Install Guide">
+<!ENTITY YEAR "2013">
+<!ENTITY HOLDER "Apache Software Foundation">
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/676d8744/docs/qig/en-US/qig.xml
----------------------------------------------------------------------
diff --git a/docs/qig/en-US/qig.xml b/docs/qig/en-US/qig.xml
new file mode 100644
index 0000000..00dd2e4
--- /dev/null
+++ b/docs/qig/en-US/qig.xml
@@ -0,0 +1,36 @@
+<?xml version='1.0' encoding='utf-8' ?>
+<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
+<!ENTITY % BOOK_ENTITIES SYSTEM "Runbook.ent">
+%BOOK_ENTITIES;
+]>
+
+<!-- Licensed to the Apache Software Foundation (ASF) under one
+ or more contributor license agreements. See the NOTICE file
+ distributed with this work for additional information
+ regarding copyright ownership. The ASF licenses this file
+ to you under the Apache License, Version 2.0 (the
+ "License"); you may not use this file except in compliance
+ with the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing,
+ software distributed under the License is distributed on an
+ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ KIND, either express or implied. See the License for the
+ specific language governing permissions and limitations
+ under the License.
+-->
+
+
+<book>
+ <xi:include href="Book_Info.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
+ <xi:include href="Preface.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
+ <xi:include href="Overview.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
+ <xi:include href="Environment.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
+ <xi:include href="Management.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
+ <xi:include href="kvm.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
+ <xi:include href="config.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
+ <xi:include href="Revision_History.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
+<!-- <index /> -->
+</book>