devstack/doc/source/guides/single-vm.rst
Steve Martinelli 3567d6103a remove SERVICE_TOKEN from the docs
there are a few lingering instances of SERVICE_TOKEN in the docs
and some of the scripts in tools.

Change-Id: I9d2147eea6639db1f4ea15a259c147eecfc339ff
2016-01-10 01:29:39 +00:00

104 lines
3.6 KiB
ReStructuredText

====================
All-In-One Single VM
====================
Use the cloud to build the cloud! Use your cloud to launch new versions
of OpenStack in about 5 minutes. If 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.
Prerequisites Cloud & Image
===========================
Virtual Machine
---------------
DevStack should run in any virtual machine running a supported Linux
release. It will perform best with 4GB or more of RAM.
OpenStack Deployment & cloud-init
---------------------------------
If the cloud service has an image with ``cloud-init`` pre-installed, use
it. You can get one from `Ubuntu's Daily
Build <http://uec-images.ubuntu.com>`__ 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 ``cloud-init`` is outside the scope of
this document, refer to the ``cloud-init`` docs for more information.
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.
Installation shake and bake
===========================
Launching With Cloud-Init
-------------------------
This cloud config grabs the latest version of DevStack via git, creates
a minimal ``local.conf`` file and kicks off ``stack.sh``. It should be
passed as the user-data file when booting the VM.
::
#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://git.openstack.org/openstack-dev/devstack
cd devstack
echo '[[local|localrc]]' > local.conf
echo ADMIN_PASSWORD=password >> local.conf
echo DATABASE_PASSWORD=password >> local.conf
echo RABBIT_PASSWORD=password >> local.conf
echo SERVICE_PASSWORD=password >> local.conf
./stack.sh
path: /home/stack/start.sh
permissions: 0755
runcmd:
- su -l stack ./start.sh
As DevStack will refuse to run as root, this configures ``cloud-init``
to create a non-root user and run the ``start.sh`` script as that user.
If you are using cloud-init and you have not
`enabled custom logging <../configuration.html#enable-logging>`_ of the stack
output, then the stack output can be found in
``/var/log/cloud-init-output.log`` by default.
Launching By Hand
-----------------
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.
Using OpenStack
---------------
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.
One interesting use case is for developers working on a VM on their
laptop. Once ``stack.sh`` has completed once, all of the pre-requisite
packages are installed in the VM and the source trees checked out.
Setting ``OFFLINE=True`` in ``local.conf`` enables ``stack.sh`` to run
multiple times without an Internet connection. DevStack, making hacking
at the lake possible since 2012!