blob: 0c8252b250a52ea12635023fb8303ca8f371415d [file] [log] [blame]
# SOME DESCRIPTIVE TITLE.
# Copyright (C) 2014, Apache CloudStack
# This file is distributed under the same license as the Apache CloudStack package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: Apache CloudStack 4.3\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2014-03-31 13:49-0400\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
#: ../../developer_guide.rst:2
# bb72baa2a42c478fa65fa1c9b410f0b6
msgid "CloudStack Installation from Source for Developers"
msgstr ""
#: ../../developer_guide.rst:4
# d5339eb5aa3a4e4797040c45829f7a12
msgid "This book is aimed at CloudStack developers who need to build the code. These instructions are valid on a Ubuntu 12.04 and CentOS 6.4 systems and were tested with the 4.2 release of Apache CloudStack, please adapt them if you are on a different operating system or using a newer/older version of CloudStack. This book is composed of the following sections:"
msgstr ""
#: ../../developer_guide.rst:10
# 2513ed5b50064ad5baea6e2d6ca56667
msgid "Installation of the prerequisites"
msgstr ""
#: ../../developer_guide.rst:11
# b609f7feda6e484ab28214d803d9ddb4
msgid "Compiling and installation from source"
msgstr ""
#: ../../developer_guide.rst:12
# 04a3de1bd1d548b5a551870f1087bba4
msgid "Using the CloudStack simulator"
msgstr ""
#: ../../developer_guide.rst:13
# df71d1f0b01c4b44a75c4d216cd5f03f
msgid "Installation with DevCloud the CloudStack sandbox"
msgstr ""
#: ../../developer_guide.rst:14
# fecac2ddc3b4418588b49180b4d1e60b
msgid "Building your own packages"
msgstr ""
#: ../../developer_guide.rst:15
#: ../../developer_guide.rst:458
# fc80af4f6f25482088389dc04fc822c8
# f6c0d2e4f50d4f1a8ce2a237d8fa69e2
msgid "The CloudStack API"
msgstr ""
#: ../../developer_guide.rst:16
#: ../../developer_guide.rst:596
# 2956ea125ee24f14a451fd03a284d663
# f78027510f8a487f8d4e8bf274978c61
msgid "Testing the AWS API interface"
msgstr ""
#: ../../developer_guide.rst:20
# 74ac0a26ef2e4fad99f218beafca959b
msgid "Prerequisites"
msgstr ""
#: ../../developer_guide.rst:22
# d62a80da8f72450fb3042984efc65381
msgid "In this section we'll look at installing the dependencies you'll need for Apache CloudStack development."
msgstr ""
#: ../../developer_guide.rst:26
# 1293735d08304e438df4d231fd9a602c
msgid "On Ubuntu 12.04"
msgstr ""
#: ../../developer_guide.rst:28
#: ../../developer_guide.rst:105
# d1ad39d0193e4fdfb1b38a70a5409bfd
# be623c5672e64a878c69313bd57bf97d
msgid "First update and upgrade your system:"
msgstr ""
#: ../../developer_guide.rst:35
# 515cc3ee920143b0a86beef63bd6d782
msgid "NTP might already be installed, check it with ``service ntp status``. If it's not then install NTP to synchronize the clocks:"
msgstr ""
#: ../../developer_guide.rst:42
#: ../../developer_guide.rst:118
# 4a52a01411eb42b98e46f94978008eb4
# 2c13eaff12c04b18af30f899add0eb45
msgid "Install ``openjdk``. As we're using Linux, OpenJDK is our first choice."
msgstr ""
#: ../../developer_guide.rst:48
# f04daa6be11c45beae58c455901d8f6c
msgid "Install ``tomcat6``, note that the new version of tomcat on `Ubuntu <http://packages.ubuntu.com/precise/all/tomcat6>`__ is the 6.0.35 version."
msgstr ""
#: ../../developer_guide.rst:56
#: ../../developer_guide.rst:141
# 35da40eb45c84d80bce02f7e347c27f7
# 9b90bffd5d744e20acf7be0491b4ce65
msgid "Next, we'll install MySQL if it's not already present on the system."
msgstr ""
#: ../../developer_guide.rst:62
#: ../../developer_guide.rst:147
# e26c79313e5e4528aba516b8b8ece9d8
# d8fb218502874578a85a5b15da88c447
msgid "Remember to set the correct ``mysql`` password in the CloudStack properties file. Mysql should be running but you can check it's status with:"
msgstr ""
#: ../../developer_guide.rst:70
# 706465b6a843445099c5b27e7d83a8d7
msgid "Developers wanting to build CloudStack from source will want to install the following additional packages. If you dont' want to build from source just jump to the next section."
msgstr ""
#: ../../developer_guide.rst:74
#: ../../developer_guide.rst:155
# f2054657f7a740a3a913c84c8b106f75
# fdc1c399ba0c41d49fdd4f90b0a4b203
msgid "Install ``git`` to later clone the CloudStack source code:"
msgstr ""
#: ../../developer_guide.rst:80
# 36e58aa93a534a019dcd4bb2d179b1dc
msgid "Install ``Maven`` to later build CloudStack"
msgstr ""
#: ../../developer_guide.rst:86
#: ../../developer_guide.rst:185
# 266630e646c14f149a80a8080bc4a605
# b362ed17e6ea43919b1119134acbee67
msgid "This should have installed Maven 3.0, check the version number with ``mvn --version``"
msgstr ""
#: ../../developer_guide.rst:89
#: ../../developer_guide.rst:188
# 0b84891f11754ca1b6aa57d307b41da0
# 7eea27fb13d64a71afe4098449f7941a
msgid "A little bit of Python can be used (e.g simulator), install the Python package management tools:"
msgstr ""
#: ../../developer_guide.rst:96
#: ../../developer_guide.rst:207
# f241bf5ebf2b426c8ca5da09dd3c2926
# 872eab2916d24aa2b16ef1dec59b6ae4
msgid "Finally install ``mkisofs`` with:"
msgstr ""
#: ../../developer_guide.rst:103
# 4c8d5bdb7efc4ad297090744e0b5041b
msgid "On centOS 6.4"
msgstr ""
#: ../../developer_guide.rst:112
# 7bf47463418146c19a2a78e6eb8c704a
msgid "If not already installed, install NTP for clock synchornization"
msgstr ""
#: ../../developer_guide.rst:124
# 3eb3a55c55a64e89bf977cacab10742b
msgid "Install ``tomcat6``, note that the version of tomcat6 in the default CentOS 6.4 repo is 6.0.24, so we will grab the 6.0.35 version. The 6.0.24 version will be installed anyway as a dependency to cloudstack."
msgstr ""
#: ../../developer_guide.rst:133
# 152fbd52e1674b388c1563eee33ac833
msgid "Setup tomcat6 system wide by creating a file ``/etc/profile.d/tomcat.sh`` with the following content:"
msgstr ""
#: ../../developer_guide.rst:161
# 890e6701f64c4b778299fbb766c03a08
msgid "Install ``Maven`` to later build CloudStack. Grab the 3.0.5 release from the Maven `website <http://maven.apache.org/download.cgi>`__"
msgstr ""
#: ../../developer_guide.rst:171
# e4f4020b65d54bcca21983184d1ebf14
msgid "Setup Maven system wide by creating a ``/etc/profile.d/maven.sh`` file with the following content:"
msgstr ""
#: ../../developer_guide.rst:179
# 93a2a4707fbb4f3c9dca441314ef0f5b
msgid "Log out and log in again and you will have maven in your PATH:"
msgstr ""
#: ../../developer_guide.rst:195
# 705ab873d8594008836944d2fdb91ad0
msgid "To install python-pip you might want to setup the Extra Packages for Enterprise Linux (EPEL) repo"
msgstr ""
#: ../../developer_guide.rst:204
# 54199fd0c3f14def8421b213f70c72cd
msgid "Then update you repository cache ``yum update`` and install pip ``yum -y install python-pip``"
msgstr ""
#: ../../developer_guide.rst:215
# 436a0377e85244e6a89d96d94c6beef9
msgid "Installing from Source"
msgstr ""
#: ../../developer_guide.rst:217
# b4b0b7748d0e448b9c381f7675f7806b
msgid "CloudStack uses git for source version control, if you know little about `git <http://book.git-scm.com/>`__ is a good start. Once you have git setup on your machine, pull the source with:"
msgstr ""
#: ../../developer_guide.rst:225
# 959ab8583f1c488096ee96002d7430bb
msgid "To build the latest stable release:"
msgstr ""
#: ../../developer_guide.rst:231
# 32c17b3a428d4f13a0424591bc786dbb
msgid "To compile Apache CloudStack, go to the cloudstack source folder and run:"
msgstr ""
#: ../../developer_guide.rst:238
# 0a54ef76f0e64d71b6a360f37d44a53f
msgid "If you want to skip the tests add ``-DskipTests`` to the command above. Do NOT use ``-Dmaven.test.skip=true`` because that will break the build."
msgstr ""
#: ../../developer_guide.rst:241
# f0271a41ba4f45f690af10f47502929e
msgid "You will have made sure to set the proper db password in ``utils/conf/db.properties``"
msgstr ""
#: ../../developer_guide.rst:244
# 54b58ef51d8e4ad285647fe474a79982
msgid "Deploy the database next:"
msgstr ""
#: ../../developer_guide.rst:250
# 2122fb6f613d43a781c2f4007e3fd921
msgid "Run Apache CloudStack with jetty for testing. Note that ``tomcat`` maybe be running on port 8080, stop it before you use ``jetty``"
msgstr ""
#: ../../developer_guide.rst:257
# 5b053ff2ea4742869f84d9168092cd85
msgid "Log Into Apache CloudStack:"
msgstr ""
#: ../../developer_guide.rst:259
# 0257fca9cb6a4e7cb348b6a94d6c5c16
msgid "Open your Web browser and use this URL to connect to CloudStack:"
msgstr ""
#: ../../developer_guide.rst:265
# 3c66106a410a484db9f40c126c10d71f
msgid "Replace ``localhost`` with the IP of your management server if need be."
msgstr ""
#: ../../developer_guide.rst:267
# 0bb7c9cacc68411b8f2531ede4d1864d
msgid "If you have iptables enabled, you may have to open the ports used by CloudStack. Specifically, ports 8080, 8250, and 9090."
msgstr ""
#: ../../developer_guide.rst:269
# 66464a03df3a4a21898be477a7ba82ce
msgid "You can now start configuring a Zone, playing with the API. Of course we did not setup any infrastructure, there is no storage, no hypervisors...etc. However you can run tests using the simulator. The following section shows you how to use the simulator so that you don't have to setup a physical infrastructure."
msgstr ""
#: ../../developer_guide.rst:276
# 7b8da57d07b6433591f284e715d12591
msgid "Using the Simulator"
msgstr ""
#: ../../developer_guide.rst:278
# c5a7fd74375f49ba9b6ac5f20c8b62a3
msgid "CloudStack comes with a simulator based on Python bindings called *Marvin*. Marvin is available in the CloudStack source code or on Pypi. With Marvin you can simulate your data center infrastructure by providing CloudStack with a configuration file that defines the number of zones/pods/clusters/hosts, types of storage etc. You can then develop and test the CloudStack management server *as if* it was managing your production infrastructure."
msgstr ""
#: ../../developer_guide.rst:286
# 910cc167b7ea42cdaf3c2c8194ae8a2b
msgid "Do a clean build:"
msgstr ""
#: ../../developer_guide.rst:292
# 60dfd43a808f43efa474d6c33f97a310
msgid "Deploy the database:"
msgstr ""
#: ../../developer_guide.rst:299
# c2ddf475c9a4458095381fdf5b36b7c8
msgid "Install marvin. Note that you will need to have installed ``pip`` properly in the prerequisites step."
msgstr ""
#: ../../developer_guide.rst:306
# 1dc977631ad34ca7a239c5ecbb85e4ee
msgid "Stop jetty (from any previous runs)"
msgstr ""
#: ../../developer_guide.rst:312
# e2356af9ad664188b84f183581bee912
msgid "Start jetty"
msgstr ""
#: ../../developer_guide.rst:318
# 81afb780da8545b6acc1c20b0e58af14
msgid "Setup a basic zone with Marvin. In a separate shell://"
msgstr ""
#: ../../developer_guide.rst:324
# 1c70455811e54629bfd79ac64c3fc76a
msgid "At this stage log in the CloudStack management server at http://localhost:8080/client with the credentials admin/password, you should see a fully configured basic zone infrastructure. To simulate an advanced zone replace ``basic.cfg`` with ``advanced.cfg``."
msgstr ""
#: ../../developer_guide.rst:329
# fc4686e3709d491c95f3817ca634b9aa
msgid "You can now run integration tests, use the API etc..."
msgstr ""
#: ../../developer_guide.rst:332
# f43ce08473a443e0bce6cb55638ff6fb
msgid "Using DevCloud"
msgstr ""
#: ../../developer_guide.rst:334
# d99c1e63a66443539d663a0cba7beca0
msgid "The Installing from source section will only get you to the point of runnign the management server, it does not get you any hypervisors. The simulator section gets you a simulated datacenter for testing. With DevCloud you can run at least one hypervisor and add it to your management server the way you would a real physical machine."
msgstr ""
#: ../../developer_guide.rst:340
# 168253f881c04354b99dca74e7f5b0f1
msgid "`DevCloud <https://cwiki.apache.org/confluence/display/CLOUDSTACK/DevCloud>`__ is the CloudStack sandbox, the standard version is a VirtualBox based image. There is also a KVM based image for it. Here we only show steps with the VirtualBox image. For KVM see the `wiki <https://cwiki.apache.org/confluence/display/CLOUDSTACK/devcloud-kvm>`__."
msgstr ""
#: ../../developer_guide.rst:346
# 356c77a0078f47408537fe8f1e31d6dd
msgid "\\*\\* DevCloud Pre-requisites"
msgstr ""
#: ../../developer_guide.rst:348
# 11bd2fad2f484f2f8b8c6b7ed60b1250
msgid "Install `VirtualBox <http://www.virtualbox.org>`__ on your machine"
msgstr ""
#: ../../developer_guide.rst:350
# d7bc0d03f3444e498f06a605608b9052
msgid "Run VirtualBox and under >Preferences create a *host-only interface* on which you disable the DHCP server"
msgstr ""
#: ../../developer_guide.rst:353
# 5c0b9c8ea6014082898304ea288ea1cf
msgid "Download the DevCloud `image <http://people.apache.org/~bhaisaab/cloudstack/devcloud/devcloud2.ova>`__"
msgstr ""
#: ../../developer_guide.rst:356
# e0a8e6ff6f5e4fcf9e0249f0ba785ecc
msgid "In VirtualBox, under File > Import Appliance import the DevCloud image."
msgstr ""
#: ../../developer_guide.rst:359
# c4ddca1ab8fd40938573ab654fbc2169
msgid "Verify the settings under > Settings and check the ``enable PAE`` option in the processor menu"
msgstr ""
#: ../../developer_guide.rst:362
# 086a74de91ec46829227fe969cbf8b0c
msgid "Once the VM has booted try to ``ssh`` to it with credentials: ``root/password``"
msgstr ""
#: ../../developer_guide.rst:365
# 5306cafba5b649ff96137347bd6739cf
msgid "ssh root@192.168.56.10"
msgstr ""
#: ../../developer_guide.rst:368
# ba0b24b4a7914152bf9c97b90f0456d9
msgid "Adding DevCloud as an Hypervisor"
msgstr ""
#: ../../developer_guide.rst:370
# 90a83e4e6fc246f383835f00daea0315
msgid "Picking up from a clean build:"
msgstr ""
#: ../../developer_guide.rst:377
# 18e7f5520af948fd9f6cd2215ddd2b4f
msgid "At this stage install marvin similarly than with the simulator:"
msgstr ""
#: ../../developer_guide.rst:383
# 4081a35f553c4690b8c41bed96c20e81
msgid "Start the management server"
msgstr ""
#: ../../developer_guide.rst:389
# cd9dceaaa6d3449f8260f7987d24e0e4
msgid "Then you are going to configure CloudStack to use the running DevCloud instance:"
msgstr ""
#: ../../developer_guide.rst:397
# 2a20e453295741e0addd797848f68254
msgid "If you are curious, check the ``devcloud.cfg`` file and see how the data center is defined: 1 Zone, 1 Pod, 1 Cluster, 1 Host, 1 primary Storage, 1 Seondary Storage, all provided by Devcloud."
msgstr ""
#: ../../developer_guide.rst:401
# 287ad3cc0fc64288a0f2cae9770decb2
msgid "You can now log in the management server at ``http://localhost:8080/client`` and start experimenting with the UI or the API."
msgstr ""
#: ../../developer_guide.rst:405
# a35e6fa14ec84e00acef35655b70837a
msgid "Do note that the management server is running in your local machine and that DevCloud is used only as a n Hypervisor. You could potentially run the management server within DevCloud as well, or memory granted, run multiple DevClouds."
msgstr ""
#: ../../developer_guide.rst:411
# 0b216797731e464fb1daa87f7f9dce1c
msgid "Building Packages"
msgstr ""
#: ../../developer_guide.rst:413
# aa52ec9b95b94fff98aeb64a23855ff5
msgid "Working from source is necessary when developing CloudStack. As mentioned earlier this is not primarily intended for users. However some may want to modify the code for their own use and specific infrastructure. The may also need to build their own packages for security reasons and due to network connectivity constraints. This section shows you the gist of how to build packages. We assume that the reader will know how to create a repository to serve this packages. The complete documentation is available on the `website <http://cloudstack.apache.org/docs/en-US/Apache_CloudStack/4.2.0/html/Installation_Guide/sect-source-builddebs.html>`__"
msgstr ""
#: ../../developer_guide.rst:423
# 2dc15f1c96914156a0e85887844d8a90
msgid "To build debian packages you will need couple extra packages that we did not need to install for source compilation:"
msgstr ""
#: ../../developer_guide.rst:431
# e0134f646f2b416ca19265ef188af9a7
msgid "Then build the packages with:"
msgstr ""
#: ../../developer_guide.rst:437
# 7fc94e8e24f64ccbb9a5f7e2a1a0fefc
msgid "One directory up from the CloudStack root dir you will find:"
msgstr ""
#: ../../developer_guide.rst:452
# 9e40c2af8b5d4ff088904366476f5d4b
msgid "Of course the community provides a repository for these packages and you can use it instead of building your own packages and putting them in your own repo. Instructions on how to use this community repository are available in the installation book."
msgstr ""
#: ../../developer_guide.rst:460
# 7c104d4cd0fe475e863b91f53449a5c5
msgid "The CloudStack API is a query based API using http that return results in XML or JSON. It is used to implement the default web UI. This API is not a standard like `OGF OCCI <http://www.ogf.org/gf/group_info/view.php?group=occi-wg>`__ or `DMTF CIMI <http://dmtf.org/standards/cloud>`__ but is easy to learn. Mapping exists between the AWS API and the CloudStack API as will be seen in the next section. Recently a Google Compute Engine interface was also developed that maps the GCE REST API to the CloudStack API described here. The API `docs <https://cloudstack.apache.org/api.html>`__ are a good start to learn the extent of the API. Multiple clients exist on `github <https://github.com/search?q=cloudstack+client&ref=cmdform>`__ to use this API, you should be able to find one in your favorite language. The reference documentation for the API and changes that might occur from version to version is availble `on-line <http://cloudstack.apache.org/docs/en-US/Apache_CloudStack/4.1.1/html/Developers_Guide/index.html>`__. This short section is aimed at providing a quick summary to give you a base understanding of how to use this API. As a quick start, a good way to explore the API is to navigate the dashboard with a firebug console (or similar developer console) to study the queries."
msgstr ""
#: ../../developer_guide.rst:481
# 0bcb8dd851254f9b9b0240917b405d84
msgid "In a succint statement, the CloudStack query API can be used via http GET requests made against your cloud endpoint (e.g http://localhost:8080/client/api). The API name is passed using the ``command`` key and the various parameters for this API call are passed as key value pairs. The request is signed using the access key and secret key of the user making the call. Some calls are synchronous while some are asynchronous, this is documented in the API `docs <https://cloudstack.apache.org/api.html>`__. Asynchronous calls return a ``jobid``, the status and result of a job can be queried with the ``queryAsyncJobResult`` call. Let's get started and give an example of calling the ``listUsers`` API in Python."
msgstr ""
#: ../../developer_guide.rst:493
# cb1f2074fce34b94ad77db3be1d917ce
msgid "First you will need to generate keys to make requests. Going through the dashboard, go under ``Accounts`` select the appropriate account then click on ``Show Users`` select the intended users and generate keys using the ``Generate Keys`` icon. You will see an ``API Key`` and ``Secret Key`` field being generated. The keys will be of the form:"
msgstr ""
#: ../../developer_guide.rst:504
# f06d2f79776845b69c69945a988dc02d
msgid "Open a Python shell and import the basic modules necessary to make the request. Do note that this request could be made many different ways, this is just a low level example. The ``urllib*`` modules are used to make the http request and do url encoding. The ``hashlib`` module gives us the sha1 hash function. It used to geenrate the ``hmac`` (Keyed Hashing for Message Authentication) using the secretkey. The result is encoded using the ``base64`` module."
msgstr ""
#: ../../developer_guide.rst:524
# 1bc86523e28745838203bfdeacc85364
msgid "Define the endpoint of the Cloud, the command that you want to execute, the type of the response (i.e XML or JSON) and the keys of the user. Note that we do not put the secretkey in our request dictionary because it is only used to compute the hmac."
msgstr ""
#: ../../developer_guide.rst:538
# 4096823c52da4b9d97971621c6bbdee5
msgid "Build the base request string, the combination of all the key/pairs of the request, url encoded and joined with ampersand."
msgstr ""
#: ../../developer_guide.rst:547
# 475167fa6f4f4187bc62b8c7b7dac9e1
msgid "Compute the signature with hmac, do a 64 bit encoding and a url encoding, the string used for the signature is similar to the base request string shown above but the keys/values are lower cased and joined in a sorted order"
msgstr ""
#: ../../developer_guide.rst:568
# e8ab8e0b9eaf4b9183fd8784025e5828
msgid "Finally, build the entire string by joining the baseurl, the request str and the signature. Then do an http GET:"
msgstr ""
#: ../../developer_guide.rst:586
# 34385cfcf355434bbfec59e948728211
msgid "All the clients that you will find on github will implement this signature technique, you should not have to do it by hand. Now that you have explored the API through the UI and that you understand how to make low level calls, pick your favorite client of use `CloudMonkey <https://pypi.python.org/pypi/cloudmonkey/>`__. CloudMonkey is a sub-project of Apache CloudStack and gives operators/developers the ability to use any of the API methods. It has nice auto-completion and help feature as well as an API discovery mechanism since 4.2."
msgstr ""
#: ../../developer_guide.rst:598
# 4bf1c04a89934aca9d24a5a585888739
msgid "While the native CloudStack API is not a standard, CloudStack provides a AWS EC2 compatible interface. It has the great advantage that existing tools written with EC2 libraries can be re-used against a CloudStack based cloud. In the installation books we described how to run this interface from installing packages. In this section we show you how to compile the interface with ``maven`` and test it with Python boto module."
msgstr ""
#: ../../developer_guide.rst:606
# a7d617f55dc447a49c45f903bced3aa6
msgid "Starting from a running management server (with DevCloud for instance), start the AWS API interface in a separate shell with:"
msgstr ""
#: ../../developer_guide.rst:613
# aa447203e885410e967cab647e8fa684
msgid "Log into the CloudStack UI ``http://localhost:8080/client``, go to *Service Offerings* and edit one of the compute offerings to have the name ``m1.small`` or any of the other AWS EC2 instance types."
msgstr ""
#: ../../developer_guide.rst:617
# 84e4d20e634f4ceab2d6ae95fe0bc920
msgid "With access and secret keys generated for a user you should now be able to use Python `Boto <http://docs.pythonboto.org/en/latest/>`__ module:"
msgstr ""
#: ../../developer_guide.rst:636
# 662e136af4714221a6a0414e4e68f928
msgid "Note the new ``api_version`` number in the connection object and also note that there was no user registration to make like in previous CloudStack releases."
msgstr ""
#: ../../developer_guide.rst:641
# b2bbf2564c724ebe98d0ac08c0ec5e58
msgid "Conclusions"
msgstr ""
#: ../../developer_guide.rst:643
# 590c4edda76644fe9a6410b6b2cb10fd
msgid "CloudStack is a mostly Java application running with Tomcat and Mysql. It consists of a management server and depending on the hypervisors being used, an agent installed on the hypervisor farm. To complete a Cloud infrastructure however you will also need some Zone wide storage a.k.a Secondary Storage and some Cluster wide storage a.k.a Primary storage. The choice of hypervisor, storage solution and type of Zone (i.e Basic vs. Advanced) will dictate how complex your installation can be. As a quick start, you might want to consider KVM+NFS and a Basic Zone."
msgstr ""
#: ../../developer_guide.rst:653
# 035523d6dcd4492cb920fdd912716794
msgid "If you've run into any problems with this, please ask on the cloudstack-dev `mailing list </mailing-lists.html>`__."
msgstr ""