You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cloudstack.apache.org by se...@apache.org on 2014/05/21 08:25:22 UTC

[2/4] Fixed formatting by Will stevens

http://git-wip-us.apache.org/repos/asf/cloudstack-docs-admin/blob/68c20df4/source/templates.rst
----------------------------------------------------------------------
diff --git a/source/templates.rst b/source/templates.rst
index c4d33b2..bc55aa2 100644
--- a/source/templates.rst
+++ b/source/templates.rst
@@ -12,7 +12,8 @@
    KIND, either express or implied.  See the License for the
    specific language governing permissions and limitations
    under the License.
-   
+
+
 Working with Templates
 ======================
 
@@ -30,6 +31,7 @@ CloudStack ships with a default template. In order to present more
 choices to users, CloudStack administrators and users can create
 templates and add them to CloudStack.
 
+
 Creating Templates: Overview
 ----------------------------
 
@@ -38,18 +40,12 @@ system. There are a variety of ways to add more templates.
 Administrators and end users can add templates. The typical sequence of
 events is:
 
-#. 
-
-   Launch a VM instance that has the operating system you want. Make any
+#. Launch a VM instance that has the operating system you want. Make any
    other desired configuration changes to the VM.
 
-#. 
-
-   Stop the VM.
-
-#. 
+#. Stop the VM.
 
-   Convert the volume into a template.
+#. Convert the volume into a template.
 
 There are other ways to add templates to CloudStack. For example, you
 can take a snapshot of the VM's volume and create a template from the
@@ -58,19 +54,17 @@ snapshot, or import a VHD from another system into CloudStack.
 The various techniques for creating templates are described in the next
 few sections.
 
+
 Requirements for Templates
 --------------------------
 
--  
-
-   For XenServer, install PV drivers / Xen tools on each template that
+-  For XenServer, install PV drivers / Xen tools on each template that
    you create. This will enable live migration and clean guest shutdown.
 
--  
-
-   For vSphere, install VMware Tools on each template that you create.
+-  For vSphere, install VMware Tools on each template that you create.
    This will enable console view to work properly.
 
+
 Best Practices for Templates
 ----------------------------
 
@@ -78,6 +72,7 @@ If you plan to use large templates (100 GB or larger), be sure you have
 a 10-gigabit network to support the large templates. A slower network
 can lead to timeouts and other errors when large templates are used.
 
+
 The Default Template
 --------------------
 
@@ -98,30 +93,31 @@ block most access to the template excluding ssh.
 
 .. code:: bash
 
-    # iptables --list
-    Chain INPUT (policy ACCEPT)
-    target     prot opt source               destination
-    RH-Firewall-1-INPUT  all  --  anywhere             anywhere
-
-    Chain FORWARD (policy ACCEPT)
-    target     prot opt source               destination
-    RH-Firewall-1-INPUT  all  --  anywhere             anywhere
-
-    Chain OUTPUT (policy ACCEPT)
-    target     prot opt source               destination
-
-    Chain RH-Firewall-1-INPUT (2 references)
-    target     prot opt source               destination
-    ACCEPT     all  --  anywhere             anywhere
-    ACCEPT     icmp --  anywhere        anywhere       icmp any
-    ACCEPT     esp  --  anywhere        anywhere
-    ACCEPT     ah   --  anywhere        anywhere
-    ACCEPT     udp  --  anywhere        224.0.0.251    udp dpt:mdns
-    ACCEPT     udp  --  anywhere        anywhere       udp dpt:ipp
-    ACCEPT     tcp  --  anywhere        anywhere       tcp dpt:ipp
-    ACCEPT     all  --  anywhere        anywhere       state RELATED,ESTABLISHED
-    ACCEPT     tcp  --  anywhere        anywhere       state NEW tcp dpt:ssh
-    REJECT     all  --  anywhere        anywhere       reject-with icmp-host-
+   # iptables --list
+   Chain INPUT (policy ACCEPT)
+   target     prot opt source               destination
+   RH-Firewall-1-INPUT  all  --  anywhere             anywhere
+
+   Chain FORWARD (policy ACCEPT)
+   target     prot opt source               destination
+   RH-Firewall-1-INPUT  all  --  anywhere             anywhere
+
+   Chain OUTPUT (policy ACCEPT)
+   target     prot opt source               destination
+
+   Chain RH-Firewall-1-INPUT (2 references)
+   target     prot opt source               destination
+   ACCEPT     all  --  anywhere             anywhere
+   ACCEPT     icmp --  anywhere        anywhere       icmp any
+   ACCEPT     esp  --  anywhere        anywhere
+   ACCEPT     ah   --  anywhere        anywhere
+   ACCEPT     udp  --  anywhere        224.0.0.251    udp dpt:mdns
+   ACCEPT     udp  --  anywhere        anywhere       udp dpt:ipp
+   ACCEPT     tcp  --  anywhere        anywhere       tcp dpt:ipp
+   ACCEPT     all  --  anywhere        anywhere       state RELATED,ESTABLISHED
+   ACCEPT     tcp  --  anywhere        anywhere       state NEW tcp dpt:ssh
+   REJECT     all  --  anywhere        anywhere       reject-with icmp-host-
+
 
 Private and Public Templates
 ----------------------------
@@ -141,92 +137,75 @@ in a private Zone, it is available only to users in the domain assigned
 to that Zone. If a public template is created in a public Zone, it is
 available to all users in all domains.
 
+
 Creating a Template from an Existing Virtual Machine
 ----------------------------------------------------
 
 Once you have at least one VM set up in the way you want, you can use it
 as the prototype for other VMs.
 
-#. 
-
-   Create and start a virtual machine using any of the techniques given
+#. Create and start a virtual machine using any of the techniques given
    in `“Creating VMs” <virtual_machines.html#creating-vms>`_.
 
-#. 
-
-   Make any desired configuration changes on the running VM, then click
+#. Make any desired configuration changes on the running VM, then click
    Stop.
 
-#. 
-
-   Wait for the VM to stop. When the status shows Stopped, go to the
+#. Wait for the VM to stop. When the status shows Stopped, go to the
    next step.
 
-#. 
-
-   Click Create Template and provide the following:
-
-   -  
+#. Click Create Template and provide the following:
 
-      **Name and Display Text**. These will be shown in the UI, so
+   -  **Name and Display Text**. These will be shown in the UI, so
       choose something descriptive.
 
-   -  
-
-      **OS Type**. This helps CloudStack and the hypervisor perform
+   -  **OS Type**. This helps CloudStack and the hypervisor perform
       certain operations and make assumptions that improve the
       performance of the guest. Select one of the following.
 
-      -  
-
-         If the operating system of the stopped VM is listed, choose it.
-
-      -  
+      -  If the operating system of the stopped VM is listed, choose it.
 
-         If the OS type of the stopped VM is not listed, choose Other.
+      -  If the OS type of the stopped VM is not listed, choose Other.
 
-      -  
-
-         If you want to boot from this template in PV mode, choose Other
+      -  If you want to boot from this template in PV mode, choose Other
          PV (32-bit) or Other PV (64-bit). This choice is available only
          for XenServere:
 
          .. note:: 
-            Generally you should not choose an older version of the OS than the version in the image. For example, choosing CentOS 5.4 to support a CentOS 6.2 image will in general not work. In those cases you should choose Other.
-
-   -  
+            Generally you should not choose an older version of the OS 
+            than the version in the image. For example, choosing CentOS 
+            5.4 to support a CentOS 6.2 image will in general not work. 
+            In those cases you should choose Other.
 
-      **Public**. Choose Yes to make this template accessible to all
+   -  **Public**. Choose Yes to make this template accessible to all
       users of this CloudStack installation. The template will appear in
       the Community Templates list. See `“Private and
       Public Templates” <#private-and-public-templates>`_.
 
-   -  
-
-      **Password Enabled**. Choose Yes if your template has the
+   -  **Password Enabled**. Choose Yes if your template has the
       CloudStack password change script installed. See 
       :ref:`adding-password-management-to-templates`.
 
-#. 
-
-   Click Add.
+#. Click Add.
 
 The new template will be visible in the Templates section when the
 template creation process has been completed. The template is then
 available when creating a new VM.
 
+
 Creating a Template from a Snapshot
 -----------------------------------
 
 If you do not want to stop the VM in order to use the Create Template
-menu item (as described in `“Creating a Template from an
-Existing Virtual Machine” <#creating-a-template-from-an-existing-virtual-machine>`_), you
-can create a template directly from any snapshot through the CloudStack
-UI.
+menu item (as described in `“Creating a Template from an Existing 
+Virtual Machine” <#creating-a-template-from-an-existing-virtual-machine>`_), 
+you can create a template directly from any snapshot through the 
+CloudStack UI.
+
 
 Uploading Templates
 -------------------
 
+
 vSphere Templates and ISOs
 --------------------------
 
@@ -240,86 +219,61 @@ them to decrease upload times.
 
 To upload a template:
 
-#. 
+#. In the left navigation bar, click Templates.
 
-   In the left navigation bar, click Templates.
+#. Click Register Template.
 
-#. 
+#. Provide the following:
 
-   Click Register Template.
-
-#. 
-
-   Provide the following:
-
-   -  
-
-      **Name and Description**. These will be shown in the UI, so choose
+   -  **Name and Description**. These will be shown in the UI, so choose
       something descriptive.
 
-   -  
-
-      **URL**. The Management Server will download the file from the
+   -  **URL**. The Management Server will download the file from the
       specified URL, such as ``http://my.web.server/filename.vhd.gz``.
 
-   -  
-
-      **Zone**. Choose the zone where you want the template to be
+   -  **Zone**. Choose the zone where you want the template to be
       available, or All Zones to make it available throughout
       CloudStack.
 
-   -  
-
-      **OS Type**: This helps CloudStack and the hypervisor perform
+   -  **OS Type**: This helps CloudStack and the hypervisor perform
       certain operations and make assumptions that improve the
       performance of the guest. Select one of the following:
 
-      -  
-
-         If the operating system of the stopped VM is listed, choose it.
+      -  If the operating system of the stopped VM is listed, choose it.
 
-      -  
-
-         If the OS type of the stopped VM is not listed, choose Other.
+      -  If the OS type of the stopped VM is not listed, choose Other.
 
          .. note:: 
-            You should not choose an older version of the OS than the version in the image. For example, choosing CentOS 5.4 to support a CentOS 6.2 image will in general not work. In those cases you should choose Other.
-
-   -  
+            You should not choose an older version of the OS than the 
+            version in the image. For example, choosing CentOS 5.4 to 
+            support a CentOS 6.2 image will in general not work. In 
+            those cases you should choose Other.
 
-      **Hypervisor**: The supported hypervisors are listed. Select the
+   -  **Hypervisor**: The supported hypervisors are listed. Select the
       desired one.
 
-   -  
-
-      **Format**. The format of the template upload file, such as VHD or
+   -  **Format**. The format of the template upload file, such as VHD or
       OVA.
 
-   -  
-
-      **Password Enabled**. Choose Yes if your template has the
-      CloudStack password change script installed. See :ref:`adding-password-management-to-templates`.
-
-   -  
+   -  **Password Enabled**. Choose Yes if your template has the
+      CloudStack password change script installed. 
+      See :ref:`adding-password-management-to-templates`.
 
-      **Extractable**. Choose Yes if the template is available for
+   -  **Extractable**. Choose Yes if the template is available for
       extraction. If this option is selected, end users can download a
       full image of a template.
 
-   -  
-
-      **Public**. Choose Yes to make this template accessible to all
+   -  **Public**. Choose Yes to make this template accessible to all
       users of this CloudStack installation. The template will appear in
       the Community Templates list. See `“Private and
       Public Templates” <#private-and-public-templates>`_.
 
-   -  
-
-      **Featured**. Choose Yes if you would like this template to be
+   -  **Featured**. Choose Yes if you would like this template to be
       more prominent for users to select. The template will appear in
       the Featured Templates list. Only an administrator can make a
       template Featured.
 
+
 Exporting Templates
 -------------------
 
@@ -327,6 +281,7 @@ End users and Administrators may export templates from the CloudStack.
 Navigate to the template in the UI and choose the Download function from
 the Actions menu.
 
+
 Creating a Linux Template
 -------------------------
 
@@ -339,30 +294,23 @@ assumes openssh-server is installed during installation.
 
 An overview of the procedure is as follow:
 
-#. 
-
-   Upload your Linux ISO.
+#. Upload your Linux ISO.
 
    For more information, see `“Adding an
    ISO” <virtual_machines.html#adding-an-iso>`_.
 
-#. 
-
-   Create a VM Instance with this ISO.
+#. Create a VM Instance with this ISO.
 
    For more information, see `“Creating
    VMs” <virtual_machines.html#creating-vms>`_.
 
-#. 
-
-   Prepare the Linux VM
+#. Prepare the Linux VM
 
-#. 
+#. Create a template from the VM.
 
-   Create a template from the VM.
+   For more information, see `“Creating a Template from an Existing 
+   Virtual Machine” <#creating-a-template-from-an-existing-virtual-machine>`_.
 
-   For more information, see `“Creating a Template from an
-   Existing Virtual Machine” <#creating-a-template-from-an-existing-virtual-machine>`_.
 
 System preparation for Linux
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
@@ -370,9 +318,7 @@ System preparation for Linux
 The following steps will prepare a basic Linux installation for
 templating.
 
-#. 
-
-   **Installation**
+#. **Installation**
 
    It is good practice to name your VM something generic during
    installation, this will ensure components such as LVM do not appear
@@ -387,69 +333,61 @@ templating.
 
    .. code:: bash
 
-                DEVICE=eth0
-                TYPE=Ethernet
-                BOOTPROTO=dhcp
-                ONBOOT=yes
+      DEVICE=eth0
+      TYPE=Ethernet
+      BOOTPROTO=dhcp
+      ONBOOT=yes
 
    The next steps updates the packages on the Template Master.
 
-   -  
-
-      Ubuntu
+   -  Ubuntu
 
       .. code:: bash
 
-                          sudo -i
-                          apt-get update
-                          apt-get upgrade -y
-                          apt-get install -y acpid ntp
-                          reboot
-
-   -  
+         sudo -i
+         apt-get update
+         apt-get upgrade -y
+         apt-get install -y acpid ntp
+         reboot
 
-      CentOS
+   -  CentOS
 
       .. code:: bash
 
-                          ifup eth0
-                          yum update -y
-                          reboot
+         ifup eth0
+         yum update -y
+         reboot
 
-#. 
-
-   **Password management**
+#. **Password management**
 
    .. note:: 
-      If preferred, custom users (such as ones created during the Ubuntu installation) should be removed. First ensure the root user account is enabled by giving it a password and then login as root to continue.
+      If preferred, custom users (such as ones created during the Ubuntu 
+      installation) should be removed. First ensure the root user account 
+      is enabled by giving it a password and then login as root to continue.
 
    .. code:: bash
 
-                sudo passwd root
-                logout
+      sudo passwd root
+      logout
 
    As root, remove any custom user accounts created during the
    installation process.
 
    .. code:: bash
 
-                deluser myuser --remove-home
+      deluser myuser --remove-home
 
    See :ref:`adding-password-management-to-templates` for
    instructions to setup the password management script, this will allow
    CloudStack to change your root password from the web interface.
 
-#. 
-
-   **Hostname Management**
+#. **Hostname Management**
 
    CentOS configures the hostname by default on boot. Unfortunately
    Ubuntu does not have this functionality, for Ubuntu installations use
    the following steps.
 
-   -  
-
-      Ubuntu
+   -  Ubuntu
 
       The hostname of a Templated VM is set by a custom script in
       `/etc/dhcp/dhclient-exit-hooks.d`, this script first checks if the
@@ -466,64 +404,60 @@ templating.
 
       .. code:: bash
 
-            #!/bin/sh
-            # dhclient change hostname script for Ubuntu
-            oldhostname=$(hostname -s)
-            if [ $oldhostname = 'localhost' ]
-            then
-                sleep 10 # Wait for configuration to be written to disk
-                hostname=$(cat /var/lib/dhcp/dhclient.eth0.leases  |  awk ' /host-name/ { host = $3 }  END { printf host } ' | sed     's/[";]//g' )
-                fqdn="$hostname.$(cat /var/lib/dhcp/dhclient.eth0.leases  |  awk ' /domain-name/ { domain = $3 }  END { printf     domain } ' | sed 's/[";]//g')"
-                ip=$(cat /var/lib/dhcp/dhclient.eth0.leases  |  awk ' /fixed-address/ { lease = $2 }  END { printf lease } ' | sed     's/[";]//g')
-                echo "cloudstack-hostname: Hostname _localhost_ detected. Changing hostname and adding hosts."
-                echo " Hostname: $hostname \n FQDN: $fqdn \n IP: $ip"
-                # Update /etc/hosts
-                awk -v i="$ip" -v f="$fqdn" -v h="$hostname" "/^127/{x=1} !/^127/ && x { x=0; print i,f,h; } { print $0; }" /etc/  hosts > /etc/hosts.dhcp.tmp
-                mv /etc/hosts /etc/hosts.dhcp.bak
-                mv /etc/hosts.dhcp.tmp /etc/hosts
-                # Rename Host
-                echo $hostname > /etc/hostname
-                hostname $hostname
-                # Recreate SSH2
-                export DEBIAN_FRONTEND=noninteractive
-                dpkg-reconfigure openssh-server
-            fi
-            ### End of Script ###
-            
-            chmod 774  /etc/dhcp/dhclient-exit-hooks.d/sethostname
+         #!/bin/sh
+         # dhclient change hostname script for Ubuntu
+         oldhostname=$(hostname -s)
+         if [ $oldhostname = 'localhost' ]
+         then
+             sleep 10 # Wait for configuration to be written to disk
+             hostname=$(cat /var/lib/dhcp/dhclient.eth0.leases  |  awk ' /host-name/ { host = $3 }  END { printf host } ' | sed     's/[";]//g' )
+             fqdn="$hostname.$(cat /var/lib/dhcp/dhclient.eth0.leases  |  awk ' /domain-name/ { domain = $3 }  END { printf     domain } ' | sed 's/[";]//g')"
+             ip=$(cat /var/lib/dhcp/dhclient.eth0.leases  |  awk ' /fixed-address/ { lease = $2 }  END { printf lease } ' | sed     's/[";]//g')
+             echo "cloudstack-hostname: Hostname _localhost_ detected. Changing hostname and adding hosts."
+             echo " Hostname: $hostname \n FQDN: $fqdn \n IP: $ip"
+             # Update /etc/hosts
+             awk -v i="$ip" -v f="$fqdn" -v h="$hostname" "/^127/{x=1} !/^127/ && x { x=0; print i,f,h; } { print $0; }" /etc/  hosts > /etc/hosts.dhcp.tmp
+             mv /etc/hosts /etc/hosts.dhcp.bak
+             mv /etc/hosts.dhcp.tmp /etc/hosts
+             # Rename Host
+             echo $hostname > /etc/hostname
+             hostname $hostname
+             # Recreate SSH2
+             export DEBIAN_FRONTEND=noninteractive
+             dpkg-reconfigure openssh-server
+         fi
+         ### End of Script ###
+         
+         chmod 774  /etc/dhcp/dhclient-exit-hooks.d/sethostname
 
    .. warning:: 
-        The following steps should be run when you are ready to template your Template Master. If the Template Master is rebooted during these steps you will have to run all the steps again. At the end of this process the Template Master should be shutdown and the template created in order to create and deploy the final template.
-
-#. 
+      The following steps should be run when you are ready to template 
+      your Template Master. If the Template Master is rebooted during 
+      these steps you will have to run all the steps again. At the end 
+      of this process the Template Master should be shutdown and the 
+      template created in order to create and deploy the final template.
 
-   **Remove the udev persistent device rules**
+#. **Remove the udev persistent device rules**
 
    This step removes information unique to your Template Master such as
    network MAC addresses, lease files and CD block devices, the files
    are automatically generated on next boot.
 
-   -  
-
-      Ubuntu
+   -  Ubuntu
 
       .. code:: bash
 
-                          rm -f /etc/udev/rules.d/70*
-                          rm -f /var/lib/dhcp/dhclient.*
+         rm -f /etc/udev/rules.d/70*
+         rm -f /var/lib/dhcp/dhclient.*
 
-   -  
-
-      CentOS
+   -  CentOS
 
       .. code:: bash
 
-                          rm -f /etc/udev/rules.d/70*
-                          rm -f /var/lib/dhclient/*
-
-#. 
+         rm -f /etc/udev/rules.d/70*
+         rm -f /var/lib/dhclient/*
 
-   **Remove SSH Keys**
+#. **Remove SSH Keys**
 
    This step is to ensure all your Templated VMs do not have the same
    SSH keys, which would decrease the security of the machines
@@ -531,24 +465,20 @@ templating.
 
    .. code:: bash
 
-                rm -f /etc/ssh/*key*
+      rm -f /etc/ssh/*key*
 
-#. 
-
-   **Cleaning log files**
+#. **Cleaning log files**
 
    It is good practice to remove old logs from the Template Master.
 
    .. code:: bash
 
-                cat /dev/null > /var/log/audit/audit.log 2>/dev/null
-                cat /dev/null > /var/log/wtmp 2>/dev/null
-                logrotate -f /etc/logrotate.conf 2>/dev/null
-                rm -f /var/log/*-* /var/log/*.gz 2>/dev/null
-
-#. 
+      cat /dev/null > /var/log/audit/audit.log 2>/dev/null
+      cat /dev/null > /var/log/wtmp 2>/dev/null
+      logrotate -f /etc/logrotate.conf 2>/dev/null
+      rm -f /var/log/*-* /var/log/*.gz 2>/dev/null
 
-   **Setting hostname**
+#. **Setting hostname**
 
    In order for the Ubuntu DHCP script to function and the CentOS
    dhclient to set the VM hostname they both require the Template
@@ -557,89 +487,81 @@ templating.
 
    .. code:: bash
 
-                hostname localhost
-                echo "localhost" > /etc/hostname
-
-#. 
+      hostname localhost
+      echo "localhost" > /etc/hostname
 
-   **Set user password to expire**
+#. **Set user password to expire**
 
    This step forces the user to change the password of the VM after the
    template has been deployed.
 
    .. code:: bash
 
-                passwd --expire root
+      passwd --expire root
 
-#. 
-
-   **Clearing User History**
+#. **Clearing User History**
 
    The next step clears the bash commands you have just run.
 
    .. code:: bash
 
-                history -c
-                unset HISTFILE
-
-#. 
+      history -c
+      unset HISTFILE
 
-   **Shutdown the VM**
+#. **Shutdown the VM**
 
    Your now ready to shutdown your Template Master and create a
    template!
 
    .. code:: bash
 
-                halt -p
+      halt -p
 
-#. 
-
-   **Create the template!**
+#. **Create the template!**
 
    You are now ready to create the template, for more information see
    `“Creating a Template from an Existing Virtual
    Machine” <#creating-a-template-from-an-existing-virtual-machine>`_.
 
-.. note:: Templated VMs for both Ubuntu and CentOS may require a reboot after provisioning in order to pickup the hostname.
+.. note::
+   Templated VMs for both Ubuntu and CentOS may require a reboot after 
+   provisioning in order to pickup the hostname.
+
 
 Creating a Windows Template
-----------------------------------
+---------------------------
 
 Windows templates must be prepared with Sysprep before they can be
 provisioned on multiple machines. Sysprep allows you to create a generic
 Windows template and avoid any possible SID conflicts.
 
 .. note:: 
-    (XenServer) Windows VMs running on XenServer require PV drivers, which may be provided in the template or added after the VM is created. The PV drivers are necessary for essential management functions such as mounting additional volumes and ISO images, live migration, and graceful shutdown.
+   (XenServer) Windows VMs running on XenServer require PV drivers, which 
+   may be provided in the template or added after the VM is created. The 
+   PV drivers are necessary for essential management functions such as 
+   mounting additional volumes and ISO images, live migration, and 
+   graceful shutdown.
 
 An overview of the procedure is as follows:
 
-#. 
-
-   Upload your Windows ISO.
+#. Upload your Windows ISO.
 
    For more information, see `“Adding an
    ISO” <virtual_machines.html#adding-an-iso>`_.
 
-#. 
-
-   Create a VM Instance with this ISO.
+#. Create a VM Instance with this ISO.
 
    For more information, see `“Creating
    VMs” <virtual_machines.html#creating-vms>`_.
 
-#. 
-
-   Follow the steps in Sysprep for Windows Server 2008 R2 (below) or
+#. Follow the steps in Sysprep for Windows Server 2008 R2 (below) or
    Sysprep for Windows Server 2003 R2, depending on your version of
    Windows Server
 
-#. 
-
-   The preparation steps are complete. Now you can actually create the
+#. The preparation steps are complete. Now you can actually create the
    template as described in Creating the Windows Template.
 
+
 System Preparation for Windows Server 2008 R2
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
@@ -652,50 +574,40 @@ Center <http://www.microsoft.com/en-us/download/details.aspx?id=9085>`_.
 Use the following steps to run sysprep for Windows 2008 R2:
 
 .. note:: 
-    The steps outlined here are derived from the excellent guide by Charity Shelbourne, originally published at `Windows Server 2008 Sysprep Mini-Setup. <http://blogs.technet.com/askcore/archive/2008/10/31/automating-the-oobe-process-during-windows-server-2008-sysprep-mini-setup.aspx>`_
-
-#. 
+   The steps outlined here are derived from the excellent guide by 
+   Charity Shelbourne, originally published at `Windows Server 2008 
+   Sysprep Mini-Setup. 
+   <http://blogs.technet.com/askcore/archive/2008/10/31/automating-the-oobe-process-during-windows-server-2008-sysprep-mini-setup.aspx>`_
 
-   Download and install the Windows AIK
+#. Download and install the Windows AIK
 
-   .. note:: Windows AIK should not be installed on the Windows 2008 R2 VM you just created. Windows AIK should not be part of the template you create. It is only used to create the sysprep answer file.
-
-#. 
+   .. note:: 
+      Windows AIK should not be installed on the Windows 2008 R2 VM you 
+      just created. Windows AIK should not be part of the template you 
+      create. It is only used to create the sysprep answer file.
 
-   Copy the install.wim file in the \\sources directory of the Windows
+#. Copy the install.wim file in the \\sources directory of the Windows
    2008 R2 installation DVD to the hard disk. This is a very large file
    and may take a long time to copy. Windows AIK requires the WIM file
    to be writable.
 
-#. 
-
-   Start the Windows System Image Manager, which is part of the Windows
+#. Start the Windows System Image Manager, which is part of the Windows
    AIK.
 
-#. 
-
-   In the Windows Image pane, right click the Select a Windows image or
+#. In the Windows Image pane, right click the Select a Windows image or
    catalog file option to load the install.wim file you just copied.
 
-#. 
-
-   Select the Windows 2008 R2 Edition.
+#. Select the Windows 2008 R2 Edition.
 
    You may be prompted with a warning that the catalog file cannot be
    opened. Click Yes to create a new catalog file.
 
-#. 
-
-   In the Answer File pane, right click to create a new answer file.
-
-#. 
+#. In the Answer File pane, right click to create a new answer file.
 
-   Generate the answer file from the Windows System Image Manager using
+#. Generate the answer file from the Windows System Image Manager using
    the following steps:
 
-   #. 
-
-      The first page you need to automate is the Language and Country or
+   #. The first page you need to automate is the Language and Country or
       Region Selection page. To automate this, expand Components in your
       Windows Image pane, right-click and add the
       Microsoft-Windows-International-Core setting to Pass 7 oobeSystem.
@@ -709,9 +621,7 @@ Use the following steps to run sysprep for Windows 2008 R2:
 
       |sysmanager.png|
 
-   #. 
-
-      You need to automate the Software License Terms Selection page,
+   #. You need to automate the Software License Terms Selection page,
       otherwise known as the End-User License Agreement (EULA). To do
       this, expand the Microsoft-Windows-Shell-Setup component.
       High-light the OOBE setting, and add the setting to the Pass 7
@@ -719,18 +629,15 @@ Use the following steps to run sysprep for Windows 2008 R2:
 
       |software-license.png|
 
-   #. 
-
-      Make sure the license key is properly set. If you use MAK key, you
+   #. Make sure the license key is properly set. If you use MAK key, you
       can just enter the MAK key on the Windows 2008 R2 VM. You need not
       input the MAK into the Windows System Image Manager. If you use
       KMS host for activation you need not enter the Product Key.
       Details of Windows Volume Activation can be found at
-      `http://technet.microsoft.com/en-us/library/bb892849.aspx <http://technet.microsoft.com/en-us/library/bb892849.aspx>`_
+      `http://technet.microsoft.com/en-us/library/bb892849.aspx 
+      <http://technet.microsoft.com/en-us/library/bb892849.aspx>`_
 
-   #. 
-
-      You need to automate is the Change Administrator Password page.
+   #. You need to automate is the Change Administrator Password page.
       Expand the Microsoft-Windows-Shell-Setup component (if it is not
       still expanded), expand UserAccounts, right-click on
       AdministratorPassword, and add the setting to the Pass 7
@@ -743,140 +650,90 @@ Use the following steps to run sysprep for Windows 2008 R2:
       suit your deployment. The steps above are the minimum needed to
       make Windows unattended setup work.
 
-#. 
-
-   Save the answer file as unattend.xml. You can ignore the warning
+#. Save the answer file as unattend.xml. You can ignore the warning
    messages that appear in the validation window.
 
-#. 
-
-   Copy the unattend.xml file into the c:\\windows\\system32\\sysprep
+#. Copy the unattend.xml file into the c:\\windows\\system32\\sysprep
    directory of the Windows 2008 R2 Virtual Machine
 
-#. 
-
-   Once you place the unattend.xml file in
+#. Once you place the unattend.xml file in
    c:\\windows\\system32\\sysprep directory, you run the sysprep tool as
    follows:
 
    .. code:: bash
 
-       cd c:\Windows\System32\sysprep
-       sysprep.exe /oobe /generalize /shutdown
+      cd c:\Windows\System32\sysprep
+      sysprep.exe /oobe /generalize /shutdown
 
    The Windows 2008 R2 VM will automatically shut down after sysprep is
    complete.
 
+
 System Preparation for Windows Server 2003 R2
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
 Earlier versions of Windows have a different sysprep tool. Follow these
 steps for Windows Server 2003 R2.
 
-#. 
-
-   Extract the content of \\support\\tools\\deploy.cab on the Windows
+#. Extract the content of \\support\\tools\\deploy.cab on the Windows
    installation CD into a directory called c:\\sysprep on the Windows
    2003 R2 VM.
 
-#. 
-
-   Run c:\\sysprep\\setupmgr.exe to create the sysprep.inf file.
-
-   #. 
+#. Run c:\\sysprep\\setupmgr.exe to create the sysprep.inf file.
 
-      Select Create New to create a new Answer File.
+   #. Select Create New to create a new Answer File.
 
-   #. 
+   #. Enter “Sysprep setup” for the Type of Setup.
 
-      Enter “Sysprep setup” for the Type of Setup.
+   #. Select the appropriate OS version and edition.
 
-   #. 
-
-      Select the appropriate OS version and edition.
-
-   #. 
-
-      On the License Agreement screen, select “Yes fully automate the
+   #. On the License Agreement screen, select “Yes fully automate the
       installation”.
 
-   #. 
-
-      Provide your name and organization.
-
-   #. 
-
-      Leave display settings at default.
-
-   #. 
-
-      Set the appropriate time zone.
-
-   #. 
-
-      Provide your product key.
+   #. Provide your name and organization.
 
-   #. 
+   #. Leave display settings at default.
 
-      Select an appropriate license mode for your deployment
+   #. Set the appropriate time zone.
 
-   #. 
+   #. Provide your product key.
 
-      Select “Automatically generate computer name”.
+   #. Select an appropriate license mode for your deployment
 
-   #. 
+   #. Select “Automatically generate computer name”.
 
-      Type a default administrator password. If you enable the password
+   #. Type a default administrator password. If you enable the password
       reset feature, the users will not actually use this password. This
       password will be reset by the instance manager after the guest
       boots up.
 
-   #. 
+   #. Leave Network Components at “Typical Settings”.
 
-      Leave Network Components at “Typical Settings”.
+   #. Select the “WORKGROUP” option.
 
-   #. 
+   #. Leave Telephony options at default.
 
-      Select the “WORKGROUP” option.
+   #. Select appropriate Regional Settings.
 
-   #. 
+   #. Select appropriate language settings.
 
-      Leave Telephony options at default.
+   #. Do not install printers.
 
-   #. 
+   #. Do not specify “Run Once commands”.
 
-      Select appropriate Regional Settings.
+   #. You need not specify an identification string.
 
-   #. 
+   #. Save the Answer File as c:\\sysprep\\sysprep.inf.
 
-      Select appropriate language settings.
-
-   #. 
-
-      Do not install printers.
-
-   #. 
-
-      Do not specify “Run Once commands”.
-
-   #. 
-
-      You need not specify an identification string.
-
-   #. 
-
-      Save the Answer File as c:\\sysprep\\sysprep.inf.
-
-#. 
-
-   Run the following command to sysprep the image:
+#. Run the following command to sysprep the image:
 
    .. code:: bash
 
-       c:\sysprep\sysprep.exe -reseal -mini -activated
+      c:\sysprep\sysprep.exe -reseal -mini -activated
 
    After this step the machine will automatically shut down
 
+
 Importing Amazon Machine Images
 -------------------------------
 
@@ -892,52 +749,46 @@ You need to have a XenServer host with a file-based storage repository
 file has been customized on the Centos/Fedora host.
 
 .. note:: 
-    When copying and pasting a command, be sure the command has pasted as a single line before executing. Some document viewers may introduce unwanted line breaks in copied text.
+   When copying and pasting a command, be sure the command has pasted as 
+   a single line before executing. Some document viewers may introduce 
+   unwanted line breaks in copied text.
 
 To import an AMI:
 
-#. 
-
-   Set up loopback on image file:
+#. Set up loopback on image file:
 
    .. code:: bash
 
-       # mkdir -p /mnt/loop/centos62
-       # mount -o loop  CentOS_6.2_x64 /mnt/loop/centos54
-
-#. 
+      # mkdir -p /mnt/loop/centos62
+      # mount -o loop  CentOS_6.2_x64 /mnt/loop/centos54
 
-   Install the kernel-xen package into the image. This downloads the PV
+#. Install the kernel-xen package into the image. This downloads the PV
    kernel and ramdisk to the image.
 
    .. code:: bash
 
-       # yum -c /mnt/loop/centos54/etc/yum.conf --installroot=/mnt/loop/centos62/ -y install kernel-xen
+      # yum -c /mnt/loop/centos54/etc/yum.conf --installroot=/mnt/loop/centos62/ -y install kernel-xen
 
-#. 
-
-   Create a grub entry in /boot/grub/grub.conf.
+#. Create a grub entry in /boot/grub/grub.conf.
 
    .. code:: bash
 
-       # mkdir -p /mnt/loop/centos62/boot/grub
-       # touch /mnt/loop/centos62/boot/grub/grub.conf
-       # echo "" > /mnt/loop/centos62/boot/grub/grub.conf
-
-#. 
+      # mkdir -p /mnt/loop/centos62/boot/grub
+      # touch /mnt/loop/centos62/boot/grub/grub.conf
+      # echo "" > /mnt/loop/centos62/boot/grub/grub.conf
 
-   Determine the name of the PV kernel that has been installed into the
+#. Determine the name of the PV kernel that has been installed into the
    image.
 
    .. code:: bash
 
-       # cd /mnt/loop/centos62
-       # ls lib/modules/
-       2.6.16.33-xenU  2.6.16-xenU  2.6.18-164.15.1.el5xen  2.6.18-164.6.1.el5.centos.plus  2.6.18-xenU-ec2-v1.0  2.6.21.7-2.fc8xen  2.6.31-302-ec2
-       # ls boot/initrd*
-       boot/initrd-2.6.18-164.6.1.el5.centos.plus.img boot/initrd-2.6.18-164.15.1.el5xen.img
-       # ls boot/vmlinuz*
-       boot/vmlinuz-2.6.18-164.15.1.el5xen  boot/vmlinuz-2.6.18-164.6.1.el5.centos.plus  boot/vmlinuz-2.6.18-xenU-ec2-v1.0  boot/vmlinuz-2.6.21-2952.fc8xen
+      # cd /mnt/loop/centos62
+      # ls lib/modules/
+      2.6.16.33-xenU  2.6.16-xenU  2.6.18-164.15.1.el5xen  2.6.18-164.6.1.el5.centos.plus  2.6.18-xenU-ec2-v1.0  2.6.21.7-2.fc8xen  2.6.31-302-ec2
+      # ls boot/initrd*
+      boot/initrd-2.6.18-164.6.1.el5.centos.plus.img boot/initrd-2.6.18-164.15.1.el5xen.img
+      # ls boot/vmlinuz*
+      boot/vmlinuz-2.6.18-164.15.1.el5xen  boot/vmlinuz-2.6.18-164.6.1.el5.centos.plus  boot/vmlinuz-2.6.18-xenU-ec2-v1.0  boot/vmlinuz-2.6.21-2952.fc8xen
 
    Xen kernels/ramdisk always end with "xen". For the kernel version you
    choose, there has to be an entry for that version under lib/modules,
@@ -945,146 +796,121 @@ To import an AMI:
    the only kernel that satisfies this condition is
    2.6.18-164.15.1.el5xen.
 
-#. 
-
-   Based on your findings, create an entry in the grub.conf file. Below
+#. Based on your findings, create an entry in the grub.conf file. Below
    is an example entry.
 
    .. code:: bash
 
-       default=0
-       timeout=5
-       hiddenmenu
-       title CentOS (2.6.18-164.15.1.el5xen)
-               root (hd0,0)
-               kernel /boot/vmlinuz-2.6.18-164.15.1.el5xen ro root=/dev/xvda 
-               initrd /boot/initrd-2.6.18-164.15.1.el5xen.img
-
-#. 
+      default=0
+      timeout=5
+      hiddenmenu
+      title CentOS (2.6.18-164.15.1.el5xen)
+         root (hd0,0)
+         kernel /boot/vmlinuz-2.6.18-164.15.1.el5xen ro root=/dev/xvda 
+         initrd /boot/initrd-2.6.18-164.15.1.el5xen.img
 
-   Edit etc/fstab, changing “sda1” to “xvda” and changing “sdb” to
+#. Edit etc/fstab, changing “sda1” to “xvda” and changing “sdb” to
    “xvdb”.
 
    .. code:: bash
 
-       # cat etc/fstab
-       /dev/xvda  /         ext3    defaults        1 1
-       /dev/xvdb  /mnt      ext3    defaults        0 0
-       none       /dev/pts  devpts  gid=5,mode=620  0 0
-       none       /proc     proc    defaults        0 0
-       none       /sys      sysfs   defaults        0 0
-
-#. 
+      # cat etc/fstab
+      /dev/xvda  /         ext3    defaults        1 1
+      /dev/xvdb  /mnt      ext3    defaults        0 0
+      none       /dev/pts  devpts  gid=5,mode=620  0 0
+      none       /proc     proc    defaults        0 0
+      none       /sys      sysfs   defaults        0 0
 
-   Enable login via the console. The default console device in a
+#. Enable login via the console. The default console device in a
    XenServer system is xvc0. Ensure that etc/inittab and etc/securetty
    have the following lines respectively:
 
    .. code:: bash
 
-       # grep xvc0 etc/inittab 
-       co:2345:respawn:/sbin/agetty xvc0 9600 vt100-nav
-       # grep xvc0 etc/securetty 
-       xvc0
+      # grep xvc0 etc/inittab 
+      co:2345:respawn:/sbin/agetty xvc0 9600 vt100-nav
+      # grep xvc0 etc/securetty 
+      xvc0
 
-#. 
-
-   Ensure the ramdisk supports PV disk and PV network. Customize this
+#. Ensure the ramdisk supports PV disk and PV network. Customize this
    for the kernel version you have determined above.
 
    .. code:: bash
 
-       # chroot /mnt/loop/centos54
-       # cd /boot/
-       # mv initrd-2.6.18-164.15.1.el5xen.img initrd-2.6.18-164.15.1.el5xen.img.bak
-       # mkinitrd -f /boot/initrd-2.6.18-164.15.1.el5xen.img --with=xennet --preload=xenblk --omit-scsi-modules 2.6.18-164.15.1.el5xen
-
-#. 
+      # chroot /mnt/loop/centos54
+      # cd /boot/
+      # mv initrd-2.6.18-164.15.1.el5xen.img initrd-2.6.18-164.15.1.el5xen.img.bak
+      # mkinitrd -f /boot/initrd-2.6.18-164.15.1.el5xen.img --with=xennet --preload=xenblk --omit-scsi-modules 2.6.18-164.15.1.el5xen
 
-   Change the password.
+#. Change the password.
 
    .. code:: bash
 
-       # passwd
-       Changing password for user root.
-       New UNIX password: 
-       Retype new UNIX password: 
-       passwd: all authentication tokens updated successfully.
+      # passwd
+      Changing password for user root.
+      New UNIX password: 
+      Retype new UNIX password: 
+      passwd: all authentication tokens updated successfully.
 
-#. 
-
-   Exit out of chroot.
+#. Exit out of chroot.
 
    .. code:: bash
 
-       # exit
-
-#. 
+      # exit
 
-   Check `etc/ssh/sshd_config` for lines allowing ssh login using a
+#. Check `etc/ssh/sshd_config` for lines allowing ssh login using a
    password.
 
    .. code:: bash
 
-       # egrep "PermitRootLogin|PasswordAuthentication" /mnt/loop/centos54/etc/ssh/sshd_config  
-       PermitRootLogin yes
-       PasswordAuthentication yes
-
-#. 
+      # egrep "PermitRootLogin|PasswordAuthentication" /mnt/loop/centos54/etc/ssh/sshd_config  
+      PermitRootLogin yes
+      PasswordAuthentication yes
 
-   If you need the template to be enabled to reset passwords from the
+#. If you need the template to be enabled to reset passwords from the
    CloudStack UI or API, install the password change script into the
    image at this point. See :ref:`adding-password-management-to-templates`.
 
-#. 
-
-   Unmount and delete loopback mount.
+#. Unmount and delete loopback mount.
 
    .. code:: bash
 
-       # umount /mnt/loop/centos54
-       # losetup -d /dev/loop0
-
-#. 
+      # umount /mnt/loop/centos54
+      # losetup -d /dev/loop0
 
-   Copy the image file to your XenServer host's file-based storage
+#. Copy the image file to your XenServer host's file-based storage
    repository. In the example below, the Xenserver is "xenhost". This
    XenServer has an NFS repository whose uuid is
    a9c5b8c8-536b-a193-a6dc-51af3e5ff799.
 
    .. code:: bash
 
-       # scp CentOS_6.2_x64 xenhost:/var/run/sr-mount/a9c5b8c8-536b-a193-a6dc-51af3e5ff799/
+      # scp CentOS_6.2_x64 xenhost:/var/run/sr-mount/a9c5b8c8-536b-a193-a6dc-51af3e5ff799/
 
-#. 
-
-   Log in to the Xenserver and create a VDI the same size as the image.
+#. Log in to the Xenserver and create a VDI the same size as the image.
 
    .. code:: bash
 
-       [root@xenhost ~]# cd /var/run/sr-mount/a9c5b8c8-536b-a193-a6dc-51af3e5ff799
-       [root@xenhost a9c5b8c8-536b-a193-a6dc-51af3e5ff799]#  ls -lh CentOS_6.2_x64
-       -rw-r--r-- 1 root root 10G Mar 16 16:49 CentOS_6.2_x64
-       [root@xenhost a9c5b8c8-536b-a193-a6dc-51af3e5ff799]# xe vdi-create virtual-size=10GiB sr-uuid=a9c5b8c8-536b-a193-a6dc-51af3e5ff799 type=user name-label="Centos 6.2 x86_64"
-       cad7317c-258b-4ef7-b207-cdf0283a7923
-
-#. 
+      [root@xenhost ~]# cd /var/run/sr-mount/a9c5b8c8-536b-a193-a6dc-51af3e5ff799
+      [root@xenhost a9c5b8c8-536b-a193-a6dc-51af3e5ff799]#  ls -lh CentOS_6.2_x64
+      -rw-r--r-- 1 root root 10G Mar 16 16:49 CentOS_6.2_x64
+      [root@xenhost a9c5b8c8-536b-a193-a6dc-51af3e5ff799]# xe vdi-create virtual-size=10GiB sr-uuid=a9c5b8c8-536b-a193-a6dc-51af3e5ff799 type=user name-label="Centos 6.2 x86_64"
+      cad7317c-258b-4ef7-b207-cdf0283a7923
 
-   Import the image file into the VDI. This may take 10–20 minutes.
+#. Import the image file into the VDI. This may take 10–20 minutes.
 
    .. code:: bash
 
-       [root@xenhost a9c5b8c8-536b-a193-a6dc-51af3e5ff799]# xe vdi-import filename=CentOS_6.2_x64 uuid=cad7317c-258b-4ef7-b207-cdf0283a7923
-
-#. 
+      [root@xenhost a9c5b8c8-536b-a193-a6dc-51af3e5ff799]# xe vdi-import filename=CentOS_6.2_x64 uuid=cad7317c-258b-4ef7-b207-cdf0283a7923
 
-   Locate a the VHD file. This is the file with the VDI’s UUID as its
+#. Locate a the VHD file. This is the file with the VDI’s UUID as its
    name. Compress it and upload it to your web server.
 
    .. code:: bash
 
-       [root@xenhost a9c5b8c8-536b-a193-a6dc-51af3e5ff799]# bzip2 -c cad7317c-258b-4ef7-b207-cdf0283a7923.vhd > CentOS_6.2_x64.vhd.bz2
-       [root@xenhost a9c5b8c8-536b-a193-a6dc-51af3e5ff799]# scp CentOS_6.2_x64.vhd.bz2 webserver:/var/www/html/templates/
+      [root@xenhost a9c5b8c8-536b-a193-a6dc-51af3e5ff799]# bzip2 -c cad7317c-258b-4ef7-b207-cdf0283a7923.vhd > CentOS_6.2_x64.vhd.bz2
+      [root@xenhost a9c5b8c8-536b-a193-a6dc-51af3e5ff799]# scp CentOS_6.2_x64.vhd.bz2 webserver:/var/www/html/templates/
+
 
 Converting a Hyper-V VM to a Template
 -------------------------------------
@@ -1101,24 +927,16 @@ clone if you still want to use the VM in Hyper-V. Uninstall Hyper-V
 Integration Components and check for any references to device names in
 /etc/fstab:
 
-#. 
-
-   From the linux\_ic/drivers/dist directory, run make uninstall (where
+#. From the linux\_ic/drivers/dist directory, run make uninstall (where
    "linux\_ic" is the path to the copied Hyper-V Integration Components
    files).
 
-#. 
-
-   Restore the original initrd from backup in /boot/ (the backup is
+#. Restore the original initrd from backup in /boot/ (the backup is
    named \*.backup0).
 
-#. 
-
-   Remove the "hdX=noprobe" entries from /boot/grub/menu.lst.
-
-#. 
+#. Remove the "hdX=noprobe" entries from /boot/grub/menu.lst.
 
-   Check /etc/fstab for any partitions mounted by device name. Change
+#. Check /etc/fstab for any partitions mounted by device name. Change
    those entries (if any) to mount by LABEL or UUID. You can get that
    information with the blkid command.
 
@@ -1127,57 +945,35 @@ the VHD into XenServer. There are two options for doing this.
 
 Option one:
 
-#. 
-
-   Import the VHD using XenCenter. In XenCenter, go to Tools>Virtual
+#. Import the VHD using XenCenter. In XenCenter, go to Tools>Virtual
    Appliance Tools>Disk Image Import.
 
-#. 
-
-   Choose the VHD, then click Next.
+#. Choose the VHD, then click Next.
 
-#. 
-
-   Name the VM, choose the NFS VHD SR under Storage, enable "Run
+#. Name the VM, choose the NFS VHD SR under Storage, enable "Run
    Operating System Fixups" and choose the NFS ISO SR.
 
-#. 
-
-   Click Next, then Finish. A VM should be created.
+#. Click Next, then Finish. A VM should be created.
 
 Option two:
 
-#. 
-
-   Run XenConvert, under From choose VHD, under To choose XenServer.
+#. Run XenConvert, under From choose VHD, under To choose XenServer.
    Click Next.
 
-#. 
-
-   Choose the VHD, then click Next.
-
-#. 
+#. Choose the VHD, then click Next.
 
-   Input the XenServer host info, then click Next.
+#. Input the XenServer host info, then click Next.
 
-#. 
-
-   Name the VM, then click Next, then Convert. A VM should be created.
+#. Name the VM, then click Next, then Convert. A VM should be created.
 
 Once you have a VM created from the Hyper-V VHD, prepare it using the
 following steps:
 
-#. 
-
-   Boot the VM, uninstall Hyper-V Integration Services, and reboot.
-
-#. 
+#. Boot the VM, uninstall Hyper-V Integration Services, and reboot.
 
-   Install XenServer Tools, then reboot.
+#. Install XenServer Tools, then reboot.
 
-#. 
-
-   Prepare the VM as desired. For example, run sysprep on Windows VMs.
+#. Prepare the VM as desired. For example, run sysprep on Windows VMs.
    See `“Creating a Windows
    Template” <#creating-a-windows-template>`_.
 
@@ -1186,37 +982,26 @@ Windows VMs, but Linux VMs may not perform optimally. Converting a Linux
 VM to PV mode will require additional steps and will vary by
 distribution.
 
-#. 
-
-   Shut down the VM and copy the VHD from the NFS storage to a web
+#. Shut down the VM and copy the VHD from the NFS storage to a web
    server; for example, mount the NFS share on the web server and copy
    it, or from the XenServer host use sftp or scp to upload it to the
    web server.
 
-#. 
+#. In CloudStack, create a new template using the following values:
 
-   In CloudStack, create a new template using the following values:
+   -  URL. Give the URL for the VHD
 
-   -  
-
-      URL. Give the URL for the VHD
-
-   -  
-
-      OS Type. Use the appropriate OS. For PV mode on CentOS, choose
+   -  OS Type. Use the appropriate OS. For PV mode on CentOS, choose
       Other PV (32-bit) or Other PV (64-bit). This choice is available
       only for XenServer.
 
-   -  
-
-      Hypervisor. XenServer
-
-   -  
+   -  Hypervisor. XenServer
 
-      Format. VHD
+   -  Format. VHD
 
 The template will be created, and you can create instances from it.
 
+
 .. _adding-password-management-to-templates:
 
 Adding Password Management to Your Templates
@@ -1243,43 +1028,36 @@ any password changes.
 If the script is unable to contact the virtual router during instance
 boot it will not set the password but boot will continue normally.
 
+
 Linux OS Installation
 ~~~~~~~~~~~~~~~~~~~~~
 
 Use the following steps to begin the Linux OS installation:
 
-#. 
-
-   Download the script file cloud-set-guest-password:
-
-   -  
-
-      `http://download.cloud.com/templates/4.2/bindir/cloud-set-guest-password.in <http://download.cloud.com/templates/4.2/bindir/cloud-set-guest-password.in>`_
+#. Download the script file cloud-set-guest-password:
 
-#. 
+   -  `http://download.cloud.com/templates/4.2/bindir/cloud-set-guest-password.in 
+      <http://download.cloud.com/templates/4.2/bindir/cloud-set-guest-password.in>`_
 
-   Copy this file to /etc/init.d.
+#. Copy this file to /etc/init.d.
 
    On some Linux distributions, copy the file to ``/etc/rc.d/init.d``.
 
-#. 
-
-   Run the following command to make the script executable:
+#. Run the following command to make the script executable:
 
    .. code:: bash
 
-       chmod +x /etc/init.d/cloud-set-guest-password
-
-#. 
+      chmod +x /etc/init.d/cloud-set-guest-password
 
-   Depending on the Linux distribution, continue with the appropriate
+#. Depending on the Linux distribution, continue with the appropriate
    step.
 
    On Fedora, CentOS/RHEL, and Debian, run:
 
    .. code:: bash
 
-       chkconfig --add cloud-set-guest-password
+      chkconfig --add cloud-set-guest-password
+
 
 Windows OS Installation
 ~~~~~~~~~~~~~~~~~~~~~~~
@@ -1288,6 +1066,7 @@ Download the installer, CloudInstanceManager.msi, from the `Download
 page <http://sourceforge.net/projects/cloudstack/files/Password%20Management%20Scripts/CloudInstanceManager.msi/download>`_
 and run the installer in the newly created Windows VM.
 
+
 Deleting Templates
 ------------------
 
@@ -1301,6 +1080,7 @@ When templates are deleted, the VMs instantiated from them will continue
 to run. However, new VMs cannot be created based on the deleted
 template.
 
+
 .. |sysmanager.png| image:: _static/images/sysmanager.png
    :alt: System Image Manager
 .. |software-license.png| image:: _static/images/software-license.png

http://git-wip-us.apache.org/repos/asf/cloudstack-docs-admin/blob/68c20df4/source/troubleshooting.rst
----------------------------------------------------------------------
diff --git a/source/troubleshooting.rst b/source/troubleshooting.rst
index df5782c..290622c 100644
--- a/source/troubleshooting.rst
+++ b/source/troubleshooting.rst
@@ -13,6 +13,7 @@
    specific language governing permissions and limitations
    under the License.
    
+
 TroubleShooting
 ===============
 
@@ -26,13 +27,13 @@ messages. We recommend this command to find the problematic output in
 the Management Server log:.
 
 .. note:: 
-    When copying and pasting a command, be sure the command has pasted as a
-    single line before executing. Some document viewers may introduce
-    unwanted line breaks in copied text.
+   When copying and pasting a command, be sure the command has pasted as a
+   single line before executing. Some document viewers may introduce
+   unwanted line breaks in copied text.
 
 .. code:: bash
 
-            grep -i -E 'exception|unable|fail|invalid|leak|warn|error' /var/log/cloudstack/management/management-server.log
+   grep -i -E 'exception|unable|fail|invalid|leak|warn|error' /var/log/cloudstack/management/management-server.log
 
 The CloudStack processes requests with a Job ID. If you find an error in
 the logs and you are interested in debugging the issue you can grep for
@@ -41,14 +42,14 @@ find the following ERROR message:
 
 .. code:: bash
 
-            2010-10-04 13:49:32,595 ERROR [cloud.vm.UserVmManagerImpl] (Job-Executor-11:job-1076) Unable to find any host for [User|i-8-42-VM-untagged]
+   2010-10-04 13:49:32,595 ERROR [cloud.vm.UserVmManagerImpl] (Job-Executor-11:job-1076) Unable to find any host for [User|i-8-42-VM-untagged]
 
 Note that the job ID is 1076. You can track back the events relating to
 job 1076 with the following grep:
 
 .. code:: bash
 
-            grep "job-1076)" management-server.log
+   grep "job-1076)" management-server.log
 
 The CloudStack Agent Server logs its activities in `/var/log/cloudstack/agent/`.
 
@@ -62,6 +63,7 @@ Symptom
 Loss of existing data on primary storage which has been exposed as a
 Linux NFS server export on an iSCSI volume.
 
+
 Cause
 ~~~~~
 
@@ -69,6 +71,7 @@ It is possible that a client from outside the intended pool has mounted
 the storage. When this occurs, the LVM is wiped and all data in the
 volume is lost
 
+
 Solution
 ~~~~~~~~
 
@@ -77,16 +80,18 @@ allowed access by specifying a subnet mask. For example:
 
 .. code:: bash
 
-    echo “/export 192.168.1.0/24(rw,async,no_root_squash,no_subtree_check)” > /etc/exports
+   echo “/export 192.168.1.0/24(rw,async,no_root_squash,no_subtree_check)” > /etc/exports
 
 Adjust the above command to suit your deployment needs.
 
+
 More Information
 ~~~~~~~~~~~~~~~~
 
 See the export procedure in the "Secondary Storage" section of the
 CloudStack Installation Guide
 
+
 Recovering a Lost Virtual Router
 --------------------------------
 
@@ -96,11 +101,13 @@ Symptom
 A virtual router is running, but the host is disconnected. A virtual
 router no longer functions as expected.
 
+
 Cause
 ~~~~~
 
 The Virtual router is lost or down.
 
+
 Solution
 ~~~~~~~~
 
@@ -109,20 +116,14 @@ functions as expected, destroy it. You must create one afresh while
 keeping the backup router up and running (it is assumed this is in a
 redundant router setup):
 
--  
-
-   Force stop the router. Use the stopRouter API with forced=true
+-  Force stop the router. Use the stopRouter API with forced=true
    parameter to do so.
 
--  
-
-   Before you continue with destroying this router, ensure that the
+-  Before you continue with destroying this router, ensure that the
    backup router is running. Otherwise the network connection will be
    lost.
 
--  
-
-   Destroy the router by using the destroyRouter API.
+-  Destroy the router by using the destroyRouter API.
 
 Recreate the missing router by using the restartNetwork API with
 cleanup=false parameter. For more information about redundant router
@@ -131,6 +132,7 @@ setup, see Creating a New Network Offering.
 For more information about the API syntax, see the API Reference at
 `http://cloudstack.apache.org/docs/api/ <http://cloudstack.apache.org/docs/api/>`_.
 
+
 Maintenance mode not working on vCenter
 ---------------------------------------
 
@@ -139,12 +141,14 @@ Symptom
 
 Host was placed in maintenance mode, but still appears live in vCenter.
 
+
 Cause
 ~~~~~~
 
 The CloudStack administrator UI was used to place the host in scheduled
 maintenance mode. This mode is separate from vCenter's maintenance mode.
 
+
 Solution
 ~~~~~~~~
 
@@ -159,6 +163,7 @@ Symptom
 
 When attempting to create a VM, the VM will not deploy.
 
+
 Cause
 ~~~~~
 
@@ -166,11 +171,13 @@ If the template was created by uploading an OVA file that was created
 using vSphere Client, it is possible the OVA contained an ISO image. If
 it does, the deployment of VMs from the template will fail.
 
+
 Solution
 ~~~~~~~~
 
 Remove the ISO and re-upload the template.
 
+
 Unable to power on virtual machine on VMware
 --------------------------------------------
 
@@ -179,17 +186,12 @@ Symptom
 
 Virtual machine does not power on. You might see errors like:
 
--  
-
-   Unable to open Swap File
-
--  
+-  Unable to open Swap File
 
-   Unable to access a file since it is locked
+-  Unable to access a file since it is locked
 
--  
+-  Unable to access Virtual machine configuration
 
-   Unable to access Virtual machine configuration
 
 Cause
 ~~~~~
@@ -200,13 +202,15 @@ Sometimes the files are not unlocked when the virtual machine is powered
 off. When a virtual machine attempts to power on, it can not access
 these critical files, and the virtual machine is unable to power on.
 
+
 Solution
 ~~~~~~~~
 
 See the following:
 
-`VMware Knowledge Base
-Article <http://kb.vmware.com/selfservice/microsites/search.do?language=en_US&cmd=displayKC&externalId=10051/>`_
+`VMware Knowledge Base Article 
+<http://kb.vmware.com/selfservice/microsites/search.do?language=en_US&cmd=displayKC&externalId=10051/>`_
+
 
 Load balancer rules fail after changing network offering
 --------------------------------------------------------
@@ -217,6 +221,7 @@ Symptom
 After changing the network offering on a network, load balancer rules
 stop working.
 
+
 Cause
 ~~~~~
 
@@ -225,18 +230,21 @@ that includes an external load balancer device such as NetScaler, and
 later the network service offering changed to one that uses the
 CloudStack virtual router.
 
+
 Solution
 ~~~~~~~~
 
 Create a firewall rule on the virtual router for each of your existing
 load balancing rules so that they continue to function.
 
+
 Troubleshooting Internet Traffic
 --------------------------------
 
 Below are a few troubleshooting steps to check whats going wrong with your
 network...
 
+
 Trouble Shooting Steps
 ~~~~~~~~~~~~~~~~~~~~~~
 
@@ -248,17 +256,17 @@ Trouble Shooting Steps
 
    ::
 
-     kvm1 ~$ vconfig add eth0 64
-     kvm1 ~$ ifconfig eth0.64 1.2.3.4 netmask 255.255.255.0 up
-     kvm1 ~$ ping 1.2.3.5
+      kvm1 ~$ vconfig add eth0 64
+      kvm1 ~$ ifconfig eth0.64 1.2.3.4 netmask 255.255.255.0 up
+      kvm1 ~$ ping 1.2.3.5
 
    On *host2 (kvm2)*
 
    ::
 
-     kvm2 ~$ vconfig add eth0 64
-     kvm2 ~$ ifconfig eth0.64 1.2.3.5 netmask 255.255.255.0 up
-     kvm2 ~$ ping 1.2.3.4
+      kvm2 ~$ vconfig add eth0 64
+      kvm2 ~$ ifconfig eth0.64 1.2.3.5 netmask 255.255.255.0 up
+      kvm2 ~$ ping 1.2.3.4
 
    If the pings dont work, run *tcpdump(8)* all over the place to check
    who is gobbling up the packets. Ultimately, if the switches are not
@@ -282,33 +290,33 @@ Trouble Shooting Steps
 
    ::
 
-     acs-manager ~$ cloudmonkey list traffictypes physicalnetworkid=41cb7ff6-8eb2-4630-b577-1da25e0e1145
-     count = 4
-     traffictype:
-     id = cd0915fe-a660-4a82-9df7-34aebf90003e
-     kvmnetworklabel = cloudbr0
-     physicalnetworkid = 41cb7ff6-8eb2-4630-b577-1da25e0e1145
-     traffictype = Guest
-     xennetworklabel = MGMT
-     ========================================================
-     id = f5524b8f-6605-41e4-a982-81a356b2a196
-     kvmnetworklabel = cloudbr0
-     physicalnetworkid = 41cb7ff6-8eb2-4630-b577-1da25e0e1145
-     traffictype = Management
-     xennetworklabel = MGMT
-     ========================================================
-     id = 266bad0e-7b68-4242-b3ad-f59739346cfd
-     kvmnetworklabel = cloudbr0
-     physicalnetworkid = 41cb7ff6-8eb2-4630-b577-1da25e0e1145
-     traffictype = Public
-     xennetworklabel = MGMT
-     ========================================================
-     id = a2baad4f-7ce7-45a8-9caf-a0b9240adf04
-     kvmnetworklabel = cloudbr0
-     physicalnetworkid = 41cb7ff6-8eb2-4630-b577-1da25e0e1145
-     traffictype = Storage
-     xennetworklabel = MGMT
-     =========================================================
+      acs-manager ~$ cloudmonkey list traffictypes physicalnetworkid=41cb7ff6-8eb2-4630-b577-1da25e0e1145
+      count = 4
+      traffictype:
+      id = cd0915fe-a660-4a82-9df7-34aebf90003e
+      kvmnetworklabel = cloudbr0
+      physicalnetworkid = 41cb7ff6-8eb2-4630-b577-1da25e0e1145
+      traffictype = Guest
+      xennetworklabel = MGMT
+      ========================================================
+      id = f5524b8f-6605-41e4-a982-81a356b2a196
+      kvmnetworklabel = cloudbr0
+      physicalnetworkid = 41cb7ff6-8eb2-4630-b577-1da25e0e1145
+      traffictype = Management
+      xennetworklabel = MGMT
+      ========================================================
+      id = 266bad0e-7b68-4242-b3ad-f59739346cfd
+      kvmnetworklabel = cloudbr0
+      physicalnetworkid = 41cb7ff6-8eb2-4630-b577-1da25e0e1145
+      traffictype = Public
+      xennetworklabel = MGMT
+      ========================================================
+      id = a2baad4f-7ce7-45a8-9caf-a0b9240adf04
+      kvmnetworklabel = cloudbr0
+      physicalnetworkid = 41cb7ff6-8eb2-4630-b577-1da25e0e1145
+      traffictype = Storage
+      xennetworklabel = MGMT
+      =========================================================
   
 #. KVM traffic labels require to be named as *"cloudbr0"*, *"cloudbr2"*,
    *"cloudbrN"* etc and the corresponding bridge must exist on the KVM
@@ -319,15 +327,15 @@ Trouble Shooting Steps
 
    ::
 
-    kvm1 ~$ ifconfig cloudbr0
-    cloudbr0  Link encap:Ethernet  HWaddr 00:0C:29:EF:7D:78  
-          inet addr:192.168.44.22  Bcast:192.168.44.255  Mask:255.255.255.0
-          inet6 addr: fe80::20c:29ff:feef:7d78/64 Scope:Link
-          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
-          RX packets:92435 errors:0 dropped:0 overruns:0 frame:0
-          TX packets:50596 errors:0 dropped:0 overruns:0 carrier:0
-          collisions:0 txqueuelen:0 
-          RX bytes:94985932 (90.5 MiB)  TX bytes:61635793 (58.7 MiB)
+      kvm1 ~$ ifconfig cloudbr0
+      cloudbr0  Link encap:Ethernet  HWaddr 00:0C:29:EF:7D:78  
+         inet addr:192.168.44.22  Bcast:192.168.44.255  Mask:255.255.255.0
+         inet6 addr: fe80::20c:29ff:feef:7d78/64 Scope:Link
+         UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
+         RX packets:92435 errors:0 dropped:0 overruns:0 frame:0
+         TX packets:50596 errors:0 dropped:0 overruns:0 carrier:0
+         collisions:0 txqueuelen:0 
+         RX bytes:94985932 (90.5 MiB)  TX bytes:61635793 (58.7 MiB)
 
 #. The Virtual Router, SSVM, CPVM *public* interface would be bridged to
    a physical interface on the host. In the example below, *cloudbr0* is
@@ -341,22 +349,22 @@ Trouble Shooting Steps
 
    ::
 
-     kvm-host1 ~$ brctl show
-     bridge name  bridge id           STP enabled interfaces
-     breth0-64    8000.000c29ef7d78   no          eth0.64
-                                                  vnet2
-     cloud0       8000.fe00a9fe0219   no          vnet0
-     cloudbr0     8000.000c29ef7d78   no          eth0
-                                                  vnet1
-                                                  vnet3
-     virbr0       8000.5254008e321a   yes         virbr0-nic
+      kvm-host1 ~$ brctl show
+      bridge name  bridge id           STP enabled interfaces
+      breth0-64    8000.000c29ef7d78   no          eth0.64
+                                                   vnet2
+      cloud0       8000.fe00a9fe0219   no          vnet0
+      cloudbr0     8000.000c29ef7d78   no          eth0
+                                                   vnet1
+                                                   vnet3
+      virbr0       8000.5254008e321a   yes         virbr0-nic
 
    ::
 
-     xenserver1 ~$ brctl show
-     bridge name  bridge id           STP enabled interfaces
-     xapi0    0000.e2b76d0a1149       no          vif1.0
-     xenbr0   0000.000c299b54dc       no          eth0
+      xenserver1 ~$ brctl show
+      bridge name  bridge id           STP enabled interfaces
+      xapi0    0000.e2b76d0a1149       no          vif1.0
+      xenbr0   0000.000c299b54dc       no          eth0
                                                   xapi1
                                                   vif1.1
                                                   vif1.2
@@ -367,11 +375,11 @@ Trouble Shooting Steps
 
    ::
 
-     xenserver1 ~$ xe network-list 
-     uuid ( RO)                : aaa-bbb-ccc-ddd
-               name-label ( RW): MGMT
-         name-description ( RW): 
-                   bridge ( RO): xenbr0
+      xenserver1 ~$ xe network-list 
+      uuid ( RO)                : aaa-bbb-ccc-ddd
+                name-label ( RW): MGMT
+          name-description ( RW): 
+                    bridge ( RO): xenbr0
 
 
 #. The Internet would be accessible from both the SSVM and CPVM
@@ -385,25 +393,25 @@ Trouble Shooting Steps
 
    ::
 
-     root@s-1-VM:~# ping -c 3 google.com
-     PING google.com (74.125.236.164): 56 data bytes
-     64 bytes from 74.125.236.164: icmp_seq=0 ttl=55 time=26.932 ms
-     64 bytes from 74.125.236.164: icmp_seq=1 ttl=55 time=29.156 ms
-     64 bytes from 74.125.236.164: icmp_seq=2 ttl=55 time=25.000 ms
-     --- google.com ping statistics ---
-     3 packets transmitted, 3 packets received, 0% packet loss
-     round-trip min/avg/max/stddev = 25.000/27.029/29.156/1.698 ms
+      root@s-1-VM:~# ping -c 3 google.com
+      PING google.com (74.125.236.164): 56 data bytes
+      64 bytes from 74.125.236.164: icmp_seq=0 ttl=55 time=26.932 ms
+      64 bytes from 74.125.236.164: icmp_seq=1 ttl=55 time=29.156 ms
+      64 bytes from 74.125.236.164: icmp_seq=2 ttl=55 time=25.000 ms
+      --- google.com ping statistics ---
+      3 packets transmitted, 3 packets received, 0% packet loss
+      round-trip min/avg/max/stddev = 25.000/27.029/29.156/1.698 ms
 
    ::
 
-     root@v-2-VM:~# ping -c 3 google.com
-     PING google.com (74.125.236.164): 56 data bytes
-     64 bytes from 74.125.236.164: icmp_seq=0 ttl=55 time=32.125 ms
-     64 bytes from 74.125.236.164: icmp_seq=1 ttl=55 time=26.324 ms
-     64 bytes from 74.125.236.164: icmp_seq=2 ttl=55 time=37.001 ms
-     --- google.com ping statistics ---
-     3 packets transmitted, 3 packets received, 0% packet loss
-     round-trip min/avg/max/stddev = 26.324/31.817/37.001/4.364 ms
+      root@v-2-VM:~# ping -c 3 google.com
+      PING google.com (74.125.236.164): 56 data bytes
+      64 bytes from 74.125.236.164: icmp_seq=0 ttl=55 time=32.125 ms
+      64 bytes from 74.125.236.164: icmp_seq=1 ttl=55 time=26.324 ms
+      64 bytes from 74.125.236.164: icmp_seq=2 ttl=55 time=37.001 ms
+      --- google.com ping statistics ---
+      3 packets transmitted, 3 packets received, 0% packet loss
+      round-trip min/avg/max/stddev = 26.324/31.817/37.001/4.364 ms
 
 
 #. The Virtual Router (VR) should also be able to reach the Internet
@@ -412,14 +420,14 @@ Trouble Shooting Steps
 
    ::
 
-     root@r-4-VM:~# ping -c 3 google.com
-     PING google.com (74.125.236.164): 56 data bytes
-     64 bytes from 74.125.236.164: icmp_seq=0 ttl=55 time=28.098 ms
-     64 bytes from 74.125.236.164: icmp_seq=1 ttl=55 time=34.785 ms
-     64 bytes from 74.125.236.164: icmp_seq=2 ttl=55 time=69.179 ms
-     --- google.com ping statistics ---
-     3 packets transmitted, 3 packets received, 0% packet loss
-     round-trip min/avg/max/stddev = 28.098/44.021/69.179/17.998 ms
+      root@r-4-VM:~# ping -c 3 google.com
+      PING google.com (74.125.236.164): 56 data bytes
+      64 bytes from 74.125.236.164: icmp_seq=0 ttl=55 time=28.098 ms
+      64 bytes from 74.125.236.164: icmp_seq=1 ttl=55 time=34.785 ms
+      64 bytes from 74.125.236.164: icmp_seq=2 ttl=55 time=69.179 ms
+      --- google.com ping statistics ---
+      3 packets transmitted, 3 packets received, 0% packet loss
+      round-trip min/avg/max/stddev = 28.098/44.021/69.179/17.998 ms
 
 #. However, the Virtual Router's (VR) Source NAT Public IP address
    **WONT** be reachable until appropriate Ingress rules are
@@ -443,5 +451,6 @@ Trouble Shooting Steps
 In a vast majority of the cases, the problem has turned out to be at the
 switching layer where the L3 switches were configured incorrectly.
 
-This section was contibuted by Shanker Balan and was originally published on `Shapeblue's blog <http://shankerbalan.net/blog/internet-not-working-on-cloudstack-vms/>`_
+This section was contibuted by Shanker Balan and was originally published on 
+`Shapeblue's blog <http://shankerbalan.net/blog/internet-not-working-on-cloudstack-vms/>`_
 

http://git-wip-us.apache.org/repos/asf/cloudstack-docs-admin/blob/68c20df4/source/tuning.rst
----------------------------------------------------------------------
diff --git a/source/tuning.rst b/source/tuning.rst
index 5ff2584..75b0954 100644
--- a/source/tuning.rst
+++ b/source/tuning.rst
@@ -20,6 +20,7 @@ Tuning
 This section provides tips on how to improve the performance of your
 cloud.
 
+
 Performance Monitoring
 ----------------------
 
@@ -28,55 +29,47 @@ administrators. This allows the user to monitor their utilization of
 resources and determine when it is appropriate to choose a more powerful
 service offering or larger disk.
 
+
 Increase Management Server Maximum Memory
 -----------------------------------------
 
 If the Management Server is subject to high demand, the default maximum
 JVM memory allocation can be insufficient. To increase the memory:
 
-#. 
-
-   Edit the Tomcat configuration file:
+#. Edit the Tomcat configuration file:
 
    .. code:: bash
 
-       /etc/cloudstack/management/tomcat6.conf
+      /etc/cloudstack/management/tomcat6.conf
 
-#. 
-
-   Change the command-line parameter -XmxNNNm to a higher value of N.
+#. Change the command-line parameter -XmxNNNm to a higher value of N.
 
    For example, if the current value is -Xmx128m, change it to -Xmx1024m
    or higher.
 
-#. 
-
-   To put the new setting into effect, restart the Management Server.
+#. To put the new setting into effect, restart the Management Server.
 
    .. code:: bash
 
-       # service cloudstack-management restart
+      # service cloudstack-management restart
 
 For more information about memory issues, see "FAQ: Memory" at `Tomcat
 Wiki. <http://wiki.apache.org/tomcat/FAQ/Memory>`_
 
+
 Set Database Buffer Pool Size
 -----------------------------
 
 It is important to provide enough memory space for the MySQL database to
 cache data and indexes:
 
-#. 
-
-   Edit the MySQL configuration file:
+#. Edit the MySQL configuration file:
 
    .. code:: bash
 
-       /etc/my.cnf
-
-#. 
+      /etc/my.cnf
 
-   Insert the following line in the [mysqld] section, below the datadir
+#. Insert the following line in the [mysqld] section, below the datadir
    line. Use a value that is appropriate for your situation. We
    recommend setting the buffer pool at 40% of RAM if MySQL is on the
    same server as the management server or 70% of RAM if MySQL has a
@@ -85,20 +78,19 @@ cache data and indexes:
 
    .. code:: bash
 
-       innodb_buffer_pool_size=700M
-
-#. 
+      innodb_buffer_pool_size=700M
 
-   Restart the MySQL service.
+#. Restart the MySQL service.
 
    .. code:: bash
 
-       # service mysqld restart
+      # service mysqld restart
 
 For more information about the buffer pool, see "The InnoDB Buffer Pool"
 at `MySQL Reference
 Manual <http://dev.mysql.com/doc/refman/5.5/en/innodb-buffer-pool.html>`_.
 
+
 Set and Monitor Total VM Limits per Host
 ----------------------------------------
 
@@ -119,6 +111,7 @@ cluster is at most (N-1) \* (per-host-limit). Once a cluster reaches
 this number of VMs, use the CloudStack UI to disable allocation of more
 VMs to the cluster.
 
+
 Configure XenServer dom0 Memory
 -------------------------------
 

http://git-wip-us.apache.org/repos/asf/cloudstack-docs-admin/blob/68c20df4/source/ui.rst
----------------------------------------------------------------------
diff --git a/source/ui.rst b/source/ui.rst
index 9b63600..c2d6bf3 100644
--- a/source/ui.rst
+++ b/source/ui.rst
@@ -13,6 +13,7 @@
    specific language governing permissions and limitations
    under the License.
 
+
 User Interface
 ==============
 
@@ -28,7 +29,7 @@ management server IP address)
 
 .. sourcecode:: bash
 
-    http://<management-server-ip-address>:8080/client
+   http://<management-server-ip-address>:8080/client
 
 On a fresh Management Server installation, a guided tour splash screen
 appears. On later visits, you’ll see a login screen where you specify
@@ -36,8 +37,8 @@ the following to proceed to your Dashboard:
 
 Username -> The user ID of your account. The default username is admin.
 
-Password -> The password associated with the user ID. The password for the default
-username is password.
+Password -> The password associated with the user ID. The password for 
+the default username is password.
 
 Domain -> If you are a root user, leave this field blank.
 
@@ -52,6 +53,7 @@ enter Comp1/sales.
 For more guidance about the choices that appear when you log in to this
 UI, see Logging In as the Root Administrator.
 
+
 End User's UI Overview
 ~~~~~~~~~~~~~~~~~~~~~~
 
@@ -61,6 +63,7 @@ data volumes and snapshots, guest networks, and IP addresses. If the
 user is a member or administrator of one or more CloudStack projects,
 the UI can provide a project-oriented view.
 
+
 Root Administrator's UI Overview
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
@@ -74,6 +77,7 @@ screen and the navigation bar on the left provide access to a variety of
 administrative functions. The root administrator can also use the UI to
 perform all the same tasks that are present in the end-user’s UI.
 
+
 Logging In as the Root Administrator
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
@@ -81,26 +85,20 @@ After the Management Server software is installed and running, you can
 run the CloudStack user interface. This UI is there to help you
 provision, view, and manage your cloud infrastructure.
 
-#. 
-
-   Open your favorite Web browser and go to this URL. Substitute the IP
+#. Open your favorite Web browser and go to this URL. Substitute the IP
    address of your own Management Server:
 
    .. sourcecode:: bash
 
-       http://<management-server-ip-address>:8080/client
+      http://<management-server-ip-address>:8080/client
 
    After logging into a fresh Management Server installation, a guided
    tour splash screen appears. On later visits, you’ll be taken directly
    into the Dashboard.
 
-#. 
+#. If you see the first-time splash screen, choose one of the following.
 
-   If you see the first-time splash screen, choose one of the following.
-
-   -  
-
-      **Continue with basic setup.** Choose this if you're just trying
+   -  **Continue with basic setup.** Choose this if you're just trying
       CloudStack, and you want a guided walkthrough of the simplest
       possible configuration so that you can get started right away.
       We'll help you set up a cloud with the following features: a
@@ -112,9 +110,7 @@ provision, view, and manage your cloud infrastructure.
       information you need, but if you want just a bit more detail, you
       can follow along in the Trial Installation Guide.
 
-   -  
-
-      **I have used CloudStack before.** Choose this if you have already
+   -  **I have used CloudStack before.** Choose this if you have already
       gone through a design phase and planned a more sophisticated
       deployment, or you are ready to start scaling up a trial cloud
       that you set up earlier with the basic setup screens. In the
@@ -126,15 +122,17 @@ provision, view, and manage your cloud infrastructure.
 
       The root administrator Dashboard appears.
 
-#. 
-
-   You should set a new root administrator password. If you chose basic
+#. You should set a new root administrator password. If you chose basic
    setup, you’ll be prompted to create a new password right away. If you
    chose experienced user, use the steps in :ref:`changing-root-password`.
 
-.. warning:: 
-
-   You are logging in as the root administrator. This account manages the CloudStack deployment, including physical infrastructure. The root administrator can modify configuration settings to change basic functionality, create or delete user accounts, and take many actions that should be performed only by an authorized person. Please change the default password to a new, unique password.
+.. warning::
+   You are logging in as the root administrator. This account manages the 
+   CloudStack deployment, including physical infrastructure. The root 
+   administrator can modify configuration settings to change basic 
+   functionality, create or delete user accounts, and take many actions 
+   that should be performed only by an authorized person. Please change 
+   the default password to a new, unique password.
 
 .. _changing-root-password:
 
@@ -150,43 +148,27 @@ many actions that should be performed only by an authorized person. When
 first installing CloudStack, be sure to change the default password to a
 new, unique value.
 
-#. 
-
-   Open your favorite Web browser and go to this URL. Substitute the IP
+#. Open your favorite Web browser and go to this URL. Substitute the IP
    address of your own Management Server:
 
    .. sourcecode:: bash
 
-       http://<management-server-ip-address>:8080/client
-
-#. 
+      http://<management-server-ip-address>:8080/client
 
-   Log in to the UI using the current root user ID and password. The
+#. Log in to the UI using the current root user ID and password. The
    default is admin, password.
 
-#. 
-
-   Click Accounts.
-
-#. 
-
-   Click the admin account name.
-
-#. 
-
-   Click View Users.
-
-#. 
+#. Click Accounts.
 
-   Click the admin user name.
+#. Click the admin account name.
 
-#. 
+#. Click View Users.
 
-   Click the Change Password button. |change-password.png|
+#. Click the admin user name.
 
-#. 
+#. Click the Change Password button. |change-password.png|
 
-   Type the new password, and click OK.
+#. Type the new password, and click OK.
 
 
 .. |change-password.png| image:: _static/images/change-password.png