This project will allow you automate the creation of a VM with devstack installed and running. It uses vagrant to create the VM and puppet to configure the VM so all required software is installed and running.
- Install VirtualBox.
- Install vagrant. Note: this has not been tested on the latest vagrant 1.1.0
- Optionally, but it's a good idea, install the vagrant virtualbox guest additions plugin and also the hostmaster plugin
- Clone this repository! :-)
cd vagrant-devstack
git submodule init
git submodule update
vagrant up
The initial install takes time so go do something useful or have a coffee! :-) When it's done, you should be able to reach the OpenStack dashboard from https://10.1.2.44. If you use the hostmaster plugin then access via https://devstack.local. If you wish to ssh to the OpenStack virtual box execute vagrant ssh
.
-
If you wish to enable Heat then add to the
$localrc_cnt
variable (inmanifests/site.pp
) the following:ENABLED_SERVICES+=,heat,h-api,h-api-cfn,h-api-cw,h-eng
For more information about this see the OpenStack wiki.
-
If you wish to enable Ceilometer then add to the
$localrc_cnt
variable (inmanifests/site.pp
) the following:enable_service ceilometer-acompute,ceilometer-acentral,ceilometer-collector,ceilometer-api
EXTRA_OPTS=(notification_driver=nova.openstack.common.notifier.rabbit_notifier,ceilometer.compute.nova_notifier)
For information about this see the OpenStack wiki.
-
Currently the VM is allocated 1024MB of RAM. You will only be able to create 1 VM. Suggestion is to either increase the RAM allocation (edit
Vagrantfile
) or create some new OpenStack flavors with less RAM (the smallest default is 512MB) e.g.:nova-manage flavor create --name=itsy --cpu=1 --memory=128 --flavor=98 --root_gb=1 --ephemeral_gb=1
nova-manage flavor create --name=bitsy --cpu=1 --memory=256 --flavor=99 --root_gb=1 --ephemeral_gb=1
-
To experiment with the various APIs via python:
vagrant ssh
sudo pip install bpython
- optional but a nice interactive interpreter. IPython does a great job too.- Try some code!
>>> from cinderclient.v1 import client
>>> USER="admin"
>>> PASS="admin"
>>> TENANT="admin"
>>> AUTH_URL="https://localhost:5000/v2.0/"
>>> c_client = client.Client(USER, PASS, TENANT, AUTH_URL, service_type="volume")
>>> c_client.volumes.create(size=1, display_name="my volume :)")
<Volume: 1e6213e3-89fb-45f2-b904-b7f5ce5cdd65>