1add6fc222
Change-Id: I4f098d731693e635ebcc89357d382674c7730201
100 lines
3.5 KiB
ReStructuredText
100 lines
3.5 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. 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.
|
|
|
|
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 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
|
|
|
|
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.
|
|
|
|
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!
|