mirror of https://github.com/apache/cloudstack.git
ACS4.1_Quick_install_guide
This commit is contained in:
parent
bd784fb8ec
commit
676d8744ef
|
|
@ -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>
|
||||
|
||||
|
|
@ -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>
|
||||
|
||||
|
|
@ -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>
|
||||
|
||||
|
|
@ -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>
|
||||
|
|
@ -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>
|
||||
|
|
@ -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>
|
||||
|
|
@ -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>
|
||||
|
||||
|
|
@ -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>
|
||||
|
||||
|
|
@ -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>
|
||||
|
||||
|
|
@ -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>
|
||||
|
|
@ -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">
|
||||
|
|
@ -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>
|
||||
Loading…
Reference in New Issue