cloudstack-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From radh...@apache.org
Subject [1/2] CLOUDSTACK-4245 upgrade section in the release notes
Date Tue, 20 Aug 2013 08:16:36 GMT
Updated Branches:
  refs/heads/master 1108aa7d4 -> da4d306da


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/da4d306d/docs/en-US/Release_Notes.xml
----------------------------------------------------------------------
diff --git a/docs/en-US/Release_Notes.xml b/docs/en-US/Release_Notes.xml
index f1a159c..8534b08 100644
--- a/docs/en-US/Release_Notes.xml
+++ b/docs/en-US/Release_Notes.xml
@@ -530,6 +530,1513 @@ under the License.
       </informaltable>
     </section>
   </chapter>
+  <chapter id="upgrade-instructions">
+    <title>Upgrade Instructions</title>
+    <para>This section contains upgrade instructions from prior versions of CloudStack to Apache
+      CloudStack 4.2.0. We include instructions on upgrading to Apache CloudStack from pre-Apache
+      versions of Citrix CloudStack (last version prior to Apache is 3.0.2) and from the releases
+      made while CloudStack was in the Apache Incubator.</para>
+    <para>If you run into any issues during upgrades, please feel free to ask questions on
+      users@cloudstack.apache.org or dev@cloudstack.apache.org.</para>
+    <section id="upgrade-from-4.0-to-4.1">
+      <title>Upgrade from 4.x.x to 4.2.0</title>
+      <para>This section will guide you from &PRODUCT; 4.0.x versions to &PRODUCT; 4.2.0.</para>
+      <para>Any steps that are hypervisor-specific will be called out with a note.</para>
+      <warning>
+        <title>Package Structure Changes</title>
+        <para>The package structure for &PRODUCT; has changed significantly since the 4.0.x
+          releases. If you've compiled your own packages, you'll notice that the package names and
+          the number of packages has changed. This is <emphasis>not</emphasis> a bug.</para>
+        <para>However, this does mean that the procedure is not as simple as an <command>apt-get
+            upgrade</command> or <command>yum update</command>, so please follow this section
+          carefully.</para>
+      </warning>
+      <para>We recommend reading through this section once or twice before beginning your upgrade
+        procedure, and working through it on a test system before working on a production
+        system.</para>
+      <orderedlist>
+        <listitem>
+          <para>Most users of &PRODUCT; manage the installation and upgrades of &PRODUCT; with one
+            of Linux's predominant package systems, RPM or APT. This guide assumes you'll be using
+            RPM and Yum (for Red Hat Enterprise Linux or CentOS), or APT and Debian packages (for
+            Ubuntu).</para>
+          <para>Create RPM or Debian packages (as appropriate) and a repository from the 4.2.0
+            source, or check the Apache CloudStack downloads page at <ulink
+              url="http://cloudstack.apache.org/downloads.html"
+              >http://cloudstack.apache.org/downloads.html</ulink> for package repositories supplied
+            by community members. You will need them for step <xref linkend="upgrade-deb-packages"/>
+            or step <xref linkend="upgrade-rpm-packages"/>.</para>
+          <para>Instructions for creating packages from the &PRODUCT; source are in the <ulink
+              url="http://cloudstack.apache.org/docs/en-US/index.html">Installation
+            Guide</ulink>.</para>
+        </listitem>
+        <listitem>
+          <para>Stop your management server or servers. Run this on all management server
+            hosts:</para>
+          <programlisting><prompt>#</prompt> service cloud-management stop</programlisting>
+        </listitem>
+        <listitem>
+          <para>If you are running a usage server or usage servers, stop those as well:</para>
+          <programlisting><prompt>#</prompt> service cloud-usage stop</programlisting>
+        </listitem>
+        <listitem>
+          <para>Make a backup of your MySQL database. If you run into any issues or need to roll
+            back the upgrade, this will assist in debugging or restoring your existing environment.
+            You'll be prompted for your password.</para>
+          <programlisting><prompt>#</prompt> mysqldump -u root -p cloud &gt; cloudstack-backup.sql</programlisting>
+        </listitem>
+        <listitem>
+          <para>If you have made changes to
+              <filename>/etc/cloud/management/components.xml</filename>, you'll need to carry these
+            over manually to the new file,
+              <filename>/etc/cloudstack/management/componentContext.xml</filename>. This is not done
+            automatically. (If you're unsure, we recommend making a backup of the original
+              <filename>components.xml</filename> to be on the safe side.</para>
+        </listitem>
+        <listitem>
+          <para>After upgrading to 4.2, API clients are expected to send plain text passwords for
+            login and user creation, instead of MD5 hash. If API client changes are not acceptable,
+            following changes are to be made for backward compatibility:</para>
+          <para>Modify componentsContext.xml, and make PlainTextUserAuthenticator as the default
+            authenticator (1st entry in the userAuthenticators adapter list is default)</para>
+          <programlisting language="XML">
+&lt;!-- Security adapters --&gt;
+&lt;bean id="userAuthenticators" class="com.cloud.utils.component.AdapterList"&gt;
+  &lt;property name="Adapters"&gt;
+    &lt;list&gt;
+      &lt;ref bean="PlainTextUserAuthenticator"/&gt;
+      &lt;ref bean="MD5UserAuthenticator"/&gt;
+      &lt;ref bean="LDAPUserAuthenticator"/&gt;
+    &lt;/list&gt;
+  &lt;/property&gt;
+&lt;/bean&gt;
+            </programlisting>
+          <para>PlainTextUserAuthenticator works the same way MD5UserAuthenticator worked prior to
+            4.2.</para>
+        </listitem>
+        <listitem id="upgrade-deb-packages">
+          <para>If you are using Ubuntu, follow this procedure to upgrade your packages. If not,
+            skip to step <xref linkend="upgrade-rpm-packages"/>.</para>
+          <note>
+            <title>Community Packages</title>
+            <para>This section assumes you're using the community supplied packages for &PRODUCT;.
+              If you've created your own packages and APT repository, substitute your own URL for
+              the ones used in these examples.</para>
+          </note>
+          <orderedlist id="debsteps">
+            <listitem>
+              <para>The first order of business will be to change the sources list for each system
+                with &PRODUCT; packages. This means all management servers, and any hosts that have
+                the KVM agent. (No changes should be necessary for hosts that are running VMware or
+                Xen.)</para>
+              <para>Start by opening <filename>/etc/apt/sources.list.d/cloudstack.list</filename> on
+                any systems that have &PRODUCT; packages installed.</para>
+              <para>This file should have one line, which contains:</para>
+              <programlisting language="Bash">deb http://cloudstack.apt-get.eu/ubuntu precise 4.0</programlisting>
+              <para>We'll change it to point to the new package repository:</para>
+              <programlisting language="Bash">deb http://cloudstack.apt-get.eu/ubuntu precise 4.2</programlisting>
+              <para>If you're using your own package repository, change this line to read as
+                appropriate for your 4.2.0 repository.</para>
+            </listitem>
+            <listitem>
+              <para>Now update your apt package list:</para>
+              <programlisting language="Bash">$ sudo apt-get update</programlisting>
+            </listitem>
+            <listitem id="deb-master">
+              <para>Now that you have the repository configured, it's time to install the
+                  <filename>cloudstack-management</filename> package. This will pull in any other
+                dependencies you need.</para>
+              <programlisting language="Bash">$ sudo apt-get install cloudstack-management</programlisting>
+            </listitem>
+            <listitem id="kvm-agent-deb">
+              <para>You will need to manually install the <filename>cloudstack-agent</filename>
+                package:</para>
+              <programlisting language="Bash">$ sudo apt-get install cloudstack-agent</programlisting>
+              <para>During the installation of <filename>cloudstack-agent</filename>, APT will copy
+                your <filename>agent.properties</filename>, <filename>log4j-cloud.xml</filename>,
+                and <filename>environment.properties</filename> from
+                  <filename>/etc/cloud/agent</filename> to
+                  <filename>/etc/cloudstack/agent</filename>.</para>
+              <para>When prompted whether you wish to keep your configuration, say Yes.</para>
+            </listitem>
+            <listitem>
+              <para>Verify that the file
+                  <filename>/etc/cloudstack/agent/environment.properties</filename> has a line that
+                reads:</para>
+              <programlisting language="Bash">paths.script=/usr/share/cloudstack-common</programlisting>
+              <para>If not, add the line.</para>
+            </listitem>
+            <listitem>
+              <para>Restart the agent:</para>
+              <programlisting language="Bash">
+service cloud-agent stop
+killall jsvc
+service cloudstack-agent start
+                            </programlisting>
+            </listitem>
+            <listitem>
+              <para>During the upgrade, <filename>log4j-cloud.xml</filename> was simply copied over,
+                so the logs will continue to be added to
+                  <filename>/var/log/cloud/agent/agent.log</filename>. There's nothing
+                  <emphasis>wrong</emphasis> with this, but if you prefer to be consistent, you can
+                change this by copying over the sample configuration file:</para>
+              <programlisting language="Bash">
+cd /etc/cloudstack/agent
+mv log4j-cloud.xml.dpkg-dist log4j-cloud.xml
+service cloudstack-agent restart
+                            </programlisting>
+            </listitem>
+            <listitem>
+              <para>Once the agent is running, you can uninstall the old cloud-* packages from your
+                system:</para>
+              <programlisting language="Bash">sudo dpkg --purge cloud-agent</programlisting>
+            </listitem>
+          </orderedlist>
+        </listitem>
+        <listitem id="upgrade-rpm-packages">
+          <para>If you are using CentOS or RHEL, follow this procedure to upgrade your packages. If
+            not, skip to step <xref linkend="restart-system-vms"/>.</para>
+          <note>
+            <title>Community Packages</title>
+            <para>This section assumes you're using the community supplied packages for &PRODUCT;.
+              If you've created your own packages and yum repository, substitute your own URL for
+              the ones used in these examples.</para>
+          </note>
+          <orderedlist id="rpmsteps">
+            <listitem>
+              <para>The first order of business will be to change the yum repository for each system
+                with &PRODUCT; packages. This means all management servers, and any hosts that have
+                the KVM agent. </para>
+              <para>(No changes should be necessary for hosts that are running VMware or
+                Xen.)</para>
+              <para>Start by opening <filename>/etc/yum.repos.d/cloudstack.repo</filename> on any
+                systems that have &PRODUCT; packages installed.</para>
+              <para>This file should have content similar to the following:</para>
+              <programlisting language="Bash">
+[apache-cloudstack]
+name=Apache CloudStack
+baseurl=http://cloudstack.apt-get.eu/rhel/4.0/
+enabled=1
+gpgcheck=0
+                            </programlisting>
+              <para>If you are using the community provided package repository, change the base url
+                to http://cloudstack.apt-get.eu/rhel/4.2/</para>
+              <para>If you're using your own package repository, change this line to read as
+                appropriate for your 4.2.0 repository.</para>
+            </listitem>
+            <listitem id="rpm-master">
+              <para>Now that you have the repository configured, it's time to install the
+                  <filename>cloudstack-management</filename> package by upgrading the older
+                  <filename>cloud-client</filename> package.</para>
+              <programlisting language="Bash">$ sudo yum upgrade cloud-client</programlisting>
+            </listitem>
+            <listitem id="kvm-agent-rpm">
+              <para>For KVM hosts, you will need to upgrade the <filename>cloud-agent</filename>
+                package, similarly installing the new version as
+                  <filename>cloudstack-agent</filename>.</para>
+              <programlisting language="Bash">$ sudo yum upgrade cloud-agent</programlisting>
+              <para>During the installation of <filename>cloudstack-agent</filename>, the RPM will
+                copy your <filename>agent.properties</filename>,
+                  <filename>log4j-cloud.xml</filename>, and
+                  <filename>environment.properties</filename> from
+                  <filename>/etc/cloud/agent</filename> to
+                  <filename>/etc/cloudstack/agent</filename>.</para>
+            </listitem>
+            <listitem>
+              <para>For CentOS 5.5, perform the following:</para>
+              <orderedlist>
+                <listitem>
+                  <para>Run the following command:</para>
+                  <programlisting>rpm -Uvh http://download.cloud.com/support/jsvc/jakarta-commons-daemon-jsvc-1.0.1-8.9.el6.x86_64.rpm</programlisting>
+                </listitem>
+                <listitem>
+                  <para>Upgrade the Usage server.</para>
+                  <programlisting>sudo yum upgrade cloud-usage</programlisting>
+                </listitem>
+              </orderedlist>
+            </listitem>
+            <listitem>
+              <para>Verify that the file
+                  <filename>/etc/cloudstack/agent/environment.properties</filename> has a line that
+                reads:</para>
+              <programlisting language="Bash">paths.script=/usr/share/cloudstack-common</programlisting>
+              <para>If not, add the line.</para>
+            </listitem>
+            <listitem>
+              <para>Restart the agent:</para>
+              <programlisting language="Bash">
+service cloud-agent stop
+killall jsvc
+service cloudstack-agent start
+                            </programlisting>
+            </listitem>
+          </orderedlist>
+        </listitem>
+        <listitem id="restart-system-vms">
+          <para>Once you've upgraded the packages on your management servers, you'll need to restart
+            the system VMs. Make sure port 8096 is open in your local host firewall to do
+            this.</para>
+          <para>There is a script that will do this for you, all you need to do is run the script
+            and supply the IP address for your MySQL instance and your MySQL credentials:</para>
+          <programlisting language="Bash"><prompt>#</prompt> nohup cloudstack-sysvmadm -d <replaceable>IP address</replaceable> -u cloud -p -a &gt; sysvm.log 2&gt;&amp;1 &amp;</programlisting>
+          <para>You can monitor the log for progress. The process of restarting the system VMs can
+            take an hour or more.</para>
+          <programlisting language="Bash"><prompt>#</prompt> tail -f sysvm.log</programlisting>
+          <para>The output to <filename>sysvm.log</filename> will look something like this:</para>
+          <programlisting language="Bash">
+Stopping and starting 1 secondary storage vm(s)...
+Done stopping and starting secondary storage vm(s)
+Stopping and starting 1 console proxy vm(s)...
+Done stopping and starting console proxy vm(s).
+Stopping and starting 4 running routing vm(s)...
+Done restarting router(s).
+                    </programlisting>
+        </listitem>
+        <listitem>
+          <note>
+            <title>For Xen Hosts: Copy vhd-utils</title>
+            <para>This step is only for CloudStack installs that are using Xen hosts.</para>
+          </note>
+          <para>Copy the file <filename>vhd-utils</filename> to
+              <filename>/usr/share/cloudstack-common/scripts/vm/hypervisor/xenserver</filename>.</para>
+        </listitem>
+      </orderedlist>
+    </section>
+    <section id="upgrade-from-3.0.2-to-4.0">
+      <title>Upgrade from 3.0.2 to 4.2.0</title>
+      <para>This section will guide you from Citrix CloudStack 3.0.2 to Apache CloudStack 4.2.0.
+        Sections that are hypervisor-specific will be called out with a note.</para>
+      <orderedlist>
+        <listitem>
+          <note>
+            <para>The following upgrade instructions apply only if you're using VMware hosts. If
+              you're not using VMware hosts, skip this step and move on to <xref
+                linkend="stopping-usage-servers"/>.</para>
+          </note>
+          <para>In each zone that includes VMware hosts, you need to add a new system VM template. </para>
+          <orderedlist numeration="loweralpha">
+            <listitem>
+              <para>While running the existing 3.0.2 system, log in to the UI as root
+                administrator.</para>
+            </listitem>
+            <listitem>
+              <para>In the left navigation bar, click Templates.</para>
+            </listitem>
+            <listitem>
+              <para>In Select view, click Templates.</para>
+            </listitem>
+            <listitem>
+              <para>Click Register template.</para>
+              <para>The Register template dialog box is displayed.</para>
+            </listitem>
+            <listitem>
+              <para>In the Register template dialog box, specify the following values (do not change
+                these):</para>
+              <informaltable>
+                <tgroup cols="2" align="left" colsep="1" rowsep="1">
+                  <colspec colwidth="1*" colname="1" colnum="1"/>
+                  <colspec colwidth="2*" colname="2" colnum="2"/>
+                  <thead>
+                    <row>
+                      <entry><para>Field</para></entry>
+                      <entry><para>Value</para></entry>
+                    </row>
+                  </thead>
+                  <tbody>
+                    <row>
+                      <entry><para>Name</para></entry>
+                      <entry><para>systemvm-vmware-4.2</para></entry>
+                    </row>
+                    <row>
+                      <entry><para>Description</para></entry>
+                      <entry><para>systemvm-vmware-4.2</para></entry>
+                    </row>
+                    <row>
+                      <entry><para>URL</para></entry>
+                      <entry><para>http://download.cloud.com/templates/burbank/burbank-systemvm-08012012.ova</para></entry>
+                    </row>
+                    <row>
+                      <entry><para>Zone</para></entry>
+                      <entry><para>Choose the zone where this hypervisor is used</para></entry>
+                    </row>
+                    <row>
+                      <entry><para>Hypervisor</para></entry>
+                      <entry><para>VMware</para></entry>
+                    </row>
+                    <row>
+                      <entry><para>Format</para></entry>
+                      <entry><para>OVA</para></entry>
+                    </row>
+                    <row>
+                      <entry><para>OS Type</para></entry>
+                      <entry><para>Debian GNU/Linux 5.0 (32-bit)</para></entry>
+                    </row>
+                    <row>
+                      <entry><para>Extractable</para></entry>
+                      <entry><para>no</para></entry>
+                    </row>
+                    <row>
+                      <entry><para>Password Enabled</para></entry>
+                      <entry><para>no</para></entry>
+                    </row>
+                    <row>
+                      <entry><para>Public</para></entry>
+                      <entry><para>no</para></entry>
+                    </row>
+                    <row>
+                      <entry><para>Featured</para></entry>
+                      <entry><para>no</para></entry>
+                    </row>
+                  </tbody>
+                </tgroup>
+              </informaltable>
+            </listitem>
+            <listitem>
+              <para>Watch the screen to be sure that the template downloads successfully and enters
+                the READY state. Do not proceed until this is successful.</para>
+            </listitem>
+          </orderedlist>
+        </listitem>
+        <listitem id="stopping-usage-servers">
+          <para>Stop all Usage Servers if running. Run this on all Usage Server hosts.</para>
+          <programlisting language="Bash"><prompt>#</prompt> service cloud-usage stop</programlisting>
+        </listitem>
+        <listitem>
+          <para>Stop the Management Servers. Run this on all Management Server hosts.</para>
+          <programlisting language="Bash"><prompt>#</prompt> service cloud-management stop</programlisting>
+        </listitem>
+        <listitem>
+          <para>On the MySQL master, take a backup of the MySQL databases. We recommend performing
+            this step even in test upgrades. If there is an issue, this will assist with
+            debugging.</para>
+          <para>In the following commands, it is assumed that you have set the root password on the
+            database, which is a CloudStack recommended best practice. Substitute your own MySQL
+            root password.</para>
+          <programlisting><prompt>#</prompt> <command>mysqldump</command> -u root -p<replaceable>mysql_password</replaceable> cloud > <filename>cloud-backup.dmp</filename>
+                        <prompt>#</prompt> <command>mysqldump</command> -u root -p<replaceable>mysql_password</replaceable> cloud_usage > <filename>cloud-usage-backup.dmp</filename></programlisting>
+        </listitem>
+        <listitem>
+          <para>Either build RPM/DEB packages as detailed in the Installation Guide, or use one of
+            the community provided yum/apt repositories to gain access to the &PRODUCT;
+            binaries.</para>
+        </listitem>
+        <listitem id="upgrade-deb-packages-302">
+          <para>If you are using Ubuntu, follow this procedure to upgrade your packages. If not,
+            skip to step <xref linkend="upgrade-rpm-packages-302"/>.</para>
+          <note>
+            <title>Community Packages</title>
+            <para>This section assumes you're using the community supplied packages for &PRODUCT;.
+              If you've created your own packages and APT repository, substitute your own URL for
+              the ones used in these examples.</para>
+          </note>
+          <orderedlist id="debsteps-302">
+            <listitem>
+              <para>The first order of business will be to change the sources list for each system
+                with &PRODUCT; packages. This means all management servers, and any hosts that have
+                the KVM agent. (No changes should be necessary for hosts that are running VMware or
+                Xen.)</para>
+              <para>Start by opening <filename>/etc/apt/sources.list.d/cloudstack.list</filename> on
+                any systems that have &PRODUCT; packages installed.</para>
+              <para>This file should have one line, which contains:</para>
+              <programlisting language="Bash">deb http://cloudstack.apt-get.eu/ubuntu precise 4.0</programlisting>
+              <para>We'll change it to point to the new package repository:</para>
+              <programlisting language="Bash">deb http://cloudstack.apt-get.eu/ubuntu precise 4.2</programlisting>
+              <para>If you're using your own package repository, change this line to read as
+                appropriate for your 4.2.0 repository.</para>
+            </listitem>
+            <listitem>
+              <para>Now update your apt package list:</para>
+              <programlisting language="Bash">$ sudo apt-get update</programlisting>
+            </listitem>
+            <listitem id="deb-master-302">
+              <para>Now that you have the repository configured, it's time to install the
+                  <filename>cloudstack-management</filename> package. This will pull in any other
+                dependencies you need.</para>
+              <programlisting language="Bash">$ sudo apt-get install cloudstack-management</programlisting>
+            </listitem>
+            <listitem id="kvm-agent-deb-302">
+              <para>You will need to manually install the <filename>cloudstack-agent</filename>
+                package:</para>
+              <programlisting language="Bash">$ sudo apt-get install cloudstack-agent</programlisting>
+              <para>During the installation of <filename>cloudstack-agent</filename>, APT will copy
+                your <filename>agent.properties</filename>, <filename>log4j-cloud.xml</filename>,
+                and <filename>environment.properties</filename> from
+                  <filename>/etc/cloud/agent</filename> to
+                  <filename>/etc/cloudstack/agent</filename>.</para>
+              <para>When prompted whether you wish to keep your configuration, say Yes.</para>
+            </listitem>
+            <listitem>
+              <para>Verify that the file
+                  <filename>/etc/cloudstack/agent/environment.properties</filename> has a line that
+                reads:</para>
+              <programlisting language="Bash">paths.script=/usr/share/cloudstack-common</programlisting>
+              <para>If not, add the line.</para>
+            </listitem>
+            <listitem>
+              <para>Restart the agent:</para>
+              <programlisting language="Bash">
+service cloud-agent stop
+killall jsvc
+service cloudstack-agent start
+                            </programlisting>
+            </listitem>
+            <listitem>
+              <para>During the upgrade, <filename>log4j-cloud.xml</filename> was simply copied over,
+                so the logs will continue to be added to
+                  <filename>/var/log/cloud/agent/agent.log</filename>. There's nothing
+                  <emphasis>wrong</emphasis> with this, but if you prefer to be consistent, you can
+                change this by copying over the sample configuration file:</para>
+              <programlisting language="Bash">
+cd /etc/cloudstack/agent
+mv log4j-cloud.xml.dpkg-dist log4j-cloud.xml
+service cloudstack-agent restart
+                            </programlisting>
+            </listitem>
+            <listitem>
+              <para>Once the agent is running, you can uninstall the old cloud-* packages from your
+                system:</para>
+              <programlisting language="Bash">sudo dpkg --purge cloud-agent</programlisting>
+            </listitem>
+          </orderedlist>
+        </listitem>
+        <listitem id="upgrade-rpm-packages-302">
+          <para>If you are using CentOS or RHEL, follow this procedure to upgrade your packages. If
+            not, skip to step <xref linkend="correct-components-xml-302"/>.</para>
+          <note>
+            <title>Community Packages</title>
+            <para>This section assumes you're using the community supplied packages for &PRODUCT;.
+              If you've created your own packages and yum repository, substitute your own URL for
+              the ones used in these examples.</para>
+          </note>
+          <orderedlist id="rpmsteps-302">
+            <listitem>
+              <para>The first order of business will be to change the yum repository for each system
+                with &PRODUCT; packages. This means all management servers, and any hosts that have
+                the KVM agent. (No changes should be necessary for hosts that are running VMware or
+                Xen.)</para>
+              <para>Start by opening <filename>/etc/yum.repos.d/cloudstack.repo</filename> on any
+                systems that have &PRODUCT; packages installed.</para>
+              <para>This file should have content similar to the following:</para>
+              <programlisting language="Bash">
+[apache-cloudstack]
+name=Apache CloudStack
+baseurl=http://cloudstack.apt-get.eu/rhel/4.0/
+enabled=1
+gpgcheck=0
+                            </programlisting>
+              <para>If you are using the community provided package repository, change the baseurl
+                to http://cloudstack.apt-get.eu/rhel/4.2/</para>
+              <para>If you're using your own package repository, change this line to read as
+                appropriate for your 4.2.0 repository.</para>
+            </listitem>
+            <listitem id="rpm-master-302">
+              <para>Now that you have the repository configured, it's time to install the
+                  <filename>cloudstack-management</filename> package by upgrading the older
+                  <filename>cloud-client</filename> package.</para>
+              <programlisting language="Bash">$ sudo yum upgrade cloud-client</programlisting>
+            </listitem>
+            <listitem id="kvm-agent-rpm-302">
+              <para>For KVM hosts, you will need to upgrade the <filename>cloud-agent</filename>
+                package, similarly installing the new version as
+                  <filename>cloudstack-agent</filename>.</para>
+              <programlisting language="Bash">$ sudo yum upgrade cloud-agent</programlisting>
+              <para>During the installation of <filename>cloudstack-agent</filename>, the RPM will
+                copy your <filename>agent.properties</filename>,
+                  <filename>log4j-cloud.xml</filename>, and
+                  <filename>environment.properties</filename> from
+                  <filename>/etc/cloud/agent</filename> to
+                  <filename>/etc/cloudstack/agent</filename>.</para>
+            </listitem>
+            <listitem>
+              <para>Verify that the file
+                  <filename>/etc/cloudstack/agent/environment.properties</filename> has a line that
+                reads:</para>
+              <programlisting language="Bash">paths.script=/usr/share/cloudstack-common</programlisting>
+              <para>If not, add the line.</para>
+            </listitem>
+            <listitem>
+              <para>Restart the agent:</para>
+              <programlisting language="Bash">
+service cloud-agent stop
+killall jsvc
+service cloudstack-agent start
+                            </programlisting>
+            </listitem>
+          </orderedlist>
+        </listitem>
+        <listitem id="correct-components-xml-302">
+          <para>If you have made changes to your copy of
+              <filename>/etc/cloud/management/components.xml</filename> the changes will be
+            preserved in the upgrade. However, you need to do the following steps to place these
+            changes in a new version of the file which is compatible with version 4.2.0.</para>
+          <orderedlist numeration="loweralpha">
+            <listitem>
+              <para>Make a backup copy of <filename>/etc/cloud/management/components.xml</filename>.
+                For example:</para>
+              <programlisting># mv /etc/cloud/management/components.xml /etc/cloud/management/components.xml-backup</programlisting>
+            </listitem>
+            <listitem>
+              <para>Copy <filename>/etc/cloud/management/components.xml.rpmnew</filename> to create
+                a new <filename>/etc/cloud/management/components.xml</filename>:</para>
+              <programlisting># cp -ap /etc/cloud/management/components.xml.rpmnew /etc/cloud/management/components.xml</programlisting>
+            </listitem>
+            <listitem>
+              <para>Merge your changes from the backup file into the new
+                  <filename>components.xml</filename>.</para>
+              <programlisting># vi /etc/cloudstack/management/components.xml</programlisting>
+            </listitem>
+          </orderedlist>
+          <note>
+            <para>If you have more than one management server node, repeat the upgrade steps on each
+              node.</para>
+          </note>
+        </listitem>
+        <listitem>
+          <para>After upgrading to 4.2, API clients are expected to send plain text passwords for
+            login and user creation, instead of MD5 hash. Incase, api client changes are not
+            acceptable, following changes are to be made for backward compatibility:</para>
+          <para>Modify componentsContext.xml, and make PlainTextUserAuthenticator as the default
+            authenticator (1st entry in the userAuthenticators adapter list is default)</para>
+          <programlisting language="XML">
+&lt;!-- Security adapters --&gt;
+&lt;bean id="userAuthenticators" class="com.cloud.utils.component.AdapterList"&gt;
+  &lt;property name="Adapters"&gt;
+    &lt;list&gt;
+      &lt;ref bean="PlainTextUserAuthenticator"/&gt;
+      &lt;ref bean="MD5UserAuthenticator"/&gt;
+      &lt;ref bean="LDAPUserAuthenticator"/&gt;
+    &lt;/list&gt;
+  &lt;/property&gt;
+&lt;/bean&gt;
+            </programlisting>
+          <para>PlainTextUserAuthenticator works the same way MD5UserAuthenticator worked prior to
+            4.2.</para>
+        </listitem>
+        <listitem>
+          <para>Start the first Management Server. Do not start any other Management Server nodes
+            yet.</para>
+          <programlisting language="Bash"><prompt>#</prompt> service cloudstack-management start</programlisting>
+          <para>Wait until the databases are upgraded. Ensure that the database upgrade is complete.
+            After confirmation, start the other Management Servers one at a time by running the same
+            command on each node.</para>
+          <note>
+            <para>Failing to restart the Management Server indicates a problem in the upgrade.
+              Having the Management Server restarted without any issues indicates that the upgrade
+              is successfully completed.</para>
+          </note>
+        </listitem>
+        <listitem>
+          <para>Start all Usage Servers (if they were running on your previous version). Perform
+            this on each Usage Server host.</para>
+          <para><command># service cloudstack-usage start</command></para>
+        </listitem>
+        <listitem>
+          <note>
+            <para>Additional steps are required for each KVM host. These steps will not affect
+              running guests in the cloud. These steps are required only for clouds using KVM as
+              hosts and only on the KVM hosts.</para>
+          </note>
+          <orderedlist numeration="loweralpha">
+            <listitem>
+              <para>Configure a yum or apt repository containing the &PRODUCT; packages as outlined
+                in the Installation Guide.</para>
+            </listitem>
+            <listitem>
+              <para>Stop the running agent.</para>
+              <para><command># service cloud-agent stop</command></para>
+            </listitem>
+            <listitem>
+              <para>Update the agent software with one of the following command sets as appropriate
+                for your environment.</para>
+              <para><command># yum update cloud-*</command></para>
+              <para><command># apt-get update</command></para>
+              <para><command># apt-get upgrade cloud-*</command></para>
+            </listitem>
+            <listitem>
+              <para>Start the agent.</para>
+              <programlisting># service cloudstack-agent start</programlisting>
+            </listitem>
+            <listitem>
+              <para>Edit <filename>/etc/cloudstack/agent/agent.properties</filename> to change the
+                resource parameter from
+                "com.cloud.agent.resource.computing.LibvirtComputingResource" to
+                "com.cloud.hypervisor.kvm.resource.LibvirtComputingResource".</para>
+            </listitem>
+            <listitem>
+              <para>Start the cloud agent and cloud management services.</para>
+            </listitem>
+            <listitem>
+              <para>When the Management Server is up and running, log in to the CloudStack UI and
+                restart the virtual router for proper functioning of all the features.</para>
+            </listitem>
+          </orderedlist>
+        </listitem>
+        <listitem>
+          <para>Log in to the CloudStack UI as administrator, and check the status of the hosts. All
+            hosts should come to Up state (except those that you know to be offline). You may need
+            to wait 20 or 30 minutes, depending on the number of hosts.</para>
+          <note>
+            <para>Troubleshooting: If login fails, clear your browser cache and reload the
+              page.</para>
+          </note>
+          <para/>
+          <para>Do not proceed to the next step until the hosts show in Up state.</para>
+        </listitem>
+        <listitem>
+          <para>If you are upgrading from 3.0.2, perform the following:</para>
+          <orderedlist numeration="loweralpha">
+            <listitem>
+              <para>Ensure that the admin port is set to 8096 by using the "integration.api.port"
+                global parameter.</para>
+              <para>This port is used by the cloud-sysvmadm script at the end of the upgrade
+                procedure. For information about how to set this parameter, see "Setting Global
+                Configuration Parameters" in the Installation Guide.</para>
+            </listitem>
+            <listitem>
+              <para>Restart the Management Server.</para>
+              <note>
+                <para>If you don't want the admin port to remain open, you can set it to null after
+                  the upgrade is done and restart the management server.</para>
+              </note>
+            </listitem>
+          </orderedlist>
+        </listitem>
+        <listitem>
+          <para>Run the <command>cloud-sysvmadm</command> script to stop, then start, all Secondary
+            Storage VMs, Console Proxy VMs, and virtual routers. Run the script once on each
+            management server. Substitute your own IP address of the MySQL instance, the MySQL user
+            to connect as, and the password to use for that user. In addition to those parameters,
+            provide the <command>-c</command> and <command>-r</command> arguments. For
+            example:</para>
+          <para><command># nohup cloud-sysvmadm -d 192.168.1.5 -u cloud -p password -c -r >
+              sysvm.log 2>&amp;1 &amp;</command></para>
+          <para><command># tail -f sysvm.log</command></para>
+          <para>This might take up to an hour or more to run, depending on the number of accounts in
+            the system.</para>
+        </listitem>
+        <listitem>
+          <para>If needed, upgrade all Citrix XenServer hypervisor hosts in your cloud to a version
+            supported by CloudStack 4.2.0. The supported versions are XenServer 5.6 SP2 and 6.0.2.
+            Instructions for upgrade can be found in the CloudStack 4.2.0 Installation Guide under
+            "Upgrading XenServer Versions."</para>
+        </listitem>
+        <listitem>
+          <para>Now apply the XenServer hotfix XS602E003 (and any other needed hotfixes) to
+            XenServer v6.0.2 hypervisor hosts.</para>
+          <orderedlist numeration="loweralpha">
+            <listitem>
+              <para>Disconnect the XenServer cluster from CloudStack.</para>
+              <para>In the left navigation bar of the CloudStack UI, select Infrastructure. Under
+                Clusters, click View All. Select the XenServer cluster and click Actions -
+                Unmanage.</para>
+              <para>This may fail if there are hosts not in one of the states Up, Down,
+                Disconnected, or Alert. You may need to fix that before unmanaging this
+                cluster.</para>
+              <para>Wait until the status of the cluster has reached Unmanaged. Use the CloudStack
+                UI to check on the status. When the cluster is in the unmanaged state, there is no
+                connection to the hosts in the cluster.</para>
+            </listitem>
+            <listitem>
+              <para>To clean up the VLAN, log in to one XenServer host and run:</para>
+              <para><command>/opt/xensource/bin/cloud-clean-vlan.sh</command></para>
+            </listitem>
+            <listitem>
+              <para>Now prepare the upgrade by running the following on one XenServer host:</para>
+              <para><command>/opt/xensource/bin/cloud-prepare-upgrade.sh</command></para>
+              <para>If you see a message like "can't eject CD", log in to the VM and unmount the CD,
+                then run this script again.</para>
+            </listitem>
+            <listitem>
+              <para>Upload the hotfix to the XenServer hosts. Always start with the Xen pool master,
+                then the slaves. Using your favorite file copy utility (e.g. WinSCP), copy the
+                hotfixes to the host. Place them in a temporary folder such as /tmp. </para>
+              <para>On the Xen pool master, upload the hotfix with this command:</para>
+              <para><command>xe patch-upload file-name=XS602E003.xsupdate</command></para>
+              <para>Make a note of the output from this command, which is a UUID for the hotfix
+                file. You'll need it in another step later.</para>
+              <note>
+                <para>(Optional) If you are applying other hotfixes as well, you can repeat the
+                  commands in this section with the appropriate hotfix number. For example,
+                  XS602E004.xsupdate.</para>
+              </note>
+            </listitem>
+            <listitem>
+              <para>Manually live migrate all VMs on this host to another host. First, get a list of
+                the VMs on this host:</para>
+              <para><command># xe vm-list</command></para>
+              <para>Then use this command to migrate each VM. Replace the example host name and VM
+                name with your own:</para>
+              <para><command># xe vm-migrate live=true host=<replaceable>host-name</replaceable>
+                    vm=<replaceable>VM-name</replaceable></command></para>
+              <note>
+                <title>Troubleshooting</title>
+                <para>If you see a message like "You attempted an operation on a VM which requires
+                  PV drivers to be installed but the drivers were not detected," run:</para>
+                <para><command>/opt/xensource/bin/make_migratable.sh
+                    b6cf79c8-02ee-050b-922f-49583d9f1a14</command>.</para>
+              </note>
+            </listitem>
+            <listitem>
+              <para>Apply the hotfix. First, get the UUID of this host:</para>
+              <programlisting># xe host-list</programlisting>
+              <para>Then use the following command to apply the hotfix. Replace the example host
+                UUID with the current host ID, and replace the hotfix UUID with the output from the
+                patch-upload command you ran on this machine earlier. You can also get the hotfix
+                UUID by running xe patch-list. </para>
+              <programlisting><command>xe</command> patch-apply host-uuid=<replaceable>host-uuid</replaceable> uuid=<replaceable>hotfix-uuid</replaceable></programlisting>
+            </listitem>
+            <listitem>
+              <para>Copy the following files from the CloudStack Management Server to the
+                host.</para>
+              <informaltable>
+                <tgroup cols="2" align="left" colsep="1" rowsep="1">
+                  <colspec colwidth="1*" colname="1" colnum="1"/>
+                  <colspec colwidth="2*" colname="2" colnum="2"/>
+                  <thead>
+                    <row>
+                      <entry><para>Copy from here...</para></entry>
+                      <entry><para>...to here</para></entry>
+                    </row>
+                  </thead>
+                  <tbody>
+                    <row>
+                      <entry><para>/usr/lib64/cloud/common/scripts/vm/hypervisor/xenserver/xenserver60/NFSSR.py</para></entry>
+                      <entry><para>/opt/xensource/sm/NFSSR.py</para></entry>
+                    </row>
+                    <row>
+                      <entry><para>/usr/lib64/cloud/common/scripts/vm/hypervisor/xenserver/setupxenserver.sh</para></entry>
+                      <entry><para>/opt/xensource/bin/setupxenserver.sh</para></entry>
+                    </row>
+                    <row>
+                      <entry><para>/usr/lib64/cloud/common/scripts/vm/hypervisor/xenserver/make_migratable.sh</para></entry>
+                      <entry><para>/opt/xensource/bin/make_migratable.sh</para></entry>
+                    </row>
+                  </tbody>
+                </tgroup>
+              </informaltable>
+            </listitem>
+            <listitem>
+              <para>(Only for hotfixes XS602E005 and XS602E007) You need to apply a new Cloud
+                Support Pack.</para>
+              <itemizedlist>
+                <listitem>
+                  <para>Download the CSP software onto the XenServer host from one of the following
+                    links:</para>
+                  <para>For hotfix XS602E005: <ulink
+                      url="http://coltrane.eng.hq.xensource.com/release/XenServer-6.x/XS-6.0.2/hotfixes/XS602E005/56710/xe-phase-2/xenserver-cloud-supp.tgz"
+                      >http://coltrane.eng.hq.xensource.com/release/XenServer-6.x/XS-6.0.2/hotfixes/XS602E005/56710/xe-phase-2/xenserver-cloud-supp.tgz</ulink></para>
+                  <para>For hotfix XS602E007: <ulink
+                      url="http://coltrane.eng.hq.xensource.com/release/XenServer-6.x/XS-6.0.2/hotfixes/XS602E007/57824/xe-phase-2/xenserver-cloud-supp.tgz"
+                      >http://coltrane.eng.hq.xensource.com/release/XenServer-6.x/XS-6.0.2/hotfixes/XS602E007/57824/xe-phase-2/xenserver-cloud-supp.tgz</ulink></para>
+                </listitem>
+                <listitem>
+                  <para>Extract the file:</para>
+                  <programlisting># tar xf xenserver-cloud-supp.tgz</programlisting>
+                </listitem>
+                <listitem>
+                  <para>Run the following script:</para>
+                  <programlisting># xe-install-supplemental-pack xenserver-cloud-supp.iso</programlisting>
+                </listitem>
+                <listitem>
+                  <para>If the XenServer host is part of a zone that uses basic networking, disable
+                    Open vSwitch (OVS):</para>
+                  <programlisting># xe-switch-network-backend  bridge</programlisting>
+                </listitem>
+              </itemizedlist>
+            </listitem>
+            <listitem>
+              <para>Reboot this XenServer host.</para>
+            </listitem>
+            <listitem>
+              <para>Run the following:</para>
+              <programlisting>/opt/xensource/bin/setupxenserver.sh</programlisting>
+              <note>
+                <para>If the message "mv: cannot stat `/etc/cron.daily/logrotate': No such file or
+                  directory" appears, you can safely ignore it.</para>
+              </note>
+            </listitem>
+            <listitem>
+              <para>Run the following:</para>
+              <programlisting>for pbd in `xe pbd-list currently-attached=false| grep ^uuid | awk '{print $NF}'`; do xe pbd-plug uuid=$pbd ; </programlisting>
+            </listitem>
+            <listitem>
+              <para>On each slave host in the Xen pool, repeat these steps, starting from "manually
+                live migrate VMs."</para>
+            </listitem>
+          </orderedlist>
+        </listitem>
+      </orderedlist>
+      <note>
+        <title>Troubleshooting Tip</title>
+        <para>If passwords which you know to be valid appear not to work after upgrade, or other UI
+          issues are seen, try clearing your browser cache and reloading the UI page.</para>
+      </note>
+    </section>
+    <section id="upgrade-from-2.2.x-to-4.1">
+      <title>Upgrade from 2.2.14 to 4.2.0</title>
+      <orderedlist>
+        <listitem>
+          <para>Ensure that you query your IPaddress usage records and process them; for example,
+            issue invoices for any usage that you have not yet billed users for.</para>
+          <para>Starting in 3.0.2, the usage record format for IP addresses is the same as the rest
+            of the usage types. Instead of a single record with the assignment and release dates,
+            separate records are generated per aggregation period with start and end dates. After
+            upgrading to 4.2.0, any existing IP address usage records in the old format will no
+            longer be available.</para>
+        </listitem>
+        <listitem>
+          <para>If you are using version 2.2.0 - 2.2.13, first upgrade to 2.2.14 by using the
+            instructions in the <ulink
+              url="http://download.cloud.com/releases/2.2.0/CloudStack2.2.14ReleaseNotes.pdf">2.2.14
+              Release Notes</ulink>.</para>
+          <warning>
+            <title>KVM Hosts</title>
+            <para>If KVM hypervisor is used in your cloud, be sure you completed the step to insert
+              a valid username and password into the host_details table on each KVM node as
+              described in the 2.2.14 Release Notes. This step is critical, as the database will be
+              encrypted after the upgrade to 4.2.0.</para>
+          </warning>
+        </listitem>
+        <listitem>
+          <para>While running the 2.2.14 system, log in to the UI as root administrator.</para>
+        </listitem>
+        <listitem>
+          <para>Using the UI, add a new System VM template for each hypervisor type that is used in
+            your cloud. In each zone, add a system VM template for each hypervisor used in that
+            zone</para>
+          <orderedlist>
+            <listitem>
+              <para>In the left navigation bar, click Templates.</para>
+            </listitem>
+            <listitem>
+              <para>In Select view, click Templates.</para>
+            </listitem>
+            <listitem>
+              <para>Click Register template.</para>
+              <para>The Register template dialog box is displayed.</para>
+            </listitem>
+            <listitem>
+              <para>In the Register template dialog box, specify the following values depending on
+                the hypervisor type (do not change these):</para>
+              <informaltable>
+                <tgroup cols="2" align="left" colsep="1" rowsep="1">
+                  <colspec colwidth="1*" colname="1" colnum="1"/>
+                  <colspec colwidth="2*" colname="2" colnum="2"/>
+                  <thead>
+                    <row>
+                      <entry><para>Hypervisor</para></entry>
+                      <entry><para>Description</para></entry>
+                    </row>
+                  </thead>
+                  <tbody>
+                    <row>
+                      <entry><para>XenServer</para></entry>
+                      <entry><para>Name: systemvm-xenserver-4.2.0</para>
+                        <para>Description: systemvm-xenserver-4.2.0</para>
+                        <para>URL:http://download.cloud.com/templates/4.2/systemvmtemplate-2013-07-12-master-xen.vhd.bz2 </para>
+                        <para>Zone: Choose the zone where this hypervisor is used</para>
+                        <para>Hypervisor: XenServer</para>
+                        <para>Format: VHD</para>
+                        <para>OS Type: Debian GNU/Linux 6.0 (32-bit)</para>
+                        <para>Extractable: no</para>
+                        <para>Password Enabled: no</para>
+                        <para>Public: no</para>
+                        <para>Featured: no</para>
+                      </entry>
+                    </row>
+                    <row>
+                      <entry><para>KVM</para></entry>
+                      <entry><para>Name: systemvm-kvm-4.2.0</para>
+                        <para>Description: systemvm-kvm-4.2.0</para>
+                        <para>URL:
+                          http://download.cloud.com/templates/4.2/systemvmtemplate-2013-06-12-master-kvm.qcow2.bz2</para>
+                        <para>Zone: Choose the zone where this hypervisor is used</para>
+                        <para>Hypervisor: KVM</para>
+                        <para>Format: QCOW2</para>
+                        <para>OS Type: Debian GNU/Linux 5.0 (32-bit)</para>
+                        <para>Extractable: no</para>
+                        <para>Password Enabled: no</para>
+                        <para>Public: no</para>
+                        <para>Featured: no</para>
+                      </entry>
+                    </row>
+                    <row>
+                      <entry><para>VMware</para></entry>
+                      <entry><para>Name: systemvm-vmware-4.2.0</para>
+                        <para>Description: systemvm-vmware-4.2.0</para>
+                        <para>URL:
+                          http://download.cloud.com/templates/4.2/systemvmtemplate-4.2-vh7.ova</para>
+                        <para>Zone: Choose the zone where this hypervisor is used</para>
+                        <para>Hypervisor: VMware</para>
+                        <para>Format: OVA</para>
+                        <para>OS Type: Debian GNU/Linux 5.0 (32-bit)</para>
+                        <para>Extractable: no</para>
+                        <para>Password Enabled: no</para>
+                        <para>Public: no</para>
+                        <para>Featured: no</para>
+                      </entry>
+                    </row>
+                  </tbody>
+                </tgroup>
+              </informaltable>
+            </listitem>
+          </orderedlist>
+        </listitem>
+        <listitem>
+          <para>Watch the screen to be sure that the template downloads successfully and enters the
+            READY state. Do not proceed until this is successful</para>
+        </listitem>
+        <listitem>
+          <para><emphasis role="bold">WARNING</emphasis>: If you use more than one type of
+            hypervisor in your cloud, be sure you have repeated these steps to download the system
+            VM template for each hypervisor type. Otherwise, the upgrade will fail.</para>
+        </listitem>
+        <listitem>
+          <para>Stop all Usage Servers if running. Run this on all Usage Server hosts.</para>
+          <programlisting># service cloud-usage stop</programlisting>
+        </listitem>
+        <listitem>
+          <para>Stop the Management Servers. Run this on all Management Server hosts.</para>
+          <programlisting language="Bash"><prompt>#</prompt> service cloud-management stop</programlisting>
+        </listitem>
+        <listitem>
+          <para>On the MySQL master, take a backup of the MySQL databases. We recommend performing
+            this step even in test upgrades. If there is an issue, this will assist with
+            debugging.</para>
+          <para>In the following commands, it is assumed that you have set the root password on the
+            database, which is a CloudStack recommended best practice. Substitute your own MySQL
+            root password.</para>
+          <programlisting><prompt>#</prompt> <command>mysqldump</command> -u root -p<replaceable>mysql_password</replaceable> cloud > <filename>cloud-backup.dmp</filename>
+                        <prompt>#</prompt> <command>mysqldump</command> -u root -p<replaceable>mysql_password</replaceable> cloud_usage > <filename>cloud-usage-backup.dmp</filename>
+                    </programlisting>
+        </listitem>
+        <listitem>
+          <para> Either build RPM/DEB packages as detailed in the Installation Guide, or use one of
+            the community provided yum/apt repositories to gain access to the &PRODUCT; binaries.
+          </para>
+        </listitem>
+        <listitem id="upgrade-deb-packages-22">
+          <para>If you are using Ubuntu, follow this procedure to upgrade your packages. If not,
+            skip to step <xref linkend="upgrade-rpm-packages-22"/>.</para>
+          <note>
+            <title>Community Packages</title>
+            <para>This section assumes you're using the community supplied packages for &PRODUCT;.
+              If you've created your own packages and APT repository, substitute your own URL for
+              the ones used in these examples.</para>
+          </note>
+          <orderedlist id="debsteps-22">
+            <listitem>
+              <para>The first order of business will be to change the sources list for each system
+                with &PRODUCT; packages. This means all management servers, and any hosts that have
+                the KVM agent. (No changes should be necessary for hosts that are running VMware or
+                Xen.)</para>
+              <para>Start by opening <filename>/etc/apt/sources.list.d/cloudstack.list</filename> on
+                any systems that have &PRODUCT; packages installed.</para>
+              <para>This file should have one line, which contains:</para>
+              <programlisting language="Bash">deb http://cloudstack.apt-get.eu/ubuntu precise 4.0</programlisting>
+              <para>We'll change it to point to the new package repository:</para>
+              <programlisting language="Bash">deb http://cloudstack.apt-get.eu/ubuntu precise 4.2</programlisting>
+              <para>If you're using your own package repository, change this line to read as
+                appropriate for your 4.2.0 repository.</para>
+            </listitem>
+            <listitem>
+              <para>Now update your apt package list:</para>
+              <programlisting language="Bash">$ sudo apt-get update</programlisting>
+            </listitem>
+            <listitem id="deb-master-22">
+              <para>Now that you have the repository configured, it's time to install the
+                  <filename>cloudstack-management</filename> package. This will pull in any other
+                dependencies you need.</para>
+              <programlisting language="Bash">$ sudo apt-get install cloudstack-management</programlisting>
+            </listitem>
+            <listitem id="kvm-agent-deb-22">
+              <para>On KVM hosts, you will need to manually install the
+                  <filename>cloudstack-agent</filename> package:</para>
+              <programlisting language="Bash">$ sudo apt-get install cloudstack-agent</programlisting>
+              <para>During the installation of <filename>cloudstack-agent</filename>, APT will copy
+                your <filename>agent.properties</filename>, <filename>log4j-cloud.xml</filename>,
+                and <filename>environment.properties</filename> from
+                  <filename>/etc/cloud/agent</filename> to
+                  <filename>/etc/cloudstack/agent</filename>.</para>
+              <para>When prompted whether you wish to keep your configuration, say Yes.</para>
+            </listitem>
+            <listitem>
+              <para>Verify that the file
+                  <filename>/etc/cloudstack/agent/environment.properties</filename> has a line that
+                reads:</para>
+              <programlisting language="Bash">paths.script=/usr/share/cloudstack-common</programlisting>
+              <para>If not, add the line.</para>
+            </listitem>
+            <listitem>
+              <para>Restart the agent:</para>
+              <programlisting language="Bash">
+service cloud-agent stop
+killall jsvc
+service cloudstack-agent start
+              </programlisting>
+            </listitem>
+            <listitem>
+              <para>During the upgrade, <filename>log4j-cloud.xml</filename> was simply copied over,
+                so the logs will continue to be added to
+                  <filename>/var/log/cloud/agent/agent.log</filename>. There's nothing
+                  <emphasis>wrong</emphasis> with this, but if you prefer to be consistent, you can
+                change this by copying over the sample configuration file:</para>
+              <programlisting language="Bash">
+cd /etc/cloudstack/agent
+mv log4j-cloud.xml.dpkg-dist log4j-cloud.xml
+service cloudstack-agent restart
+                            </programlisting>
+            </listitem>
+            <listitem>
+              <para>Once the agent is running, you can uninstall the old cloud-* packages from your
+                system:</para>
+              <programlisting language="Bash">sudo dpkg --purge cloud-agent</programlisting>
+            </listitem>
+          </orderedlist>
+        </listitem>
+        <listitem id="upgrade-rpm-packages-22">
+          <para>If you are using CentOS or RHEL, follow this procedure to upgrade your packages. If
+            not, skip to step <xref linkend="correct-components-xml-22"/>.</para>
+          <note>
+            <title>Community Packages</title>
+            <para>This section assumes you're using the community supplied packages for &PRODUCT;.
+              If you've created your own packages and yum repository, substitute your own URL for
+              the ones used in these examples.</para>
+          </note>
+          <orderedlist id="rpmsteps-22">
+            <listitem>
+              <para>The first order of business will be to change the yum repository for each system
+                with &PRODUCT; packages. This means all management servers, and any hosts that have
+                the KVM agent. (No changes should be necessary for hosts that are running VMware or
+                Xen.)</para>
+              <para>Start by opening <filename>/etc/yum.repos.d/cloudstack.repo</filename> on any
+                systems that have &PRODUCT; packages installed.</para>
+              <para>This file should have content similar to the following:</para>
+              <programlisting language="Bash">
+[apache-cloudstack]
+name=Apache CloudStack
+baseurl=http://cloudstack.apt-get.eu/rhel/4.0/
+enabled=1
+gpgcheck=0
+                            </programlisting>
+              <para>If you are using the community provided package repository, change the baseurl
+                to http://cloudstack.apt-get.eu/rhel/4.2/</para>
+              <para>If you're using your own package repository, change this line to read as
+                appropriate for your 4.2.0 repository.</para>
+            </listitem>
+            <listitem id="rpm-master-22">
+              <para>Now that you have the repository configured, it's time to install the
+                  <filename>cloudstack-management</filename> package by upgrading the older
+                  <filename>cloud-client</filename> package.</para>
+              <programlisting language="Bash">$ sudo yum upgrade cloud-client</programlisting>
+            </listitem>
+            <listitem id="kvm-agent-rpm-22">
+              <para>For KVM hosts, you will need to upgrade the <filename>cloud-agent</filename>
+                package, similarly installing the new version as
+                  <filename>cloudstack-agent</filename>.</para>
+              <programlisting language="Bash">$ sudo yum upgrade cloud-agent</programlisting>
+              <para>During the installation of <filename>cloudstack-agent</filename>, the RPM will
+                copy your <filename>agent.properties</filename>,
+                  <filename>log4j-cloud.xml</filename>, and
+                  <filename>environment.properties</filename> from
+                  <filename>/etc/cloud/agent</filename> to
+                  <filename>/etc/cloudstack/agent</filename>.</para>
+            </listitem>
+            <listitem>
+              <para>Verify that the file
+                  <filename>/etc/cloudstack/agent/environment.properties</filename> has a line that
+                reads:</para>
+              <programlisting language="Bash">paths.script=/usr/share/cloudstack-common</programlisting>
+              <para>If not, add the line.</para>
+            </listitem>
+            <listitem>
+              <para>Restart the agent:</para>
+              <programlisting language="Bash">
+service cloud-agent stop
+killall jsvc
+service cloudstack-agent start
+                            </programlisting>
+            </listitem>
+          </orderedlist>
+        </listitem>
+        <listitem id="correct-components-xml-22">
+          <para>If you have made changes to your existing copy of the file components.xml in your
+            previous-version CloudStack installation, the changes will be preserved in the upgrade.
+            However, you need to do the following steps to place these changes in a new version of
+            the file which is compatible with version 4.0.0-incubating.</para>
+          <note>
+            <para>How will you know whether you need to do this? If the upgrade output in the
+              previous step included a message like the following, then some custom content was
+              found in your old components.xml, and you need to merge the two files:</para>
+          </note>
+          <programlisting>warning: /etc/cloud/management/components.xml created as /etc/cloud/management/components.xml.rpmnew </programlisting>
+          <orderedlist numeration="loweralpha">
+            <listitem>
+              <para>Make a backup copy of your
+                  <filename>/etc/cloud/management/components.xml</filename> file. For
+                example:</para>
+              <programlisting><prompt>#</prompt> <command>mv</command> <filename>/etc/cloud/management/components.xml</filename> <filename>/etc/cloud/management/components.xml-backup</filename></programlisting>
+            </listitem>
+            <listitem>
+              <para>Copy <filename>/etc/cloud/management/components.xml.rpmnew</filename> to create
+                a new <filename>/etc/cloud/management/components.xml</filename>:</para>
+              <programlisting><prompt>#</prompt> <command>cp</command> -ap <filename>/etc/cloud/management/components.xml.rpmnew</filename> <filename>/etc/cloud/management/components.xml</filename></programlisting>
+            </listitem>
+            <listitem>
+              <para>Merge your changes from the backup file into the new components.xml file.</para>
+              <programlisting><prompt>#</prompt> <command>vi</command> <filename>/etc/cloud/management/components.xml</filename>
+                            </programlisting>
+            </listitem>
+          </orderedlist>
+        </listitem>
+        <listitem>
+          <para>After upgrading to 4.2, API clients are expected to send plain text passwords for
+            login and user creation, instead of MD5 hash. Incase, api client changes are not
+            acceptable, following changes are to be made for backward compatibility:</para>
+          <para>Modify componentsContext.xml, and make PlainTextUserAuthenticator as the default
+            authenticator (1st entry in the userAuthenticators adapter list is default)</para>
+          <programlisting language="XML">
+&lt;!-- Security adapters --&gt;
+&lt;bean id="userAuthenticators" class="com.cloud.utils.component.AdapterList"&gt;
+  &lt;property name="Adapters"&gt;
+    &lt;list&gt;
+      &lt;ref bean="PlainTextUserAuthenticator"/&gt;
+      &lt;ref bean="MD5UserAuthenticator"/&gt;
+      &lt;ref bean="LDAPUserAuthenticator"/&gt;
+    &lt;/list&gt;
+  &lt;/property&gt;
+&lt;/bean&gt;
+            </programlisting>
+          <para>PlainTextUserAuthenticator works the same way MD5UserAuthenticator worked prior to
+            4.2.</para>
+        </listitem>
+        <listitem>
+          <para>If you have made changes to your existing copy of the
+              <filename>/etc/cloud/management/db.properties</filename> file in your previous-version
+            CloudStack installation, the changes will be preserved in the upgrade. However, you need
+            to do the following steps to place these changes in a new version of the file which is
+            compatible with version 4.0.0-incubating.</para>
+          <orderedlist>
+            <listitem>
+              <para>Make a backup copy of your file
+                  <filename>/etc/cloud/management/db.properties</filename>. For example:</para>
+              <programlisting><prompt>#</prompt> <command>mv</command> <filename>/etc/cloud/management/db.properties</filename> <filename>/etc/cloud/management/db.properties-backup</filename></programlisting>
+            </listitem>
+            <listitem>
+              <para>Copy <filename>/etc/cloud/management/db.properties.rpmnew</filename> to create a
+                new <filename>/etc/cloud/management/db.properties</filename>:</para>
+              <programlisting><prompt>#</prompt> <command>cp</command> -ap <filename>/etc/cloud/management/db.properties.rpmnew</filename> <filename>etc/cloud/management/db.properties</filename></programlisting>
+            </listitem>
+            <listitem>
+              <para>Merge your changes from the backup file into the new db.properties file.</para>
+              <programlisting><prompt>#</prompt> <command>vi</command> <filename>/etc/cloud/management/db.properties</filename></programlisting>
+            </listitem>
+          </orderedlist>
+        </listitem>
+        <listitem>
+          <para>On the management server node, run the following command. It is recommended that you
+            use the command-line flags to provide your own encryption keys. See Password and Key
+            Encryption in the Installation Guide.</para>
+          <programlisting><prompt>#</prompt> <command>cloudstack-setup-encryption</command> -e <replaceable>encryption_type</replaceable> -m <replaceable>management_server_key</replaceable> -k <replaceable>database_key</replaceable></programlisting>
+          <para>When used without arguments, as in the following example, the default encryption
+            type and keys will be used:</para>
+          <itemizedlist>
+            <listitem>
+              <para>(Optional) For encryption_type, use file or web to indicate the technique used
+                to pass in the database encryption password. Default: file.</para>
+            </listitem>
+            <listitem>
+              <para>(Optional) For management_server_key, substitute the default key that is used to
+                encrypt confidential parameters in the properties file. Default: password. It is
+                highly recommended that you replace this with a more secure value</para>
+            </listitem>
+            <listitem>
+              <para>(Optional) For database_key, substitute the default key that is used to encrypt
+                confidential parameters in the CloudStack database. Default: password. It is highly
+                recommended that you replace this with a more secure value.</para>
+            </listitem>
+          </itemizedlist>
+        </listitem>
+        <listitem>
+          <para>Repeat steps 10 - 14 on every management server node. If you provided your own
+            encryption key in step 14, use the same key on all other management servers.</para>
+        </listitem>
+        <listitem>
+          <para>Start the first Management Server. Do not start any other Management Server nodes
+            yet.</para>
+          <programlisting language="Bash"><prompt>#</prompt> service cloudstack-management start</programlisting>
+          <para>Wait until the databases are upgraded. Ensure that the database upgrade is complete.
+            You should see a message like "Complete! Done." After confirmation, start the other
+            Management Servers one at a time by running the same command on each node.</para>
+        </listitem>
+        <listitem>
+          <para>Start all Usage Servers (if they were running on your previous version). Perform
+            this on each Usage Server host.</para>
+          <programlisting language="Bash"><prompt>#</prompt> service cloudstack-usage start</programlisting>
+        </listitem>
+        <listitem>
+          <para>(KVM only) Additional steps are required for each KVM host. These steps will not
+            affect running guests in the cloud. These steps are required only for clouds using KVM
+            as hosts and only on the KVM hosts.</para>
+          <orderedlist numeration="loweralpha">
+            <listitem>
+              <para> Configure your CloudStack package repositories as outlined in the Installation
+                Guide </para>
+            </listitem>
+            <listitem>
+              <para>Stop the running agent.</para>
+              <programlisting># service cloud-agent stop</programlisting>
+            </listitem>
+            <listitem>
+              <para>Update the agent software with one of the following command sets as
+                appropriate.</para>
+              <programlisting><prompt>#</prompt> <command>yum</command> update cloud-*</programlisting>
+              <programlisting>
+                                <prompt>#</prompt> <command>apt-get</command> update
+                                <prompt>#</prompt> <command>apt-get</command> upgrade cloud-*
+                            </programlisting>
+            </listitem>
+            <listitem>
+              <para>Start the agent.</para>
+              <programlisting># service cloudstack-agent start</programlisting>
+            </listitem>
+            <listitem>
+              <para> Copy the contents of the <filename>agent.properties</filename> file to the new
+                  <filename>agent.properties</filename> file by using the following command</para>
+              <programlisting><command>sed</command> -i 's/com.cloud.agent.resource.computing.LibvirtComputingResource/com.cloud.hypervisor.kvm.resource.LibvirtComputingResource/g' <filename>/etc/cloud/agent/agent.properties</filename></programlisting>
+            </listitem>
+            <listitem>
+              <para>Start the cloud agent and cloud management services.</para>
+            </listitem>
+            <listitem>
+              <para>When the Management Server is up and running, log in to the CloudStack UI and
+                restart the virtual router for proper functioning of all the features.</para>
+            </listitem>
+          </orderedlist>
+        </listitem>
+        <listitem>
+          <para>Log in to the CloudStack UI as admin, and check the status of the hosts. All hosts
+            should come to Up state (except those that you know to be offline). You may need to wait
+            20 or 30 minutes, depending on the number of hosts.</para>
+          <para>Do not proceed to the next step until the hosts show in the Up state. If the hosts
+            do not come to the Up state, contact support.</para>
+        </listitem>
+        <listitem>
+          <para>Run the following script to stop, then start, all Secondary Storage VMs, Console
+            Proxy VMs, and virtual routers.</para>
+          <orderedlist numeration="loweralpha">
+            <listitem>
+              <para>Run the command once on one management server. Substitute your own IP address of
+                the MySQL instance, the MySQL user to connect as, and the password to use for that
+                user. In addition to those parameters, provide the "-c" and "-r" arguments. For
+                example:</para>
+              <programlisting><prompt>#</prompt> <command>nohup cloud-sysvmadm</command> -d <replaceable>192.168.1.5</replaceable> -u cloud -p <replaceable>password</replaceable> -c -r > sysvm.log 2>&amp;1 &amp;
+                                <prompt>#</prompt> <command>tail</command> -f <filename>sysvm.log</filename></programlisting>
+              <para>This might take up to an hour or more to run, depending on the number of
+                accounts in the system.</para>
+            </listitem>
+            <listitem>
+              <para>After the script terminates, check the log to verify correct execution:</para>
+              <programlisting><prompt>#</prompt> <command>tail</command> -f <filename>sysvm.log</filename></programlisting>
+              <para>The content should be like the following:</para>
+              <programlisting>
+                                Stopping and starting 1 secondary storage vm(s)...
+                                Done stopping and starting secondary storage vm(s)
+                                Stopping and starting 1 console proxy vm(s)...
+                                Done stopping and starting console proxy vm(s).
+                                Stopping and starting 4 running routing vm(s)...
+                                Done restarting router(s).
+                            </programlisting>
+            </listitem>
+          </orderedlist>
+        </listitem>
+        <listitem>
+          <para>If you would like additional confirmation that the new system VM templates were
+            correctly applied when these system VMs were rebooted, SSH into the System VM and check
+            the version.</para>
+          <para>Use one of the following techniques, depending on the hypervisor.</para>
+          <formalpara>
+            <title>XenServer or KVM:</title>
+            <para>SSH in by using the link local IP address of the system VM. For example, in the
+              command below, substitute your own path to the private key used to log in to the
+              system VM and your own link local IP.</para>
+          </formalpara>
+          <para>Run the following commands on the XenServer or KVM host on which the system VM is
+            present:</para>
+          <programlisting><prompt>#</prompt> <command>ssh</command> -i <replaceable>private-key-path</replaceable> <replaceable>link-local-ip</replaceable> -p 3922
+                        # cat /etc/cloudstack-release</programlisting>
+          <para>The output should be like the following:</para>
+          <programlisting>Cloudstack Release 4.0.0-incubating Mon Oct 9 15:10:04 PST 2012</programlisting>
+          <formalpara>
+            <title>ESXi</title>
+            <para>SSH in using the private IP address of the system VM. For example, in the command
+              below, substitute your own path to the private key used to log in to the system VM and
+              your own private IP.</para>
+          </formalpara>
+          <para>Run the following commands on the Management Server:</para>
+          <programlisting><prompt>#</prompt> <command>ssh</command> -i <replaceable>private-key-path</replaceable> <replaceable>private-ip</replaceable> -p 3922
+                        <prompt>#</prompt> <command>cat</command> <filename>/etc/cloudstack-release</filename>
+                    </programlisting>
+          <para>The output should be like the following:</para>
+          <programlisting>Cloudstack Release 4.0.0-incubating Mon Oct 9 15:10:04 PST 2012</programlisting>
+        </listitem>
+        <listitem>
+          <para>If needed, upgrade all Citrix XenServer hypervisor hosts in your cloud to a version
+            supported by CloudStack 4.0.0-incubating. The supported versions are XenServer 5.6 SP2
+            and 6.0.2. Instructions for upgrade can be found in the CloudStack 4.0.0-incubating
+            Installation Guide.</para>
+        </listitem>
+        <listitem>
+          <para>Apply the XenServer hotfix XS602E003 (and any other needed hotfixes) to XenServer
+            v6.0.2 hypervisor hosts.</para>
+          <orderedlist numeration="loweralpha">
+            <listitem>
+              <para>Disconnect the XenServer cluster from CloudStack.</para>
+              <para>In the left navigation bar of the CloudStack UI, select Infrastructure. Under
+                Clusters, click View All. Select the XenServer cluster and click Actions -
+                Unmanage.</para>
+              <para>This may fail if there are hosts not in one of the states Up, Down,
+                Disconnected, or Alert. You may need to fix that before unmanaging this
+                cluster.</para>
+              <para>Wait until the status of the cluster has reached Unmanaged. Use the CloudStack
+                UI to check on the status. When the cluster is in the unmanaged state, there is no
+                connection to the hosts in the cluster.</para>
+            </listitem>
+            <listitem>
+              <para>To clean up the VLAN, log in to one XenServer host and run:</para>
+              <programlisting>/opt/xensource/bin/cloud-clean-vlan.sh</programlisting>
+            </listitem>
+            <listitem>
+              <para>Prepare the upgrade by running the following on one XenServer host:</para>
+              <programlisting>/opt/xensource/bin/cloud-prepare-upgrade.sh</programlisting>
+              <para>If you see a message like "can't eject CD", log in to the VM and umount the CD,
+                then run this script again.</para>
+            </listitem>
+            <listitem>
+              <para>Upload the hotfix to the XenServer hosts. Always start with the Xen pool master,
+                then the slaves. Using your favorite file copy utility (e.g. WinSCP), copy the
+                hotfixes to the host. Place them in a temporary folder such as /root or /tmp. </para>
+              <para>On the Xen pool master, upload the hotfix with this command:</para>
+              <programlisting>xe patch-upload file-name=XS602E003.xsupdate</programlisting>
+              <para>Make a note of the output from this command, which is a UUID for the hotfix
+                file. You'll need it in another step later.</para>
+              <note>
+                <para>(Optional) If you are applying other hotfixes as well, you can repeat the
+                  commands in this section with the appropriate hotfix number. For example,
+                  XS602E004.xsupdate.</para>
+              </note>
+            </listitem>
+            <listitem>
+              <para>Manually live migrate all VMs on this host to another host. First, get a list of
+                the VMs on this host:</para>
+              <programlisting># xe vm-list</programlisting>
+              <para>Then use this command to migrate each VM. Replace the example host name and VM
+                name with your own:</para>
+              <programlisting><prompt>#</prompt> <command>xe</command> vm-migrate live=true host=<replaceable>host-name</replaceable> vm=<replaceable>VM-name</replaceable></programlisting>
+              <note>
+                <title>Troubleshooting</title>
+                <para>If you see a message like "You attempted an operation on a VM which requires
+                  PV drivers to be installed but the drivers were not detected," run:</para>
+                <para><command>/opt/xensource/bin/make_migratable.sh
+                    b6cf79c8-02ee-050b-922f-49583d9f1a14</command>.</para>
+              </note>
+            </listitem>
+            <listitem>
+              <para>Apply the hotfix. First, get the UUID of this host:</para>
+              <para><command># xe host-list</command></para>
+              <para>Then use the following command to apply the hotfix. Replace the example host
+                UUID with the current host ID, and replace the hotfix UUID with the output from the
+                patch-upload command you ran on this machine earlier. You can also get the hotfix
+                UUID by running xe patch-list. </para>
+              <para><command>xe patch-apply host-uuid=<replaceable>host-uuid</replaceable>
+                    uuid=<replaceable>hotfix-uuid</replaceable></command></para>
+            </listitem>
+            <listitem>
+              <para>Copy the following files from the CloudStack Management Server to the
+                host.</para>
+              <informaltable>
+                <tgroup cols="2" align="left" colsep="1" rowsep="1">
+                  <colspec colwidth="1*" colname="1" colnum="1"/>
+                  <colspec colwidth="2*" colname="2" colnum="2"/>
+                  <thead>
+                    <row>
+                      <entry><para>Copy from here...</para></entry>
+                      <entry><para>...to here</para></entry>
+                    </row>
+                  </thead>
+                  <tbody>
+                    <row>
+                      <entry><para><filename>/usr/share/cloudstack-common/scripts/vm/hypervisor/xenserver/xenserver60/NFSSR.py</filename></para></entry>
+                      <entry><para><filename>/opt/xensource/sm/NFSSR.py</filename></para></entry>
+                    </row>
+                    <row>
+                      <entry><para><filename>/usr/share/cloudstack-common/scripts/vm/hypervisor/xenserver/setupxenserver.sh</filename></para></entry>
+                      <entry><para><filename>/opt/xensource/bin/setupxenserver.sh</filename></para></entry>
+                    </row>
+                    <row>
+                      <entry><para><filename>/usr/lib64/cloudstack-common/scripts/vm/hypervisor/xenserver/make_migratable.sh</filename></para></entry>
+                      <entry><para><filename>/opt/xensource/bin/make_migratable.sh</filename></para></entry>
+                    </row>
+                  </tbody>
+                </tgroup>
+              </informaltable>
+            </listitem>
+            <listitem>
+              <para>(Only for hotfixes XS602E005 and XS602E007) You need to apply a new Cloud
+                Support Pack.</para>
+              <itemizedlist>
+                <listitem>
+                  <para>Download the CSP software onto the XenServer host from one of the following
+                    links:</para>
+                  <para>For hotfix XS602E005: <ulink
+                      url="http://coltrane.eng.hq.xensource.com/release/XenServer-6.x/XS-6.0.2/hotfixes/XS602E005/56710/xe-phase-2/xenserver-cloud-supp.tgz"
+                      >http://coltrane.eng.hq.xensource.com/release/XenServer-6.x/XS-6.0.2/hotfixes/XS602E005/56710/xe-phase-2/xenserver-cloud-supp.tgz</ulink></para>
+                  <para>For hotfix XS602E007: <ulink
+                      url="http://coltrane.eng.hq.xensource.com/release/XenServer-6.x/XS-6.0.2/hotfixes/XS602E007/57824/xe-phase-2/xenserver-cloud-supp.tgz"
+                      >http://coltrane.eng.hq.xensource.com/release/XenServer-6.x/XS-6.0.2/hotfixes/XS602E007/57824/xe-phase-2/xenserver-cloud-supp.tgz</ulink></para>
+                </listitem>
+                <listitem>
+                  <para>Extract the file:</para>
+                  <para><command># tar xf xenserver-cloud-supp.tgz</command></para>
+                </listitem>
+                <listitem>
+                  <para>Run the following script:</para>
+                  <para><command># xe-install-supplemental-pack
+                    xenserver-cloud-supp.iso</command></para>
+                </listitem>
+                <listitem>
+                  <para>If the XenServer host is part of a zone that uses basic networking, disable
+                    Open vSwitch (OVS):</para>
+                  <para><command># xe-switch-network-backend bridge</command></para>
+                </listitem>
+              </itemizedlist>
+            </listitem>
+            <listitem>
+              <para>Reboot this XenServer host.</para>
+            </listitem>
+            <listitem>
+              <para>Run the following:</para>
+              <para><command>/opt/xensource/bin/setupxenserver.sh</command></para>
+              <note>
+                <para>If the message "mv: cannot stat `/etc/cron.daily/logrotate': No such file or
+                  directory" appears, you can safely ignore it.</para>
+              </note>
+            </listitem>
+            <listitem>
+              <para>Run the following:</para>
+              <para><command>for pbd in `xe pbd-list currently-attached=false| grep ^uuid | awk
+                  '{print

<TRUNCATED>

Mime
View raw message