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/01/27 22:12:14 UTC
[9/9] git commit: break file into chapters
break file into chapters
Project: http://git-wip-us.apache.org/repos/asf/cloudstack-docs-install/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack-docs-install/commit/b1401796
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack-docs-install/tree/b1401796
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack-docs-install/diff/b1401796
Branch: refs/heads/master
Commit: b1401796de624934d81de5c5ce7db94c7ff6e0ea
Parents: 9593606
Author: Sebastien Goasguen <ru...@gmail.com>
Authored: Mon Jan 27 16:11:46 2014 -0500
Committer: Sebastien Goasguen <ru...@gmail.com>
Committed: Mon Jan 27 16:11:46 2014 -0500
----------------------------------------------------------------------
source/aws_interface.rst | 641 +
source/best_practices.rst | 204 +
source/building_from_source.rst | 548 +
source/choosing_deployment_architecture.rst | 404 +
source/concepts.rst | 313 +
source/config_params.rst | 445 +
source/configuration.rst | 2265 +++
source/hypervisor_installation.rst | 4466 +++++
source/index.rst | 103 +-
source/installation.rst | 20303 +--------------------
source/managing_networks.rst | 7067 +++++++
source/network_setup.rst | 1547 ++
source/optional_installation.rst | 366 +
source/storage_setup.rst | 376 +
source/terminology.rst | 644 +
source/ui.rst | 443 +
16 files changed, 20684 insertions(+), 19451 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cloudstack-docs-install/blob/b1401796/source/aws_interface.rst
----------------------------------------------------------------------
diff --git a/source/aws_interface.rst b/source/aws_interface.rst
new file mode 100644
index 0000000..e101769
--- /dev/null
+++ b/source/aws_interface.rst
@@ -0,0 +1,641 @@
+.. Licensed to the Apache Software Foundation (ASF) under one
+ or more contributor license agreements. See the NOTICE file
+ distributed with this work for additional information#
+ regarding copyright ownership. The ASF licenses this file
+ to you under the Apache License, Version 2.0 (the
+ "License"); you may not use this file except in compliance
+ with the License. You may obtain a copy of the License at
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing,
+ software distributed under the License is distributed on an
+ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ KIND, either express or implied. See the License for the
+ specific language governing permissions and limitations
+ under the License.
+
+
+Amazon Web Services Interface
+============================
+
+Amazon Web Services Compatible Interface
+----------------------------------------
+
+CloudStack can translate Amazon Web Services (AWS) API calls to native
+CloudStack API calls so that users can continue using existing
+AWS-compatible tools. This translation service runs as a separate web
+application in the same tomcat server as the management server of
+CloudStack, listening on a different port. The Amazon Web Services (AWS)
+compatible interface provides the EC2 SOAP and Query APIs as well as the
+S3 REST API.
+
+.. note:: This service was previously enabled by separate software called
+CloudBridge. It is now fully integrated with the CloudStack management
+server.
+
+.. warning:: The compatible interface for the EC2 Query API and the S3 API are Work
+In Progress. The S3 compatible API offers a way to store data on the
+management server file system, it is not an implementation of the S3
+backend.
+
+Limitations
+
+-
+
+ Supported only in zones that use basic networking.
+
+-
+
+ Available in fresh installations of CloudStack. Not available through
+ upgrade of previous versions.
+
+-
+
+ Features such as Elastic IP (EIP) and Elastic Load Balancing (ELB)
+ are only available in an infrastructure with a Citrix NetScaler
+ device. Users accessing a Zone with a NetScaler device will need to
+ use a NetScaler-enabled network offering (DefaultSharedNetscalerEIP
+ and ELBNetworkOffering).
+
+Supported API Version
+---------------------
+
+-
+
+ The EC2 interface complies with Amazon's WDSL version dated November
+ 15, 2010, available at
+ `http://ec2.amazonaws.com/doc/2010-11-15/ <http://ec2.amazonaws.com/doc/2010-11-15/>`__.
+
+-
+
+ The interface is compatible with the EC2 command-line tools *EC2
+ tools v. 1.3.6230*, which can be downloaded at
+ `http://s3.amazonaws.com/ec2-downloads/ec2-api-tools-1.3-62308.zip <http://s3.amazonaws.com/ec2-downloads/ec2-api-tools-1.3-62308.zip>`__.
+
+.. note:: Work is underway to support a more recent version of the EC2 API
+
+Enabling the EC2 and S3 Compatible Interface
+--------------------------------------------
+
+The software that provides AWS API compatibility is installed along with
+CloudStack. You must enable the services and perform some setup steps
+prior to using it.
+
+#.
+
+ Set the global configuration parameters for each service to true. See
+ `Chapter 7, *Setting Configuration Parameters* <#global-config>`__.
+
+#.
+
+ Create a set of CloudStack service offerings with names that match
+ the Amazon service offerings. You can do this through the CloudStack
+ UI as described in the Administration Guide.
+
+ .. warning:: Be sure you have included the Amazon default service offering,
+ m1.small. As well as any EC2 instance types that you will use.
+
+#.
+
+ If you did not already do so when you set the configuration parameter
+ in step `1 <#set-global-config>`__, restart the Management Server.
+
+::
+
+ # service cloudstack-management restart
+
+The following sections provides details to perform these steps
+
+Enabling the Services
+~~~~~~~~~~~~~~~~~~~~~
+
+To enable the EC2 and S3 compatible services you need to set the
+configuration variables *enable.ec2.api* and *enable.s3.api* to true.
+You do not have to enable both at the same time. Enable the ones you
+need. This can be done via the CloudStack GUI by going in *Global
+Settings* or via the API.
+
+The snapshot below shows you how to use the GUI to enable these services
+
+|Use the GUI to set the configuration variable to true|
+
+Using the CloudStack API, the easiest is to use the so-called
+integration port on which you can make unauthenticated calls. In Global
+Settings set the port to 8096 and subsequently call the
+*updateConfiguration* method. The following urls shows you how:
+
+::
+
+ http://localhost:8096/client/api?command=updateConfiguration&name=enable.ec2.api&value=true
+ http://localhost:8096/client/api?command=updateConfiguration&name=enable.ec2.api&value=true
+
+Once you have enabled the services, restart the server.
+
+Creating EC2 Compatible Service Offerings
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+You will also need to define compute service offerings with names
+compatible with the `Amazon EC2 instance
+types <http://aws.amazon.com/ec2/instance-types/>`__ API names (e.g
+m1.small,m1.large). This can be done via the CloudStack GUI. Go under
+*Service Offerings* select *Compute offering* and either create a new
+compute offering or modify an existing one, ensuring that the name
+matches an EC2 instance type API name. The snapshot below shows you how:
+
+|Use the GUI to set the name of a compute service offering to an EC2
+instance type API name.|
+
+Modifying the AWS API Port
+~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+.. note:: (Optional) The AWS API listens for requests on port 7080. If you prefer
+AWS API to listen on another port, you can change it as follows:
+
+#.
+
+ Edit the files /etc/cloudstack/management/server.xml,
+ /etc/cloudstack/management/server-nonssl.xml, and
+ /etc/cloudstack/management/server-ssl.xml.
+
+#.
+
+ In each file, find the tag <Service name="Catalina7080">. Under this
+ tag, locate <Connector executor="tomcatThreadPool-internal" port=
+ ....<.
+
+#.
+
+ Change the port to whatever port you want to use, then save the
+ files.
+
+#.
+
+ Restart the Management Server.
+
+If you re-install CloudStack, you will have to re-enable the services
+and if need be update the port.
+
+AWS API User Setup
+------------------
+
+In general, users need not be aware that they are using a translation
+service provided by CloudStack. They only need to send AWS API calls to
+CloudStack's endpoint, and it will translate the calls to the native
+CloudStack API. Users of the Amazon EC2 compatible interface will be
+able to keep their existing EC2 tools and scripts and use them with
+their CloudStack deployment, by specifying the endpoint of the
+management server and using the proper user credentials. In order to do
+this, each user must perform the following configuration steps:
+
+-
+
+ Generate user credentials.
+
+-
+
+ Register with the service.
+
+-
+
+ For convenience, set up environment variables for the EC2 SOAP
+ command-line tools.
+
+
+AWS API Command-Line Tools Setup
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+To use the EC2 command-line tools, the user must perform these steps:
+
+#.
+
+ Be sure you have the right version of EC2 Tools. The supported
+ version is available at
+ `http://s3.amazonaws.com/ec2-downloads/ec2-api-tools-1.3-62308.zip <http://s3.amazonaws.com/ec2-downloads/ec2-api-tools-1.3-62308.zip>`__.
+
+#.
+
+ Set up the EC2 environment variables. This can be done every time you
+ use the service or you can set them up in the proper shell profile.
+ Replace the endpoint (i.e EC2\_URL) with the proper address of your
+ CloudStack management server and port. In a bash shell do the
+ following.
+
+ .. code:: bash
+
+ $ export EC2_CERT=/path/to/cert.pem
+ $ export EC2_PRIVATE_KEY=/path/to/private_key.pem
+ $ export EC2_URL=http://localhost:7080/awsapi
+ $ export EC2_HOME=/path/to/EC2_tools_directory
+
+Using Timeouts to Ensure AWS API Command Completion
+---------------------------------------------------
+
+The Amazon EC2 command-line tools have a default connection timeout.
+When used with CloudStack, a longer timeout might be needed for some
+commands. If you find that commands are not completing due to timeouts,
+you can specify a custom timeouts. You can add the following optional
+command-line parameters to any CloudStack-supported EC2 command:
+
+.. code:: bash
+
+ --connection-timeout TIMEOUT
+
+Specifies a connection timeout (in seconds). Example:
+
+.. code:: bash
+
+ --connection-timeout 30
+
+.. code:: bash
+
+ --request-timeout TIMEOUT
+
+Specifies a request timeout (in seconds). Example:
+
+.. code:: bash
+
+ --request-timeout 45
+
+Example:
+
+.. code:: bash
+
+ ec2-run-instances 2 –z us-test1 –n 1-3 --connection-timeout 120 --request-timeout 120
+
+.. note:: The timeouts optional arguments are not specific to CloudStack.
+
+Supported AWS API Calls
+-----------------------
+
+The following Amazon EC2 commands are supported by CloudStack when the
+AWS API compatible interface is enabled. For a few commands, there are
+differences between the CloudStack and Amazon EC2 versions, and these
+differences are noted. The underlying SOAP call for each command is also
+given, for those who have built tools using those calls.
+
+Table 1. Elastic IP API mapping
+
+
++---------------------------+-----------------------+-------------------------+
+| EC2 command | SOAP call | CloudStack API call |
++===========================+=======================+=========================+
+| ec2-allocate-address | AllocateAddress | associateIpAddress |
++---------------------------+-----------------------+-------------------------+
+| ec2-associate-address | AssociateAddress | enableStaticNat |
++---------------------------+-----------------------+-------------------------+
+| ec2-describe-addresses | DescribeAddresses | listPublicIpAddresses |
++---------------------------+-----------------------+-------------------------+
+| ec2-diassociate-address | DisassociateAddress | disableStaticNat |
++---------------------------+-----------------------+-------------------------+
+| ec2-release-address | ReleaseAddress | disassociateIpAddress |
++---------------------------+-----------------------+-------------------------+
+
+|
+
+Table 2. Availability Zone API mapping
+
+
++-----------------------------------+-----------------------------+-----------------------+
+| EC2 command | SOAP call | CloudStack API call |
++===================================+=============================+=======================+
+| ec2-describe-availability-zones | DescribeAvailabilityZones | listZones |
++-----------------------------------+-----------------------------+-----------------------+
+
+|
+
+Table 3. Images API mapping
+
+
++-----------------------+-------------------+-----------------------+
+| EC2 command | SOAP call | CloudStack API call |
++=======================+===================+=======================+
+| ec2-create-image | CreateImage | createTemplate |
++-----------------------+-------------------+-----------------------+
+| ec2-deregister | DeregisterImage | DeleteTemplate |
++-----------------------+-------------------+-----------------------+
+| ec2-describe-images | DescribeImages | listTemplates |
++-----------------------+-------------------+-----------------------+
+| ec2-register | RegisterImage | registerTemplate |
++-----------------------+-------------------+-----------------------+
+
+|
+
+Table 4. Image Attributes API mapping
+
+
++--------------------------------+--------------------------+-----------------------------+
+| EC2 command | SOAP call | CloudStack API call |
++================================+==========================+=============================+
+| ec2-describe-image-attribute | DescribeImageAttribute | listTemplatePermissions |
++--------------------------------+--------------------------+-----------------------------+
+| ec2-modify-image-attribute | ModifyImageAttribute | updateTemplatePermissions |
++--------------------------------+--------------------------+-----------------------------+
+| ec2-reset-image-attribute | ResetImageAttribute | updateTemplatePermissions |
++--------------------------------+--------------------------+-----------------------------+
+
+|
+
+Table 5. Instances API mapping
+
+
++---------------------------+----------------------+-------------------------+
+| EC2 command | SOAP call | CloudStack API call |
++===========================+======================+=========================+
+| ec2-describe-instances | DescribeInstances | listVirtualMachines |
++---------------------------+----------------------+-------------------------+
+| ec2-run-instances | RunInstances | deployVirtualMachine |
++---------------------------+----------------------+-------------------------+
+| ec2-reboot-instances | RebootInstances | rebootVirtualMachine |
++---------------------------+----------------------+-------------------------+
+| ec2-start-instances | StartInstances | startVirtualMachine |
++---------------------------+----------------------+-------------------------+
+| ec2-stop-instances | StopInstances | stopVirtualMachine |
++---------------------------+----------------------+-------------------------+
+| ec2-terminate-instances | TerminateInstances | destroyVirtualMachine |
++---------------------------+----------------------+-------------------------+
+
+|
+
+Table 6. Instance Attributes Mapping
+
+
++-----------------------------------+-----------------------------+-----------------------+
+| EC2 command | SOAP call | CloudStack API call |
++===================================+=============================+=======================+
+| ec2-describe-instance-attribute | DescribeInstanceAttribute | listVirtualMachines |
++-----------------------------------+-----------------------------+-----------------------+
+
+|
+
+Table 7. Keys Pairs Mapping
+
+
++-------------------------+--------------------+-----------------------+
+| EC2 command | SOAP call | CloudStack API call |
++=========================+====================+=======================+
+| ec2-add-keypair | CreateKeyPair | createSSHKeyPair |
++-------------------------+--------------------+-----------------------+
+| ec2-delete-keypair | DeleteKeyPair | deleteSSHKeyPair |
++-------------------------+--------------------+-----------------------+
+| ec2-describe-keypairs | DescribeKeyPairs | listSSHKeyPairs |
++-------------------------+--------------------+-----------------------+
+| ec2-import-keypair | ImportKeyPair | registerSSHKeyPair |
++-------------------------+--------------------+-----------------------+
+
+|
+
+Table 8. Passwords API Mapping
+
+
++--------------------+-------------------+-----------------------+
+| EC2 command | SOAP call | CloudStack API call |
++====================+===================+=======================+
+| ec2-get-password | GetPasswordData | getVMPassword |
++--------------------+-------------------+-----------------------+
+
+|
+
+Table 9. Security Groups API Mapping
+
+
++----------------------+---------------------------------+---------------------------------+
+| EC2 command | SOAP call | CloudStack API call |
++======================+=================================+=================================+
+| ec2-authorize | AuthorizeSecurityGroupIngress | authorizeSecurityGroupIngress |
++----------------------+---------------------------------+---------------------------------+
+| ec2-add-group | CreateSecurityGroup | createSecurityGroup |
++----------------------+---------------------------------+---------------------------------+
+| ec2-delete-group | DeleteSecurityGroup | deleteSecurityGroup |
++----------------------+---------------------------------+---------------------------------+
+| ec2-describe-group | DescribeSecurityGroups | listSecurityGroups |
++----------------------+---------------------------------+---------------------------------+
+| ec2-revoke | RevokeSecurityGroupIngress | revokeSecurityGroupIngress |
++----------------------+---------------------------------+---------------------------------+
+
+|
+
+Table 10. Snapshots API Mapping
+
+
++--------------------------+---------------------+-----------------------+
+| EC2 command | SOAP call | CloudStack API call |
++==========================+=====================+=======================+
+| ec2-create-snapshot | CreateSnapshot | createSnapshot |
++--------------------------+---------------------+-----------------------+
+| ec2-delete-snapshot | DeleteSnapshot | deleteSnapshot |
++--------------------------+---------------------+-----------------------+
+| ec2-describe-snapshots | DescribeSnapshots | listSnapshots |
++--------------------------+---------------------+-----------------------+
+
+|
+
+Table 11. Volumes API Mapping
+
+
++-----------------------+------------------+-----------------------+
+| EC2 command | SOAP call | CloudStack API call |
++=======================+==================+=======================+
+| ec2-attach-volume | AttachVolume | attachVolume |
++-----------------------+------------------+-----------------------+
+| ec2-create-volume | CreateVolume | createVolume |
++-----------------------+------------------+-----------------------+
+| ec2-delete-volume | DeleteVolume | deleteVolume |
++-----------------------+------------------+-----------------------+
+| ec2-describe-volume | DescribeVolume | listVolumes |
++-----------------------+------------------+-----------------------+
+| ec2-detach-volume | DetachVolume | detachVolume |
++-----------------------+------------------+-----------------------+
+
+|
+
+Examples
+--------
+
+There are many tools available to interface with a AWS compatible API.
+In this section we provide a few examples that users of CloudStack can
+build upon.
+
+Boto Examples
+~~~~~~~~~~~~~
+
+Boto is one of them. It is a Python package available at
+https://github.com/boto/boto. In this section we provide two examples of
+Python scripts that use Boto and have been tested with the CloudStack
+AWS API Interface.
+
+First is an EC2 example. Replace the Access and Secret Keys with your
+own and update the endpoint.
+
+Example 1. An EC2 Boto example
+
+
+.. code:: python
+
+ #!/usr/bin/env python
+
+ import sys
+ import os
+ import boto
+ import boto.ec2
+
+ region = boto.ec2.regioninfo.RegionInfo(name="ROOT",endpoint="localhost")
+ apikey='GwNnpUPrO6KgIdZu01z_ZhhZnKjtSdRwuYd4DvpzvFpyxGMvrzno2q05MB0ViBoFYtdqKd'
+ secretkey='t4eXLEYWw7chBhDlaKf38adCMSHx_wlds6JfSx3z9fSpSOm0AbP9Moj0oGIzy2LSC8iw'
+
+ def main():
+ '''Establish connection to EC2 cloud'''
+ conn =boto.connect_ec2(aws_access_key_id=apikey,
+ aws_secret_access_key=secretkey,
+ is_secure=False,
+ region=region,
+ port=7080,
+ path="/awsapi",
+ api_version="2010-11-15")
+
+ '''Get list of images that I own'''
+ images = conn.get_all_images()
+ print images
+ myimage = images[0]
+ '''Pick an instance type'''
+ vm_type='m1.small'
+ reservation = myimage.run(instance_type=vm_type,security_groups=['default'])
+
+ if __name__ == '__main__':
+ main()
+
+|
+
+Second is an S3 example. Replace the Access and Secret keys with your
+own, as well as the endpoint of the service. Be sure to also update the
+file paths to something that exists on your machine.
+
+Example 2. An S3 Boto Example
+
+
+.. code:: python
+
+ #!/usr/bin/env python
+
+ import sys
+ import os
+ from boto.s3.key import Key
+ from boto.s3.connection import S3Connection
+ from boto.s3.connection import OrdinaryCallingFormat
+
+ apikey='ChOw-pwdcCFy6fpeyv6kUaR0NnhzmG3tE7HLN2z3OB_s-ogF5HjZtN4rnzKnq2UjtnHeg_yLA5gOw'
+ secretkey='IMY8R7CJQiSGFk4cHwfXXN3DUFXz07cCiU80eM3MCmfLs7kusgyOfm0g9qzXRXhoAPCH-IRxXc3w'
+
+ cf=OrdinaryCallingFormat()
+
+ def main():
+ '''Establish connection to S3 service'''
+ conn =S3Connection(aws_access_key_id=apikey,aws_secret_access_key=secretkey, \
+ is_secure=False, \
+ host='localhost', \
+ port=7080, \
+ calling_format=cf, \
+ path="/awsapi/rest/AmazonS3")
+
+ try:
+ bucket=conn.create_bucket('cloudstack')
+ k = Key(bucket)
+ k.key = 'test'
+ try:
+ k.set_contents_from_filename('/Users/runseb/Desktop/s3cs.py')
+ except:
+ print 'could not write file'
+ pass
+ except:
+ bucket = conn.get_bucket('cloudstack')
+ k = Key(bucket)
+ k.key = 'test'
+ try:
+ k.get_contents_to_filename('/Users/runseb/Desktop/foobar')
+ except:
+ print 'Could not get file'
+ pass
+
+ try:
+ bucket1=conn.create_bucket('teststring')
+ k=Key(bucket1)
+ k.key('foobar')
+ k.set_contents_from_string('This is my silly test')
+ except:
+ bucket1=conn.get_bucket('teststring')
+ k = Key(bucket1)
+ k.key='foobar'
+ k.get_contents_as_string()
+
+ if __name__ == '__main__':
+ main()
+
+
+.. |1000-foot-view.png: Overview of CloudStack| image:: ./_static/images/1000-foot-view.png
+.. |basic-deployment.png: Basic two-machine deployment| image:: ./_static/images/basic-deployment.png
+.. |infrastructure_overview.png: Nested organization of a zone| image:: ./_static/images/infrastructure-overview.png
+.. |region-overview.png: Nested structure of a region.| image:: ./_static/images/region-overview.png
+.. |zone-overview.png: Nested structure of a simple zone.| image:: ./_static/images/zone-overview.png
+.. |pod-overview.png: Nested structure of a simple pod| image:: ./_static/images/pod-overview.png
+.. |cluster-overview.png: Structure of a simple cluster| image:: ./_static/images/cluster-overview.png
+.. |installation-complete.png: Finished installs with single Management Server and multiple Management Servers| image:: ./_static/images/installation-complete.png
+.. |change-password.png: button to change a user's password| image:: ./_static/images/change-password.png
+.. |provisioning-overview.png: Conceptual overview of a basic deployment| image:: ./_static/images/provisioning-overview.png
+.. |vsphereclient.png: vSphere client| image:: ./_static/images/vsphere-client.png
+.. |addcluster.png: add a cluster| image:: ./_static/images/add-cluster.png
+.. |ConsoleButton.png: button to launch a console| image:: ./_static/images/console-icon.png
+.. |DeleteButton.png: button to delete dvSwitch| image:: ./_static/images/delete-button.png
+.. |vds-name.png: Name of the dvSwitch as specified in the vCenter.| image:: ./_static/images/vds-name.png
+.. |traffic-type.png: virtual switch type| image:: ./_static/images/traffic-type.png
+.. |dvSwitchConfig.png: Configuring dvSwitch| image:: ./_static/images/dvSwitch-config.png
+.. |Small-Scale Deployment| image:: ./_static/images/small-scale-deployment.png
+.. |Large-Scale Redundant Setup| image:: ./_static/images/large-scale-redundant-setup.png
+.. |Multi-Node Management Server| image:: ./_static/images/multi-node-management-server.png
+.. |Example Of A Multi-Site Deployment| image:: ./_static/images/multi-site-deployment.png
+.. |Separate Storage Network| image:: ./_static/images/separate-storage-network.png
+.. |NIC Bonding And Multipath I/O| image:: ./_static/images/nic-bonding-and-multipath-io.png
+.. |Use the GUI to set the configuration variable to true| image:: ./_static/images/ec2-s3-configuration.png
+.. |Use the GUI to set the name of a compute service offering to an EC2 instance type API name.| image:: ./_static/images/compute-service-offerings.png
+.. |parallel-mode.png: adding a firewall and load balancer in parallel mode.| image:: ./_static/images/parallel-mode.png
+.. |guest-traffic-setup.png: Depicts a guest traffic setup| image:: ./_static/images/guest-traffic-setup.png
+.. |networksinglepod.png: diagram showing logical view of network in a pod| image:: ./_static/images/network-singlepod.png
+.. |networksetupzone.png: Depicts network setup in a single zone| image:: ./_static/images/network-setup-zone.png
+.. |addguestnetwork.png: Add Guest network setup in a single zone| image:: ./_static/images/add-guest-network.png
+.. |remove-nic.png: button to remove a NIC| image:: ./_static/images/remove-nic.png
+.. |set-default-nic.png: button to set a NIC as default one.| image:: ./_static/images/set-default-nic.png
+.. |EditButton.png: button to edit a network| image:: ./_static/images/edit-icon.png
+.. |edit-icon.png: button to edit a network| image:: ./_static/images/edit-icon.png
+.. |addAccount-icon.png: button to assign an IP range to an account.| image:: ./_static/images/addAccount-icon.png
+.. |eip-ns-basiczone.png: Elastic IP in a NetScaler-enabled Basic Zone.| image:: ./_static/images/eip-ns-basiczone.png
+.. |add-ip-range.png: adding an IP range to a network.| image:: ./_static/images/add-ip-range.png
+.. |httpaccess.png: allows inbound HTTP access from anywhere| image:: ./_static/images/http-access.png
+.. |autoscaleateconfig.png: Configuring AutoScale| image:: ./_static/images/autoscale-config.png
+.. |EnableDisable.png: button to enable or disable AutoScale.| image:: ./_static/images/enable-disable-autoscale.png
+.. |gslb.png: GSLB architecture| image:: ./_static/images/gslb.png
+.. |gslb-add.png: adding a gslb rule| image:: ./_static/images/add-gslb.png
+.. |ReleaseIPButton.png: button to release an IP| image:: ./_static/images/release-ip-icon.png
+.. |EnableNATButton.png: button to enable NAT| image:: ./_static/images/enable-disable.png
+.. |egress-firewall-rule.png: adding an egress firewall rule| image:: ./_static/images/egress-firewall-rule.png
+.. |AttachDiskButton.png: button to attach a volume| image:: ./_static/images/vpn-icon.png
+.. |vpn-icon.png: button to enable VPN| image:: ./_static/images/vpn-icon.png
+.. |addvpncustomergateway.png: adding a customer gateway.| image:: ./_static/images/add-vpn-customer-gateway.png
+.. |edit.png: button to edit a VPN customer gateway| image:: ./_static/images/edit-icon.png
+.. |delete.png: button to remove a VPN customer gateway| image:: ./_static/images/delete-button.png
+.. |createvpnconnection.png: creating a VPN connection to the customer gateway.| image:: ./_static/images/create-vpn-connection.png
+.. |remove-vpn.png: button to remove a VPN connection| image:: ./_static/images/remove-vpn.png
+.. |reset-vpn.png: button to reset a VPN connection| image:: ./_static/images/reset-vpn.png
+.. |mutltier.png: a multi-tier setup.| image:: ./_static/images/multi-tier-app.png
+.. |add-vpc.png: adding a vpc.| image:: ./_static/images/add-vpc.png
+.. |add-tier.png: adding a tier to a vpc.| image:: ./_static/images/add-tier.png
+.. |replace-acl-icon.png: button to replace an ACL list| image:: ./_static/images/replace-acl-icon.png
+.. |add-new-gateway-vpc.png: adding a private gateway for the VPC.| image:: ./_static/images/add-new-gateway-vpc.png
+.. |replace-acl-icon.png: button to replace the default ACL behaviour.| image:: ./_static/images/replace-acl-icon.png
+.. |add-vm-vpc.png: adding a VM to a vpc.| image:: ./_static/images/add-vm-vpc.png
+.. |addvm-tier-sharednw.png: adding a VM to a VPC tier and shared network.| image:: ./_static/images/addvm-tier-sharednw.png
+.. |release-ip-icon.png: button to release an IP.| image:: ./_static/images/release-ip-icon.png
+.. |enable-disable.png: button to enable Static NAT.| image:: ./_static/images/enable-disable.png
+.. |select-vmstatic-nat.png: selecting a tier to apply staticNAT.| image:: ./_static/images/select-vm-staticnat-vpc.png
+.. |vpc-lb.png: Configuring internal LB for VPC| image:: ./_static/images/vpc-lb.png
+.. |del-tier.png: button to remove a tier| image:: ./_static/images/del-tier.png
+.. |remove-vpc.png: button to remove a VPC| image:: ./_static/images/remove-vpc.png
+.. |edit-icon.png: button to edit a VPC| image:: ./_static/images/edit-icon.png
+.. |restart-vpc.png: button to restart a VPC| image:: ./_static/images/restart-vpc.png
http://git-wip-us.apache.org/repos/asf/cloudstack-docs-install/blob/b1401796/source/best_practices.rst
----------------------------------------------------------------------
diff --git a/source/best_practices.rst b/source/best_practices.rst
new file mode 100644
index 0000000..e0180d2
--- /dev/null
+++ b/source/best_practices.rst
@@ -0,0 +1,204 @@
+.. Licensed to the Apache Software Foundation (ASF) under one
+ or more contributor license agreements. See the NOTICE file
+ distributed with this work for additional information#
+ regarding copyright ownership. The ASF licenses this file
+ to you under the Apache License, Version 2.0 (the
+ "License"); you may not use this file except in compliance
+ with the License. You may obtain a copy of the License at
+ http://www.apache.org/licenses/LICENSE-2.0
+ Unless required by applicable law or agreed to in writing,
+ software distributed under the License is distributed on an
+ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ KIND, either express or implied. See the License for the
+ specific language governing permissions and limitations
+ under the License.
+
+Best Practices
+==============
+
+Deploying a cloud is challenging. There are many different technology
+choices to make, and CloudStack is flexible enough in its configuration
+that there are many possible ways to combine and configure the chosen
+technology. This section contains suggestions and requirements about
+cloud deployments.
+
+These should be treated as suggestions and not absolutes. However, we do
+encourage anyone planning to build a cloud outside of these guidelines
+to seek guidance and advice on the project mailing lists.
+
+Process Best Practices
+----------------------
+
+-
+
+ A staging system that models the production environment is strongly
+ advised. It is critical if customizations have been applied to
+ CloudStack.
+
+-
+
+ Allow adequate time for installation, a beta, and learning the
+ system. Installs with basic networking can be done in hours. Installs
+ with advanced networking usually take several days for the first
+ attempt, with complicated installations taking longer. For a full
+ production system, allow at least 4-8 weeks for a beta to work
+ through all of the integration issues. You can get help from fellow
+ users on the cloudstack-users mailing list.
+
+Setup Best Practices
+--------------------
+
+-
+
+ Each host should be configured to accept connections only from
+ well-known entities such as the CloudStack Management Server or your
+ network monitoring software.
+
+-
+
+ Use multiple clusters per pod if you need to achieve a certain switch
+ density.
+
+-
+
+ Primary storage mountpoints or LUNs should not exceed 6 TB in size.
+ It is better to have multiple smaller primary storage elements per
+ cluster than one large one.
+
+-
+
+ When exporting shares on primary storage, avoid data loss by
+ restricting the range of IP addresses that can access the storage.
+ See "Linux NFS on Local Disks and DAS" or "Linux NFS on iSCSI".
+
+-
+
+ NIC bonding is straightforward to implement and provides increased
+ reliability.
+
+-
+
+ 10G networks are generally recommended for storage access when larger
+ servers that can support relatively more VMs are used.
+
+-
+
+ Host capacity should generally be modeled in terms of RAM for the
+ guests. Storage and CPU may be overprovisioned. RAM may not. RAM is
+ usually the limiting factor in capacity designs.
+
+-
+
+ (XenServer) Configure the XenServer dom0 settings to allocate more
+ memory to dom0. This can enable XenServer to handle larger numbers of
+ virtual machines. We recommend 2940 MB of RAM for XenServer dom0. For
+ instructions on how to do this, see
+ `http://support.citrix.com/article/CTX126531 <http://support.citrix.com/article/CTX126531>`__.
+ The article refers to XenServer 5.6, but the same information applies
+ to XenServer 6.0.
+
+Maintenance Best Practices
+--------------------------
+
+-
+
+ Monitor host disk space. Many host failures occur because the host's
+ root disk fills up from logs that were not rotated adequately.
+
+-
+
+ Monitor the total number of VM instances in each cluster, and disable
+ allocation to the cluster if the total is approaching the maximum
+ that the hypervisor can handle. Be sure to leave a safety margin to
+ allow for the possibility of one or more hosts failing, which would
+ increase the VM load on the other hosts as the VMs are redeployed.
+ Consult the documentation for your chosen hypervisor to find the
+ maximum permitted number of VMs per host, then use CloudStack global
+ configuration settings to set this as the default limit. Monitor the
+ VM activity in each cluster and keep the total number of VMs below a
+ safe level that allows for the occasional host failure. For example,
+ if there are N hosts in the cluster, and you want to allow for one
+ host in the cluster to be down at any given time, the total number of
+ VM instances you can permit in the cluster is at most (N-1) \*
+ (per-host-limit). Once a cluster reaches this number of VMs, use the
+ CloudStack UI to disable allocation to the cluster.
+
+.. warning:: The lack of up-do-date hotfixes can lead to data corruption and lost
+VMs. Be sure all the hotfixes provided by the hypervisor vendor are applied.
+Track the release of hypervisor patches through your hypervisor vendor’s
+support channel, and apply patches as soon as possible after they are
+released. CloudStack will not track or notify you of required hypervisor
+patches. It is essential that your hosts are completely up to date with
+the provided hypervisor patches. The hypervisor vendor is likely to
+refuse to support any system that is not up to date with patches.
+
+
+.. |1000-foot-view.png: Overview of CloudStack| image:: ./_static/images/1000-foot-view.png
+.. |basic-deployment.png: Basic two-machine deployment| image:: ./_static/images/basic-deployment.png
+.. |infrastructure_overview.png: Nested organization of a zone| image:: ./_static/images/infrastructure-overview.png
+.. |region-overview.png: Nested structure of a region.| image:: ./_static/images/region-overview.png
+.. |zone-overview.png: Nested structure of a simple zone.| image:: ./_static/images/zone-overview.png
+.. |pod-overview.png: Nested structure of a simple pod| image:: ./_static/images/pod-overview.png
+.. |cluster-overview.png: Structure of a simple cluster| image:: ./_static/images/cluster-overview.png
+.. |installation-complete.png: Finished installs with single Management Server and multiple Management Servers| image:: ./_static/images/installation-complete.png
+.. |change-password.png: button to change a user's password| image:: ./_static/images/change-password.png
+.. |provisioning-overview.png: Conceptual overview of a basic deployment| image:: ./_static/images/provisioning-overview.png
+.. |vsphereclient.png: vSphere client| image:: ./_static/images/vsphere-client.png
+.. |addcluster.png: add a cluster| image:: ./_static/images/add-cluster.png
+.. |ConsoleButton.png: button to launch a console| image:: ./_static/images/console-icon.png
+.. |DeleteButton.png: button to delete dvSwitch| image:: ./_static/images/delete-button.png
+.. |vds-name.png: Name of the dvSwitch as specified in the vCenter.| image:: ./_static/images/vds-name.png
+.. |traffic-type.png: virtual switch type| image:: ./_static/images/traffic-type.png
+.. |dvSwitchConfig.png: Configuring dvSwitch| image:: ./_static/images/dvSwitch-config.png
+.. |Small-Scale Deployment| image:: ./_static/images/small-scale-deployment.png
+.. |Large-Scale Redundant Setup| image:: ./_static/images/large-scale-redundant-setup.png
+.. |Multi-Node Management Server| image:: ./_static/images/multi-node-management-server.png
+.. |Example Of A Multi-Site Deployment| image:: ./_static/images/multi-site-deployment.png
+.. |Separate Storage Network| image:: ./_static/images/separate-storage-network.png
+.. |NIC Bonding And Multipath I/O| image:: ./_static/images/nic-bonding-and-multipath-io.png
+.. |Use the GUI to set the configuration variable to true| image:: ./_static/images/ec2-s3-configuration.png
+.. |Use the GUI to set the name of a compute service offering to an EC2 instance type API name.| image:: ./_static/images/compute-service-offerings.png
+.. |parallel-mode.png: adding a firewall and load balancer in parallel mode.| image:: ./_static/images/parallel-mode.png
+.. |guest-traffic-setup.png: Depicts a guest traffic setup| image:: ./_static/images/guest-traffic-setup.png
+.. |networksinglepod.png: diagram showing logical view of network in a pod| image:: ./_static/images/network-singlepod.png
+.. |networksetupzone.png: Depicts network setup in a single zone| image:: ./_static/images/network-setup-zone.png
+.. |addguestnetwork.png: Add Guest network setup in a single zone| image:: ./_static/images/add-guest-network.png
+.. |remove-nic.png: button to remove a NIC| image:: ./_static/images/remove-nic.png
+.. |set-default-nic.png: button to set a NIC as default one.| image:: ./_static/images/set-default-nic.png
+.. |EditButton.png: button to edit a network| image:: ./_static/images/edit-icon.png
+.. |edit-icon.png: button to edit a network| image:: ./_static/images/edit-icon.png
+.. |addAccount-icon.png: button to assign an IP range to an account.| image:: ./_static/images/addAccount-icon.png
+.. |eip-ns-basiczone.png: Elastic IP in a NetScaler-enabled Basic Zone.| image:: ./_static/images/eip-ns-basiczone.png
+.. |add-ip-range.png: adding an IP range to a network.| image:: ./_static/images/add-ip-range.png
+.. |httpaccess.png: allows inbound HTTP access from anywhere| image:: ./_static/images/http-access.png
+.. |autoscaleateconfig.png: Configuring AutoScale| image:: ./_static/images/autoscale-config.png
+.. |EnableDisable.png: button to enable or disable AutoScale.| image:: ./_static/images/enable-disable-autoscale.png
+.. |gslb.png: GSLB architecture| image:: ./_static/images/gslb.png
+.. |gslb-add.png: adding a gslb rule| image:: ./_static/images/add-gslb.png
+.. |ReleaseIPButton.png: button to release an IP| image:: ./_static/images/release-ip-icon.png
+.. |EnableNATButton.png: button to enable NAT| image:: ./_static/images/enable-disable.png
+.. |egress-firewall-rule.png: adding an egress firewall rule| image:: ./_static/images/egress-firewall-rule.png
+.. |AttachDiskButton.png: button to attach a volume| image:: ./_static/images/vpn-icon.png
+.. |vpn-icon.png: button to enable VPN| image:: ./_static/images/vpn-icon.png
+.. |addvpncustomergateway.png: adding a customer gateway.| image:: ./_static/images/add-vpn-customer-gateway.png
+.. |edit.png: button to edit a VPN customer gateway| image:: ./_static/images/edit-icon.png
+.. |delete.png: button to remove a VPN customer gateway| image:: ./_static/images/delete-button.png
+.. |createvpnconnection.png: creating a VPN connection to the customer gateway.| image:: ./_static/images/create-vpn-connection.png
+.. |remove-vpn.png: button to remove a VPN connection| image:: ./_static/images/remove-vpn.png
+.. |reset-vpn.png: button to reset a VPN connection| image:: ./_static/images/reset-vpn.png
+.. |mutltier.png: a multi-tier setup.| image:: ./_static/images/multi-tier-app.png
+.. |add-vpc.png: adding a vpc.| image:: ./_static/images/add-vpc.png
+.. |add-tier.png: adding a tier to a vpc.| image:: ./_static/images/add-tier.png
+.. |replace-acl-icon.png: button to replace an ACL list| image:: ./_static/images/replace-acl-icon.png
+.. |add-new-gateway-vpc.png: adding a private gateway for the VPC.| image:: ./_static/images/add-new-gateway-vpc.png
+.. |replace-acl-icon.png: button to replace the default ACL behaviour.| image:: ./_static/images/replace-acl-icon.png
+.. |add-vm-vpc.png: adding a VM to a vpc.| image:: ./_static/images/add-vm-vpc.png
+.. |addvm-tier-sharednw.png: adding a VM to a VPC tier and shared network.| image:: ./_static/images/addvm-tier-sharednw.png
+.. |release-ip-icon.png: button to release an IP.| image:: ./_static/images/release-ip-icon.png
+.. |enable-disable.png: button to enable Static NAT.| image:: ./_static/images/enable-disable.png
+.. |select-vmstatic-nat.png: selecting a tier to apply staticNAT.| image:: ./_static/images/select-vm-staticnat-vpc.png
+.. |vpc-lb.png: Configuring internal LB for VPC| image:: ./_static/images/vpc-lb.png
+.. |del-tier.png: button to remove a tier| image:: ./_static/images/del-tier.png
+.. |remove-vpc.png: button to remove a VPC| image:: ./_static/images/remove-vpc.png
+.. |edit-icon.png: button to edit a VPC| image:: ./_static/images/edit-icon.png
+.. |restart-vpc.png: button to restart a VPC| image:: ./_static/images/restart-vpc.png
http://git-wip-us.apache.org/repos/asf/cloudstack-docs-install/blob/b1401796/source/building_from_source.rst
----------------------------------------------------------------------
diff --git a/source/building_from_source.rst b/source/building_from_source.rst
new file mode 100644
index 0000000..843953a
--- /dev/null
+++ b/source/building_from_source.rst
@@ -0,0 +1,548 @@
+.. Licensed to the Apache Software Foundation (ASF) under one
+ or more contributor license agreements. See the NOTICE file
+ distributed with this work for additional information#
+ regarding copyright ownership. The ASF licenses this file
+ to you under the Apache License, Version 2.0 (the
+ "License"); you may not use this file except in compliance
+ with the License. You may obtain a copy of the License at
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing,
+ software distributed under the License is distributed on an
+ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ KIND, either express or implied. See the License for the
+ specific language governing permissions and limitations
+ under the License.
+
+Building from Source
+====================
+
+The official CloudStack release is always in source code form. You will
+likely be able to find "convenience binaries," the source is the
+canonical release. In this section, we'll cover acquiring the source
+release and building that so that you can deploy it using Maven or
+create Debian packages or RPMs.
+
+Note that building and deploying directly from source is typically not
+the most efficient way to deploy an IaaS. However, we will cover that
+method as well as building RPMs or Debian packages for deploying
+CloudStack.
+
+The instructions here are likely version-specific. That is, the method
+for building from source for the 4.0.x series is different from the
+4.1.x series.
+
+If you are working with a unreleased version of CloudStack, see the
+INSTALL.md file in the top-level directory of the release.
+
+Getting the release
+-------------------
+
+You can download the latest CloudStack release from the `Apache
+CloudStack project download
+page <http://incubator.apache.org/cloudstack/downloads.html>`__.
+
+Prior releases are available via archive.apache.org as well. See the
+downloads page for more information on archived releases.
+
+You'll notice several links under the 'Latest release' section. A link
+to a file ending in ``tar.bz2``, as well as a PGP/GPG signature, MD5,
+and SHA512 file.
+
+-
+
+ The ``tar.bz2`` file contains the Bzip2-compressed tarball with the
+ source code.
+
+-
+
+ The ``.asc`` file is a detached cryptographic signature that can be
+ used to help verify the authenticity of the release.
+
+-
+
+ The ``.md5`` file is an MD5 hash of the release to aid in verify the
+ validity of the release download.
+
+-
+
+ The ``.sha`` file is a SHA512 hash of the release to aid in verify
+ the validity of the release download.
+
+Verifying the downloaded release
+--------------------------------
+
+There are a number of mechanisms to check the authenticity and validity
+of a downloaded release.
+
+Getting the KEYS
+~~~~~~~~~~~~~~~~
+
+To enable you to verify the GPG signature, you will need to download the
+`KEYS <http://www.apache.org/dist/incubator/cloudstack/KEYS>`__ file.
+
+You next need to import those keys, which you can do by running:
+
+.. code:: bash
+
+ # gpg --import KEYS
+
+GPG
+~~~
+
+The CloudStack project provides a detached GPG signature of the release.
+To check the signature, run the following command:
+
+.. code:: bash
+
+ $ gpg --verify apache-cloudstack-4.0.0-incubating-src.tar.bz2.asc
+
+If the signature is valid you will see a line of output that contains
+'Good signature'.
+
+MD5
+~~~
+
+In addition to the cryptographic signature, CloudStack has an MD5
+checksum that you can use to verify the download matches the release.
+You can verify this hash by executing the following command:
+
+.. code:: bash
+
+ $ gpg --print-md MD5 apache-cloudstack-4.0.0-incubating-src.tar.bz2 | diff - apache-cloudstack-4.0.0-incubating-src.tar.bz2.md5
+
+If this successfully completes you should see no output. If there is any
+output from them, then there is a difference between the hash you
+generated locally and the hash that has been pulled from the server.
+
+SHA512
+~~~~~~
+
+In addition to the MD5 hash, the CloudStack project provides a SHA512
+cryptographic hash to aid in assurance of the validity of the downloaded
+release. You can verify this hash by executing the following command:
+
+.. code:: bash
+
+ $ gpg --print-md SHA512 apache-cloudstack-4.0.0-incubating-src.tar.bz2 | diff - apache-cloudstack-4.0.0-incubating-src.tar.bz2.sha
+
+If this command successfully completes you should see no output. If
+there is any output from them, then there is a difference between the
+hash you generated locally and the hash that has been pulled from the
+server.
+
+Prerequisites for building Apache CloudStack
+--------------------------------------------
+
+There are a number of prerequisites needed to build CloudStack. This
+document assumes compilation on a Linux system that uses RPMs or DEBs
+for package management.
+
+You will need, at a minimum, the following to compile CloudStack:
+
+#.
+
+ Maven (version 3)
+
+#.
+
+ Java (OpenJDK 1.6 or Java 7/OpenJDK 1.7)
+
+#.
+
+ Apache Web Services Common Utilities (ws-commons-util)
+
+#.
+
+ MySQL
+
+#.
+
+ MySQLdb (provides Python database API)
+
+#.
+
+ Tomcat 6 (not 6.0.35)
+
+#.
+
+ genisoimage
+
+#.
+
+ rpmbuild or dpkg-dev
+
+Extracting source
+-----------------
+
+Extracting the CloudStack release is relatively simple and can be done
+with a single command as follows:
+
+.. code:: bash
+
+ $ tar -jxvf apache-cloudstack-4.1.0.src.tar.bz2
+
+You can now move into the directory:
+
+.. code:: bash
+
+ $ cd ./apache-cloudstack-4.1.0-src
+
+Building DEB packages
+---------------------
+
+In addition to the bootstrap dependencies, you'll also need to install
+several other dependencies. Note that we recommend using Maven 3, which
+is not currently available in 12.04.1 LTS. So, you'll also need to add a
+PPA repository that includes Maven 3. After running the command
+``add-apt-repository``, you will be prompted to continue and a GPG key
+will be added.
+
+.. code:: bash
+
+ $ sudo apt-get update
+ $ sudo apt-get install python-software-properties
+ $ sudo add-apt-repository ppa:natecarlson/maven3
+ $ sudo apt-get update
+ $ sudo apt-get install ant debhelper openjdk-6-jdk tomcat6 libws-commons-util-java genisoimage python-mysqldb libcommons-codec-java libcommons-httpclient-java liblog4j1.2-java maven3
+
+While we have defined, and you have presumably already installed the
+bootstrap prerequisites, there are a number of build time prerequisites
+that need to be resolved. CloudStack uses maven for dependency
+resolution. You can resolve the buildtime depdencies for CloudStack by
+running:
+
+.. code:: bash
+
+ $ mvn3 -P deps
+
+Now that we have resolved the dependencies we can move on to building
+CloudStack and packaging them into DEBs by issuing the following
+command.
+
+.. code:: bash
+
+ $ dpkg-buildpackage -uc -us
+
+This command will build the following debian packages. You should have
+all of the following:
+
+.. code:: bash
+
+ cloudstack-common-4.2.0.amd64.deb
+ cloudstack-management-4.2.0.amd64.deb
+ cloudstack-agent-4.2.0.amd64.deb
+ cloudstack-usage-4.2.0.amd64.deb
+ cloudstack-awsapi-4.2.0.amd64.deb
+ cloudstack-cli-4.2.0.amd64.deb
+ cloudstack-docs-4.2.0.amd64.deb
+
+Setting up an APT repo
+~~~~~~~~~~~~~~~~~~~~~~
+
+After you've created the packages, you'll want to copy them to a system
+where you can serve the packages over HTTP. You'll create a directory
+for the packages and then use ``dpkg-scanpackages`` to create
+``Packages.gz``, which holds information about the archive structure.
+Finally, you'll add the repository to your system(s) so you can install
+the packages using APT.
+
+The first step is to make sure that you have the **dpkg-dev** package
+installed. This should have been installed when you pulled in the
+**debhelper** application previously, but if you're generating
+``Packages.gz`` on a different system, be sure that it's installed there
+as well.
+
+.. code:: bash
+
+ $ sudo apt-get install dpkg-dev
+
+The next step is to copy the DEBs to the directory where they can be
+served over HTTP. We'll use ``/var/www/cloudstack/repo`` in the
+examples, but change the directory to whatever works for you.
+
+.. code:: bash
+
+ sudo mkdir -p /var/www/cloudstack/repo/binary
+ sudo cp *.deb /var/www/cloudstack/repo/binary
+ sudo cd /var/www/cloudstack/repo/binary
+ sudo dpkg-scanpackages . /dev/null | tee Packages | gzip -9 > Packages.gz
+
+.. note:: You can safely ignore the warning about a missing override file.
+
+Now you should have all of the DEB packages and ``Packages.gz`` in the
+``binary`` directory and available over HTTP. (You may want to use
+``wget`` or ``curl`` to test this before moving on to the next step.)
+
+Configuring your machines to use the APT repository
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Now that we have created the repository, you need to configure your
+machine to make use of the APT repository. You can do this by adding a
+repository file under ``/etc/apt/sources.list.d``. Use your preferred
+editor to create ``/etc/apt/sources.list.d/cloudstack.list`` with this
+line:
+
+.. code:: bash
+
+ deb http://server.url/cloudstack/repo binary ./
+
+Now that you have the repository info in place, you'll want to run
+another update so that APT knows where to find the CloudStack packages.
+
+.. code:: bash
+
+ $ sudo apt-get update
+
+You can now move on to the instructions under Install on Ubuntu.
+
+Building RPMs from Source
+-------------------------
+
+As mentioned previously in `Section 3.3, “Prerequisites for building
+Apache CloudStack” <#sect-source-prereq>`__, you will need to install
+several prerequisites before you can build packages for CloudStack. Here
+we'll assume you're working with a 64-bit build of CentOS or Red Hat
+Enterprise Linux.
+
+::
+
+ # yum groupinstall "Development Tools"
+
+::
+
+ # yum install java-1.6.0-openjdk-devel.x86_64 genisoimage mysql mysql-server ws-commons-util MySQL-python tomcat6 createrepo
+
+Next, you'll need to install build-time dependencies for CloudStack with
+Maven. We're using Maven 3, so you'll want to `grab a Maven 3
+tarball <http://maven.apache.org/download.cgi>`__ and uncompress it in
+your home directory (or whatever location you prefer):
+
+::
+
+ $ tar zxvf apache-maven-3.0.4-bin.tar.gz
+
+::
+
+ $ export PATH=/usr/local/apache-maven-3.0.4//bin:$PATH
+
+Maven also needs to know where Java is, and expects the JAVA\_HOME
+environment variable to be set:
+
+::
+
+ $ export JAVA_HOME=/usr/lib/jvm/jre-1.6.0-openjdk.x86_64/
+
+Verify that Maven is installed correctly:
+
+::
+
+ $ mvn --version
+
+You probably want to ensure that your environment variables will survive
+a logout/reboot. Be sure to update ``~/.bashrc`` with the PATH and
+JAVA\_HOME variables.
+
+Building RPMs for CloudStack is fairly simple. Assuming you already have
+the source downloaded and have uncompressed the tarball into a local
+directory, you're going to be able to generate packages in just a few
+minutes.
+
+.. note:: Packaging has Changed. If you've created packages for CloudStack previously, you should be
+aware that the process has changed considerably since the project has moved to using Apache Maven. Please be sure to follow the steps in this section closely.
+
+Generating RPMS
+~~~~~~~~~~~~~~~
+
+Now that we have the prerequisites and source, you will cd to the `packaging/centos63/` directory.
+
+::
+
+ $ cd packaging/centos63
+
+Generating RPMs is done using the ``package.sh`` script:
+
+::
+
+ $./package.sh
+
+That will run for a bit and then place the finished packages in
+``dist/rpmbuild/RPMS/x86_64/``.
+
+You should see the following RPMs in that directory:
+
+::
+
+ cloudstack-agent-4.2.0.el6.x86_64.rpm
+ cloudstack-awsapi-4.2.0.el6.x86_64.rpm
+ cloudstack-cli-4.2.0.el6.x86_64.rpm
+ cloudstack-common-4.2.0.el6.x86_64.rpm
+ cloudstack-docs-4.2.0.el6.x86_64.rpm
+ cloudstack-management-4.2.0.el6.x86_64.rpm
+ cloudstack-usage-4.2.0.el6.x86_64.rpm
+
+Creating a yum repo
+^^^^^^^^^^^^^^^^^^^
+
+While RPMs is a useful packaging format - it's most easily consumed from
+Yum repositories over a network. The next step is to create a Yum Repo
+with the finished packages:
+
+::
+
+ $ mkdir -p ~/tmp/repo
+
+::
+
+ $ cp dist/rpmbuild/RPMS/x86_64/*rpm ~/tmp/repo/
+
+::
+
+ $ createrepo ~/tmp/repo
+
+The files and directories within ``~/tmp/repo`` can now be uploaded to a
+web server and serve as a yum repository.
+
+Configuring your systems to use your new yum repository
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+Now that your yum repository is populated with RPMs and metadata we need
+to configure the machines that need to install CloudStack. Create a file
+named ``/etc/yum.repos.d/cloudstack.repo`` with this information:
+
+::
+
+ [apache-cloudstack]
+ name=Apache CloudStack
+ baseurl=http://webserver.tld/path/to/repo
+ enabled=1
+ gpgcheck=0
+
+Completing this step will allow you to easily install CloudStack on a
+number of machines across the network.
+
+Building Non-OSS
+----------------
+
+If you need support for the VMware, NetApp, F5, NetScaler, SRX, or any
+other non-Open Source Software (nonoss) plugins, you'll need to download
+a few components on your own and follow a slightly different procedure
+to build from source.
+
+Why Non-OSS?
+------------
+
+Some of the plugins supported by CloudStack cannot be distributed with
+CloudStack for licensing reasons. In some cases, some of the required
+libraries/JARs are under a proprietary license. In other cases, the
+required libraries may be under a license that's not compatible with
+`Apache's licensing guidelines for third-party
+products <http://www.apache.org/legal/resolved.html#category-x>`__.
+
+#.
+
+ To build the Non-OSS plugins, you'll need to have the requisite JARs
+ installed under the ``deps`` directory.
+
+ Because these modules require dependencies that can't be distributed
+ with CloudStack you'll need to download them yourself. Links to the
+ most recent dependencies are listed on the `*How to build on master
+ branch* <https://cwiki.apache.org/CLOUDSTACK/how-to-build-on-master-branch.html>`__
+ page on the wiki.
+
+#.
+
+ You may also need to download
+ `vhd-util <http://download.cloud.com.s3.amazonaws.com/tools/vhd-util>`__,
+ which was removed due to licensing issues. You'll copy vhd-util to
+ the ``scripts/vm/hypervisor/xenserver/`` directory.
+
+#.
+
+ Once you have all the dependencies copied over, you'll be able to
+ build CloudStack with the ``nonoss`` option:
+
+::
+
+ $ mvn clean
+ $ mvn install -Dnonoss
+
+#.
+
+ Once you've built CloudStack with the ``nonoss`` profile, you can
+ package it using the `Section 3.6, “Building RPMs from
+ Source” <#sect-source-buildrpm>`__ or `Section 3.5, “Building DEB
+ packages” <#sect-source-builddebs>`__ instructions.
+
+
+
+
+.. |1000-foot-view.png: Overview of CloudStack| image:: ./_static/images/1000-foot-view.png
+.. |basic-deployment.png: Basic two-machine deployment| image:: ./_static/images/basic-deployment.png
+.. |infrastructure_overview.png: Nested organization of a zone| image:: ./_static/images/infrastructure-overview.png
+.. |region-overview.png: Nested structure of a region.| image:: ./_static/images/region-overview.png
+.. |zone-overview.png: Nested structure of a simple zone.| image:: ./_static/images/zone-overview.png
+.. |pod-overview.png: Nested structure of a simple pod| image:: ./_static/images/pod-overview.png
+.. |cluster-overview.png: Structure of a simple cluster| image:: ./_static/images/cluster-overview.png
+.. |installation-complete.png: Finished installs with single Management Server and multiple Management Servers| image:: ./_static/images/installation-complete.png
+.. |change-password.png: button to change a user's password| image:: ./_static/images/change-password.png
+.. |provisioning-overview.png: Conceptual overview of a basic deployment| image:: ./_static/images/provisioning-overview.png
+.. |vsphereclient.png: vSphere client| image:: ./_static/images/vsphere-client.png
+.. |addcluster.png: add a cluster| image:: ./_static/images/add-cluster.png
+.. |ConsoleButton.png: button to launch a console| image:: ./_static/images/console-icon.png
+.. |DeleteButton.png: button to delete dvSwitch| image:: ./_static/images/delete-button.png
+.. |vds-name.png: Name of the dvSwitch as specified in the vCenter.| image:: ./_static/images/vds-name.png
+.. |traffic-type.png: virtual switch type| image:: ./_static/images/traffic-type.png
+.. |dvSwitchConfig.png: Configuring dvSwitch| image:: ./_static/images/dvSwitch-config.png
+.. |Small-Scale Deployment| image:: ./_static/images/small-scale-deployment.png
+.. |Large-Scale Redundant Setup| image:: ./_static/images/large-scale-redundant-setup.png
+.. |Multi-Node Management Server| image:: ./_static/images/multi-node-management-server.png
+.. |Example Of A Multi-Site Deployment| image:: ./_static/images/multi-site-deployment.png
+.. |Separate Storage Network| image:: ./_static/images/separate-storage-network.png
+.. |NIC Bonding And Multipath I/O| image:: ./_static/images/nic-bonding-and-multipath-io.png
+.. |Use the GUI to set the configuration variable to true| image:: ./_static/images/ec2-s3-configuration.png
+.. |Use the GUI to set the name of a compute service offering to an EC2 instance type API name.| image:: ./_static/images/compute-service-offerings.png
+.. |parallel-mode.png: adding a firewall and load balancer in parallel mode.| image:: ./_static/images/parallel-mode.png
+.. |guest-traffic-setup.png: Depicts a guest traffic setup| image:: ./_static/images/guest-traffic-setup.png
+.. |networksinglepod.png: diagram showing logical view of network in a pod| image:: ./_static/images/network-singlepod.png
+.. |networksetupzone.png: Depicts network setup in a single zone| image:: ./_static/images/network-setup-zone.png
+.. |addguestnetwork.png: Add Guest network setup in a single zone| image:: ./_static/images/add-guest-network.png
+.. |remove-nic.png: button to remove a NIC| image:: ./_static/images/remove-nic.png
+.. |set-default-nic.png: button to set a NIC as default one.| image:: ./_static/images/set-default-nic.png
+.. |EditButton.png: button to edit a network| image:: ./_static/images/edit-icon.png
+.. |edit-icon.png: button to edit a network| image:: ./_static/images/edit-icon.png
+.. |addAccount-icon.png: button to assign an IP range to an account.| image:: ./_static/images/addAccount-icon.png
+.. |eip-ns-basiczone.png: Elastic IP in a NetScaler-enabled Basic Zone.| image:: ./_static/images/eip-ns-basiczone.png
+.. |add-ip-range.png: adding an IP range to a network.| image:: ./_static/images/add-ip-range.png
+.. |httpaccess.png: allows inbound HTTP access from anywhere| image:: ./_static/images/http-access.png
+.. |autoscaleateconfig.png: Configuring AutoScale| image:: ./_static/images/autoscale-config.png
+.. |EnableDisable.png: button to enable or disable AutoScale.| image:: ./_static/images/enable-disable-autoscale.png
+.. |gslb.png: GSLB architecture| image:: ./_static/images/gslb.png
+.. |gslb-add.png: adding a gslb rule| image:: ./_static/images/add-gslb.png
+.. |ReleaseIPButton.png: button to release an IP| image:: ./_static/images/release-ip-icon.png
+.. |EnableNATButton.png: button to enable NAT| image:: ./_static/images/enable-disable.png
+.. |egress-firewall-rule.png: adding an egress firewall rule| image:: ./_static/images/egress-firewall-rule.png
+.. |AttachDiskButton.png: button to attach a volume| image:: ./_static/images/vpn-icon.png
+.. |vpn-icon.png: button to enable VPN| image:: ./_static/images/vpn-icon.png
+.. |addvpncustomergateway.png: adding a customer gateway.| image:: ./_static/images/add-vpn-customer-gateway.png
+.. |edit.png: button to edit a VPN customer gateway| image:: ./_static/images/edit-icon.png
+.. |delete.png: button to remove a VPN customer gateway| image:: ./_static/images/delete-button.png
+.. |createvpnconnection.png: creating a VPN connection to the customer gateway.| image:: ./_static/images/create-vpn-connection.png
+.. |remove-vpn.png: button to remove a VPN connection| image:: ./_static/images/remove-vpn.png
+.. |reset-vpn.png: button to reset a VPN connection| image:: ./_static/images/reset-vpn.png
+.. |mutltier.png: a multi-tier setup.| image:: ./_static/images/multi-tier-app.png
+.. |add-vpc.png: adding a vpc.| image:: ./_static/images/add-vpc.png
+.. |add-tier.png: adding a tier to a vpc.| image:: ./_static/images/add-tier.png
+.. |replace-acl-icon.png: button to replace an ACL list| image:: ./_static/images/replace-acl-icon.png
+.. |add-new-gateway-vpc.png: adding a private gateway for the VPC.| image:: ./_static/images/add-new-gateway-vpc.png
+.. |replace-acl-icon.png: button to replace the default ACL behaviour.| image:: ./_static/images/replace-acl-icon.png
+.. |add-vm-vpc.png: adding a VM to a vpc.| image:: ./_static/images/add-vm-vpc.png
+.. |addvm-tier-sharednw.png: adding a VM to a VPC tier and shared network.| image:: ./_static/images/addvm-tier-sharednw.png
+.. |release-ip-icon.png: button to release an IP.| image:: ./_static/images/release-ip-icon.png
+.. |enable-disable.png: button to enable Static NAT.| image:: ./_static/images/enable-disable.png
+.. |select-vmstatic-nat.png: selecting a tier to apply staticNAT.| image:: ./_static/images/select-vm-staticnat-vpc.png
+.. |vpc-lb.png: Configuring internal LB for VPC| image:: ./_static/images/vpc-lb.png
+.. |del-tier.png: button to remove a tier| image:: ./_static/images/del-tier.png
+.. |remove-vpc.png: button to remove a VPC| image:: ./_static/images/remove-vpc.png
+.. |edit-icon.png: button to edit a VPC| image:: ./_static/images/edit-icon.png
+.. |restart-vpc.png: button to restart a VPC| image:: ./_static/images/restart-vpc.png
http://git-wip-us.apache.org/repos/asf/cloudstack-docs-install/blob/b1401796/source/choosing_deployment_architecture.rst
----------------------------------------------------------------------
diff --git a/source/choosing_deployment_architecture.rst b/source/choosing_deployment_architecture.rst
new file mode 100644
index 0000000..7874f64
--- /dev/null
+++ b/source/choosing_deployment_architecture.rst
@@ -0,0 +1,404 @@
+.. Licensed to the Apache Software Foundation (ASF) under one
+ or more contributor license agreements. See the NOTICE file
+ distributed with this work for additional information#
+ regarding copyright ownership. The ASF licenses this file
+ to you under the Apache License, Version 2.0 (the
+ "License"); you may not use this file except in compliance
+ with the License. You may obtain a copy of the License at
+ http://www.apache.org/licenses/LICENSE-2.0
+ Unless required by applicable law or agreed to in writing,
+ software distributed under the License is distributed on an
+ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ KIND, either express or implied. See the License for the
+ specific language governing permissions and limitations
+ under the License.
+
+Choosing a Deployment Architecture
+==================================
+
+The architecture used in a deployment will vary depending on the size
+and purpose of the deployment. This section contains examples of
+deployment architecture, including a small-scale deployment useful for
+test and trial deployments and a fully-redundant large-scale setup for
+production deployments.
+
+Small-Scale Deployment
+----------------------
+
+|Small-Scale Deployment|
+
+This diagram illustrates the network architecture of a small-scale
+CloudStack deployment.
+
+-
+
+ A firewall provides a connection to the Internet. The firewall is
+ configured in NAT mode. The firewall forwards HTTP requests and API
+ calls from the Internet to the Management Server. The Management
+ Server resides on the management network.
+
+-
+
+ A layer-2 switch connects all physical servers and storage.
+
+-
+
+ A single NFS server functions as both the primary and secondary
+ storage.
+
+-
+
+ The Management Server is connected to the management network.
+
+Large-Scale Redundant Setup
+---------------------------
+
+|Large-Scale Redundant Setup|
+
+This diagram illustrates the network architecture of a large-scale
+CloudStack deployment.
+
+-
+
+ A layer-3 switching layer is at the core of the data center. A router
+ redundancy protocol like VRRP should be deployed. Typically high-end
+ core switches also include firewall modules. Separate firewall
+ appliances may also be used if the layer-3 switch does not have
+ integrated firewall capabilities. The firewalls are configured in NAT
+ mode. The firewalls provide the following functions:
+
+ -
+
+ Forwards HTTP requests and API calls from the Internet to the
+ Management Server. The Management Server resides on the management
+ network.
+
+ -
+
+ When the cloud spans multiple zones, the firewalls should enable
+ site-to-site VPN such that servers in different zones can directly
+ reach each other.
+
+-
+
+ A layer-2 access switch layer is established for each pod. Multiple
+ switches can be stacked to increase port count. In either case,
+ redundant pairs of layer-2 switches should be deployed.
+
+-
+
+ The Management Server cluster (including front-end load balancers,
+ Management Server nodes, and the MySQL database) is connected to the
+ management network through a pair of load balancers.
+
+-
+
+ Secondary storage servers are connected to the management network.
+
+-
+
+ Each pod contains storage and computing servers. Each storage and
+ computing server should have redundant NICs connected to separate
+ layer-2 access switches.
+
+Separate Storage Network
+------------------------
+
+In the large-scale redundant setup described in the previous section,
+storage traffic can overload the management network. A separate storage
+network is optional for deployments. Storage protocols such as iSCSI are
+sensitive to network delays. A separate storage network ensures guest
+network traffic contention does not impact storage performance.
+
+Multi-Node Management Server
+----------------------------
+
+The CloudStack Management Server is deployed on one or more front-end
+servers connected to a single MySQL database. Optionally a pair of
+hardware load balancers distributes requests from the web. A backup
+management server set may be deployed using MySQL replication at a
+remote site to add DR capabilities.
+
+|Multi-Node Management Server|
+
+The administrator must decide the following.
+
+-
+
+ Whether or not load balancers will be used.
+
+-
+
+ How many Management Servers will be deployed.
+
+-
+
+ Whether MySQL replication will be deployed to enable disaster
+ recovery.
+
+Multi-Site Deployment
+---------------------
+
+The CloudStack platform scales well into multiple sites through the use
+of zones. The following diagram shows an example of a multi-site
+deployment.
+
+|Example Of A Multi-Site Deployment|
+
+Data Center 1 houses the primary Management Server as well as zone 1.
+The MySQL database is replicated in real time to the secondary
+Management Server installation in Data Center 2.
+
+|Separate Storage Network|
+
+This diagram illustrates a setup with a separate storage network. Each
+server has four NICs, two connected to pod-level network switches and
+two connected to storage network switches.
+
+There are two ways to configure the storage network:
+
+-
+
+ Bonded NIC and redundant switches can be deployed for NFS. In NFS
+ deployments, redundant switches and bonded NICs still result in one
+ network (one CIDR block+ default gateway address).
+
+-
+
+ iSCSI can take advantage of two separate storage networks (two CIDR
+ blocks each with its own default gateway). Multipath iSCSI client can
+ failover and load balance between separate storage networks.
+
+|NIC Bonding And Multipath I/O|
+
+This diagram illustrates the differences between NIC bonding and
+Multipath I/O (MPIO). NIC bonding configuration involves only one
+network. MPIO involves two separate networks.
+
+CloudStack supports many popular hypervisors. Your cloud can consist
+entirely of hosts running a single hypervisor, or you can use multiple
+hypervisors. Each cluster of hosts must run the same hypervisor.
+
+You might already have an installed base of nodes running a particular
+hypervisor, in which case, your choice of hypervisor has already been
+made. If you are starting from scratch, you need to decide what
+hypervisor software best suits your needs. A discussion of the relative
+advantages of each hypervisor is outside the scope of our documentation.
+However, it will help you to know which features of each hypervisor are
+supported by CloudStack. The following table provides this information.
+
+Feature
+
+XenServer 6.0.2
+
+vSphere 4.1/5.0
+
+KVM - RHEL 6.2
+
+OVM 2.3
+
+Bare Metal
+
+Network Throttling
+
+Yes
+
+Yes
+
+No
+
+No
+
+N/A
+
+Security groups in zones that use basic networking
+
+Yes
+
+No
+
+Yes
+
+No
+
+No
+
+iSCSI
+
+Yes
+
+Yes
+
+Yes
+
+Yes
+
+N/A
+
+FibreChannel
+
+Yes
+
+Yes
+
+Yes
+
+No
+
+N/A
+
+Local Disk
+
+Yes
+
+Yes
+
+Yes
+
+No
+
+Yes
+
+HA
+
+Yes
+
+Yes (Native)
+
+Yes
+
+Yes
+
+N/A
+
+Snapshots of local disk
+
+Yes
+
+Yes
+
+Yes
+
+No
+
+N/A
+
+Local disk as data disk
+
+No
+
+No
+
+No
+
+No
+
+N/A
+
+Work load balancing
+
+No
+
+DRS
+
+No
+
+No
+
+N/A
+
+Manual live migration of VMs from host to host
+
+Yes
+
+Yes
+
+Yes
+
+Yes
+
+N/A
+
+Conserve management traffic IP address by using link local network to
+communicate with virtual router
+
+Yes
+
+No
+
+Yes
+
+Yes
+
+N/A
+
+
+.. |1000-foot-view.png: Overview of CloudStack| image:: ./_static/images/1000-foot-view.png
+.. |basic-deployment.png: Basic two-machine deployment| image:: ./_static/images/basic-deployment.png
+.. |infrastructure_overview.png: Nested organization of a zone| image:: ./_static/images/infrastructure-overview.png
+.. |region-overview.png: Nested structure of a region.| image:: ./_static/images/region-overview.png
+.. |zone-overview.png: Nested structure of a simple zone.| image:: ./_static/images/zone-overview.png
+.. |pod-overview.png: Nested structure of a simple pod| image:: ./_static/images/pod-overview.png
+.. |cluster-overview.png: Structure of a simple cluster| image:: ./_static/images/cluster-overview.png
+.. |installation-complete.png: Finished installs with single Management Server and multiple Management Servers| image:: ./_static/images/installation-complete.png
+.. |change-password.png: button to change a user's password| image:: ./_static/images/change-password.png
+.. |provisioning-overview.png: Conceptual overview of a basic deployment| image:: ./_static/images/provisioning-overview.png
+.. |vsphereclient.png: vSphere client| image:: ./_static/images/vsphere-client.png
+.. |addcluster.png: add a cluster| image:: ./_static/images/add-cluster.png
+.. |ConsoleButton.png: button to launch a console| image:: ./_static/images/console-icon.png
+.. |DeleteButton.png: button to delete dvSwitch| image:: ./_static/images/delete-button.png
+.. |vds-name.png: Name of the dvSwitch as specified in the vCenter.| image:: ./_static/images/vds-name.png
+.. |traffic-type.png: virtual switch type| image:: ./_static/images/traffic-type.png
+.. |dvSwitchConfig.png: Configuring dvSwitch| image:: ./_static/images/dvSwitch-config.png
+.. |Small-Scale Deployment| image:: ./_static/images/small-scale-deployment.png
+.. |Large-Scale Redundant Setup| image:: ./_static/images/large-scale-redundant-setup.png
+.. |Multi-Node Management Server| image:: ./_static/images/multi-node-management-server.png
+.. |Example Of A Multi-Site Deployment| image:: ./_static/images/multi-site-deployment.png
+.. |Separate Storage Network| image:: ./_static/images/separate-storage-network.png
+.. |NIC Bonding And Multipath I/O| image:: ./_static/images/nic-bonding-and-multipath-io.png
+.. |Use the GUI to set the configuration variable to true| image:: ./_static/images/ec2-s3-configuration.png
+.. |Use the GUI to set the name of a compute service offering to an EC2 instance type API name.| image:: ./_static/images/compute-service-offerings.png
+.. |parallel-mode.png: adding a firewall and load balancer in parallel mode.| image:: ./_static/images/parallel-mode.png
+.. |guest-traffic-setup.png: Depicts a guest traffic setup| image:: ./_static/images/guest-traffic-setup.png
+.. |networksinglepod.png: diagram showing logical view of network in a pod| image:: ./_static/images/network-singlepod.png
+.. |networksetupzone.png: Depicts network setup in a single zone| image:: ./_static/images/network-setup-zone.png
+.. |addguestnetwork.png: Add Guest network setup in a single zone| image:: ./_static/images/add-guest-network.png
+.. |remove-nic.png: button to remove a NIC| image:: ./_static/images/remove-nic.png
+.. |set-default-nic.png: button to set a NIC as default one.| image:: ./_static/images/set-default-nic.png
+.. |EditButton.png: button to edit a network| image:: ./_static/images/edit-icon.png
+.. |edit-icon.png: button to edit a network| image:: ./_static/images/edit-icon.png
+.. |addAccount-icon.png: button to assign an IP range to an account.| image:: ./_static/images/addAccount-icon.png
+.. |eip-ns-basiczone.png: Elastic IP in a NetScaler-enabled Basic Zone.| image:: ./_static/images/eip-ns-basiczone.png
+.. |add-ip-range.png: adding an IP range to a network.| image:: ./_static/images/add-ip-range.png
+.. |httpaccess.png: allows inbound HTTP access from anywhere| image:: ./_static/images/http-access.png
+.. |autoscaleateconfig.png: Configuring AutoScale| image:: ./_static/images/autoscale-config.png
+.. |EnableDisable.png: button to enable or disable AutoScale.| image:: ./_static/images/enable-disable-autoscale.png
+.. |gslb.png: GSLB architecture| image:: ./_static/images/gslb.png
+.. |gslb-add.png: adding a gslb rule| image:: ./_static/images/add-gslb.png
+.. |ReleaseIPButton.png: button to release an IP| image:: ./_static/images/release-ip-icon.png
+.. |EnableNATButton.png: button to enable NAT| image:: ./_static/images/enable-disable.png
+.. |egress-firewall-rule.png: adding an egress firewall rule| image:: ./_static/images/egress-firewall-rule.png
+.. |AttachDiskButton.png: button to attach a volume| image:: ./_static/images/vpn-icon.png
+.. |vpn-icon.png: button to enable VPN| image:: ./_static/images/vpn-icon.png
+.. |addvpncustomergateway.png: adding a customer gateway.| image:: ./_static/images/add-vpn-customer-gateway.png
+.. |edit.png: button to edit a VPN customer gateway| image:: ./_static/images/edit-icon.png
+.. |delete.png: button to remove a VPN customer gateway| image:: ./_static/images/delete-button.png
+.. |createvpnconnection.png: creating a VPN connection to the customer gateway.| image:: ./_static/images/create-vpn-connection.png
+.. |remove-vpn.png: button to remove a VPN connection| image:: ./_static/images/remove-vpn.png
+.. |reset-vpn.png: button to reset a VPN connection| image:: ./_static/images/reset-vpn.png
+.. |mutltier.png: a multi-tier setup.| image:: ./_static/images/multi-tier-app.png
+.. |add-vpc.png: adding a vpc.| image:: ./_static/images/add-vpc.png
+.. |add-tier.png: adding a tier to a vpc.| image:: ./_static/images/add-tier.png
+.. |replace-acl-icon.png: button to replace an ACL list| image:: ./_static/images/replace-acl-icon.png
+.. |add-new-gateway-vpc.png: adding a private gateway for the VPC.| image:: ./_static/images/add-new-gateway-vpc.png
+.. |replace-acl-icon.png: button to replace the default ACL behaviour.| image:: ./_static/images/replace-acl-icon.png
+.. |add-vm-vpc.png: adding a VM to a vpc.| image:: ./_static/images/add-vm-vpc.png
+.. |addvm-tier-sharednw.png: adding a VM to a VPC tier and shared network.| image:: ./_static/images/addvm-tier-sharednw.png
+.. |release-ip-icon.png: button to release an IP.| image:: ./_static/images/release-ip-icon.png
+.. |enable-disable.png: button to enable Static NAT.| image:: ./_static/images/enable-disable.png
+.. |select-vmstatic-nat.png: selecting a tier to apply staticNAT.| image:: ./_static/images/select-vm-staticnat-vpc.png
+.. |vpc-lb.png: Configuring internal LB for VPC| image:: ./_static/images/vpc-lb.png
+.. |del-tier.png: button to remove a tier| image:: ./_static/images/del-tier.png
+.. |remove-vpc.png: button to remove a VPC| image:: ./_static/images/remove-vpc.png
+.. |edit-icon.png: button to edit a VPC| image:: ./_static/images/edit-icon.png
+.. |restart-vpc.png: button to restart a VPC| image:: ./_static/images/restart-vpc.png