devstack/docs/source/guides/single-vm.html
Dean Troyer 54b9732339 Move static docs into master branch
The hand-maintained static HTML docs for DevStack have been in a
GitHub gh-pages branch; move them into the master branch in
preparation for hosting them in openstack.org infrastructure.

By default tools/build_docs.sh now builds the static HTML output
into docs/html.

Change-Id: Ide5f7d980a294c7a9f8a3decaed0939f1c239934
2014-06-20 18:04:55 -05:00

138 lines
5.8 KiB
HTML

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Single Machine Guide - DevStack</title>
<meta name="description" content="">
<meta name="author" content="">
<!-- Le HTML5 shim, for IE6-8 support of HTML elements -->
<!--[if lt IE 9]>
<script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script>
<![endif]-->
<!-- Le styles -->
<link href="../assets/css/bootstrap.css" rel="stylesheet">
<link href="../assets/css/local.css" rel="stylesheet">
<style type="text/css">
body { padding-top: 60px; }
dd { padding: 10px; }
</style>
<!-- Le javascripts -->
<script src="../assets/js/jquery-1.7.1.min.js" type="text/javascript" charset="utf-8"></script>
<script src="../assets/js/bootstrap.js" type="text/javascript" charset="utf-8"></script>
</head>
<body>
<div class="navbar navbar-fixed-top">
<div class="navbar-inner">
<div class="container">
<a class="brand" href="/">DevStack</a>
<ul class="nav pull-right">
<li><a href="../overview.html">Overview</a></li>
<li><a href="../changes.html">Changes</a></li>
<li><a href="../faq.html">FAQ</a></li>
<li><a href="http://github.com/openstack-dev/devstack">GitHub</a></li>
<li><a href="https://review.openstack.org/#/q/status:open+project:openstack-dev/devstack,n,z">Gerrit</a></li>
</ul>
</div>
</div>
</div>
<div class="container">
<section id="overview">
<h1>Running a Cloud in a VM</h1>
<p>Use the cloud to build the cloud! Use your cloud to launch new versions of OpenStack
in about 5 minutes. When you break it, start over! The VMs launched in the cloud will
be slow as they are running in QEMU (emulation), but their primary use is testing
OpenStack development and operation. Speed not required.</p>
</section>
<section id="prerequisites">
<div class="page-header">
<h2>Prerequisites <small>Cloud & Image</small></h2>
</div>
<h3>Virtual Machine</h3>
<p>DevStack should run in any virtual machine running a supported Linux release. It will perform best with 2Gb or more of RAM.</p>
<h3>OpenStack Deployment &amp; cloud-init</h3>
<p>If the cloud service has an image with <code>cloud-init</code> pre-installed, use it. You can
get one from <a href="http://uec-images.ubuntu.com">Ubuntu's Daily Build</a>
site if necessary. This will enable you to launch VMs with userdata that installs
everything at boot time. The userdata script below will install and run
DevStack with a minimal configuration. The use of <code>cloud-init</code>
is outside the scope of this document, refer to <a href"http://cloudinit.readthedocs.org/en/latest/index.html">the
<code>cloud-init</code> docs</a> for more information.</p>
<p>If you are directly using a hypervisor like Xen, kvm or VirtualBox you can manually kick off
the script below as a non-root user in a bare-bones server installation.</p>
</section>
<section id="requirements">
<div class="page-header">
<h2>Installation <small>shake and bake</small></h2>
</div>
<h3>Launching With Cloud-Init</h3>
<p>This cloud config grabs the latest version of DevStack via git, creates a minimal
<code>local.conf</code> file and kicks off <code>stack.sh</code>. It should
be passed as the user-data file when booting the VM.</p>
<pre>#cloud-config
users:
- default
- name: stack
lock_passwd: False
sudo: ["ALL=(ALL) NOPASSWD:ALL\nDefaults:stack !requiretty"]
shell: /bin/bash
write_files:
- content: |
#!/bin/sh
DEBIAN_FRONTEND=noninteractive sudo apt-get -qqy update || sudo yum update -qy
DEBIAN_FRONTEND=noninteractive sudo apt-get install -qqy git || sudo yum install -qy git
sudo chown stack:stack /home/stack
cd /home/stack
git clone https://github.com/openstack-dev/devstack.git
cd devstack
echo '[[local|localrc]]' > local.conf
echo ADMIN_PASSWORD=password >> local.conf
echo MYSQL_PASSWORD=password >> local.conf
echo RABBIT_PASSWORD=password >> local.conf
echo SERVICE_PASSWORD=password >> local.conf
echo SERVICE_TOKEN=tokentoken >> local.conf
./stack.sh
path: /home/stack/start.sh
permissions: 0755
runcmd:
- su -l stack ./start.sh</pre>
<p>As DevStack will refuse to run as root, this configures <code>cloud-init</code>
to create a non-root user and run the <code>start.sh</code> script as that user.</p>
<h3>Launching By Hand</h3>
<p>Using a hypervisor directly, launch the VM and either manually perform the steps in the
embedded shell script above or copy it into the VM.</p>
<h3>Using OpenStack</h3>
<p>At this point you should be able to access the dashboard. Launch VMs and if you give them floating IPs access those VMs from other machines on your network.</p>
<p>One interesting use case is for developers working on a VM on their laptop. Once
<code>stack.sh</code> has completed once, all of the pre-requisite packages are installed
in the VM and the source trees checked out. Setting <code>OFFLINE=True</code> in
<code>local.conf</code> enables <code>stack.sh</code> to run multiple times without an Internet
connection. DevStack, making hacking at the lake possible since 2012!</p>
</section>
<footer>
<p>&copy; Openstack Foundation 2011-2014 &mdash; An <a href="https://www.openstack.org/">OpenStack</a> <a href="https://wiki.openstack.org/wiki/Programs">program</a></p>
</footer>
</div> <!-- /container -->
</body>
</html>