first pass at fixing runbook for ACS4.0.x

This commit is contained in:
David Nalley 2013-01-29 00:17:06 -05:00
parent afd7de7e33
commit 32c519a8ae
7 changed files with 127 additions and 79 deletions

View File

@ -27,7 +27,7 @@
<title>Runbook</title>
<subtitle>Prescriptive instructions for deploying Apache CloudStack</subtitle>
<productname>Apache CloudStack</productname>
<productnumber>3.0.2</productnumber>
<productnumber>4.0.1</productnumber>
<edition>0</edition>
<pubsnumber>0</pubsnumber>
<abstract>

View File

@ -32,7 +32,7 @@
<section id="sect-Runbook-Environment-operatingsys">
<title>Operating System</title>
<para>
Using the CentOS 6.2 x86_64 minimal install ISO, you'll need to install CentOS
Using the CentOS 6.3 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>
@ -163,6 +163,30 @@ SELINUXTYPE=targeted
<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-Runbook-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.0/
enabled=1
gpgcheck=0
</programlisting>
</section>
</section>
<section id="sect-Runbook-Environment-nfs">
<title>NFS</title>
@ -224,12 +248,10 @@ STATD_OUTGOING_PORT=2020
<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>
<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>

View File

@ -54,45 +54,26 @@ binlog-format = 'ROW'
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>
<prompt># </prompt><userinput><command>service</command> mysqld start</userinput>
<prompt># </prompt><userinput><command>chkconfig</command> mysqld on</userinput>
</screen>
</para>
</section>
<section id="sect-Runbook-Management-extraction">
<title>Extraction</title>
<para>
The next step is to extract the contents of the CloudStack tarball
(mentioned in <xref linkend="sect-Runbook-Overview-prereqs" />) you
downloaded previously. To extract the contents of this tarball use
the following command:
</para>
<screen>
<prompt># </prompt><userinput><command>tar</command> -xzvf CloudStack-oss-3.0.2-1-rhel6.2.tar.gz</userinput>
</screen>
<para> For the next few sections you'll need to <command>cd</command> into the first level that was just created.
</para>
</section>
<section id="sect-Runbook-Management-installation">
<title>Installation</title>
<para>Now that you are in the directory created by extracting the tarball, it's now time to install. We'll run
<filename>./install.sh</filename> and choose option <option>M</option>. This will install the management server
and necessary dependencies.
<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>cloud-setup-databases</command> cloud:<replaceable>password</replaceable>@localhost --deploy-as=root</userinput>
</screen>
<screen><prompt># </prompt><userinput><command>cloud-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>cloud-setup-mangament</command></userinput>
</screen>
<screen><prompt># </prompt><userinput><command>cloud-setup-mangament</command></userinput></screen>
</section>
<section id="sect-Runbook-Management-templatesetup">
<title>System Template Setup</title>
@ -107,16 +88,14 @@ binlog-format = 'ROW'
storage share that we setup earlier, so we'll need to mount that share
with the <command>mount</command> command run on the management server:
</para>
<screen>
<prompt># </prompt><userinput><command>mount</command> -t nfs <replaceable>172.16.10.</replaceable>2:/secondary /mnt/secondary</userinput>
<screen><prompt># </prompt><userinput><command>mount</command> -t nfs <replaceable>172.16.10.</replaceable>2:/secondary /mnt/secondary</userinput>
</screen>
<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/lib64/cloud/agent/scripts/storage/secondary/cloud-install-sys-tmplt</command> -m /mnt/secondary -u http://download.cloud.com/templates/acton/acton-systemvm-02062012.qcow2.bz2 -h kvm -F</userinput>
<screen><prompt># </prompt><userinput><command>/usr/lib64/cloud/common/scripts/storage/secondary/cloud-install-sys-tmplt -m /mnt/secondary</command> -m /mnt/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

View File

@ -36,7 +36,7 @@
<title>What exactly are we building?</title>
<para>
This runbook will focus on building a CloudStack cloud using KVM with
CentOS 6.2 with NFS storage on a flat layer-2 network utilizing
CentOS 6.3 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>
@ -74,23 +74,16 @@
<listitem>
<para>
The
<ulink url="http://mirrors.kernel.org/centos/6.2/isos/x86_64/CentOS-6.2-x86_64-minimal.iso">
CentOS 6.2 x86_64 minimal install CD
<ulink url="http://mirrors.kernel.org/centos/6.3/isos/x86_64/CentOS-6.3-x86_64-minimal.iso">
CentOS 6.3 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 may have a dynamic address.
</para>
</listitem>
<listitem>
<para>
Copy of
<ulink url="http://sourceforge.net/projects/cloudstack/files/CloudStack%20Acton/3.0.2/CloudStack-oss-3.0.2-1-rhel6.2.tar.gz/download">
CloudStack 3.0.2 for RHEL and CentOS 6.2
</ulink>
none of the computers running CloudStack will have a dynamic address. Again this is done for
the sake of simplicity.
</para>
</listitem>
</orderedlist>

View File

@ -27,6 +27,15 @@
<title>Revision History</title>
<simpara>
<revhistory>
<revision>
<revnumber>1</revnumber>
<date>Fri Feb 1 2013</date>
<revdescription>
<simplelist>
<member>Updating for Apache CloudStack 4.0.1</member>
</simplelist>
</revdescription>
</revision>
<revision>
<revnumber>0-0</revnumber>
<date>Mon Jun 25 2012</date>

View File

@ -142,7 +142,7 @@
</para>
<section id="Runbook-config-cluster-pristorage">
<title>Primary Storage</title>
<para>With you 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:
<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>

View File

@ -59,6 +59,11 @@
<xref linkend="sect-Runbook-Environment-operatingsys-ntp" />
</para>
</listitem>
<listitem>
<para>
<xref linkend="sect-Runbook-Environment-operatingsys-repoconfig" />
</para>
</listitem>
</orderedlist>
</para>
<para>
@ -66,37 +71,77 @@
any additional hosts will need for you to complete the above steps.
</para>
</section>
<section id="sect-Runbook-KVM-Installation">
<title>Installation</title>
<para>
You'll need to ensure that you are in the directory that was created when
we extracted the the tarball.
<xref linkend="sect-Runbook-Management-extraction" />
</para>
<para>
You'll be running <filename>./install.sh</filename> again and this time
choosing <option>A</option> which will install the software necessary for
managing a KVM node.
</para>
</section>
<section id="sect-Runbook-KVM-Configuration">
<title>KVM 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>
<para>
You can now just restart the libvirt daemon by issuing the following command:
<screen><prompt># </prompt><userinput><command>service</command> libvirt restart</userinput></screen>
</para>
<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>
<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-Runbook-KVM-Configuration">
<title>KVM Configuration</title>
<para>We have two different parts of KVM to configure, libvirt, and QEMU.</para>
<section id="sect-Runbook-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>
<para>
You can now just restart the libvirt daemon by issuing the following command:
<screen><prompt># </prompt><userinput><command>service</command> libvirt restart</userinput></screen>
</para>
</section>
<section id="sect-Runbook-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-Runbook-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>