blob: ed9d9d12ae1e28d099ea5149ed2a8a576891f134 [file] [log] [blame] [view]
Dean Troyere9819d52012-03-21 11:25:06 -05001DevStack is a set of scripts and utilities to quickly deploy an OpenStack cloud.
Anthony Young63987872011-09-30 11:34:43 -07002
3# Goals
4
Dean Troyer5218d452012-02-04 02:13:23 -06005* To quickly build dev OpenStack environments in a clean Ubuntu or Fedora environment
Anthony Young073d17d2011-11-23 12:50:46 -08006* To describe working configurations of OpenStack (which code branches work together? what do config files look like for those branches?)
7* To make it easier for developers to dive into OpenStack so that they can productively contribute without having to understand every part of the system at once
Anthony Young63987872011-09-30 11:34:43 -07008* To make it easy to prototype cross-project features
Dean Troyerce043c42012-02-03 22:56:38 -06009* To sanity-check OpenStack builds (used in gating commits to the primary repos)
Jesse Andrewsba23cc72011-09-11 03:22:13 -070010
Jesse Andrewsb69d6ce2011-10-13 10:36:00 -070011Read more at http://devstack.org (built from the gh-pages branch)
12
Dean Troyere9819d52012-03-21 11:25:06 -050013IMPORTANT: Be sure to carefully read `stack.sh` and any other scripts you execute before you run them, as they install software and may alter your networking configuration. We strongly recommend that you run `stack.sh` in a clean and disposable vm when you are first getting started.
Anthony Young0e65abf2011-09-30 09:24:00 -070014
Renuka Aptec56885a2012-02-29 16:09:26 -080015# Devstack on Xenserver
16
Dean Troyere9819d52012-03-21 11:25:06 -050017If you would like to use Xenserver as the hypervisor, please refer to the instructions in `./tools/xen/README.md`.
Renuka Aptec56885a2012-02-29 16:09:26 -080018
Anthony Young073d17d2011-11-23 12:50:46 -080019# Versions
20
Dean Troyere9819d52012-03-21 11:25:06 -050021The devstack master branch generally points to trunk versions of OpenStack components. For older, stable versions, look for branches named stable/[release] in the DevStack repo. For example, you can do the following to create a diablo OpenStack cloud:
Anthony Young073d17d2011-11-23 12:50:46 -080022
23 git checkout stable/diablo
24 ./stack.sh
25
Dean Troyere9819d52012-03-21 11:25:06 -050026You can also pick specific OpenStack project releases by setting the appropriate `*_BRANCH` variables in `localrc` (look in `stackrc` for the default set). Usually just before a release there will be milestone-proposed branches that need to be tested::
Dean Troyerce043c42012-02-03 22:56:38 -060027
Dean Troyere9819d52012-03-21 11:25:06 -050028 GLANCE_REPO=https://github.com/openstack/glance.git
29 GLANCE_BRANCH=milestone-proposed
Dean Troyerce043c42012-02-03 22:56:38 -060030
31# Start A Dev Cloud
32
33Installing in a dedicated disposable vm is safer than installing on your dev machine! To start a dev cloud:
Anthony Young0e65abf2011-09-30 09:24:00 -070034
35 ./stack.sh
36
Anthony Young073d17d2011-11-23 12:50:46 -080037When the script finishes executing, you should be able to access OpenStack endpoints, like so:
Anthony Young63987872011-09-30 11:34:43 -070038
Tres Henryca85b792011-10-28 14:00:21 -070039* Horizon: http://myhost/
Anthony Young63987872011-09-30 11:34:43 -070040* Keystone: http://myhost:5000/v2.0/
41
Anthony Young073d17d2011-11-23 12:50:46 -080042We also provide an environment file that you can use to interact with your cloud via CLI:
43
44 # source openrc file to load your environment with osapi and ec2 creds
45 . openrc
46 # list instances
47 nova list
Dean Troyer0bd24102012-03-08 00:33:54 -060048
49If the EC2 API is your cup-o-tea, you can create credentials and use euca2ools:
50
51 # source eucarc to generate EC2 credentials and set up the environment
52 . eucarc
Anthony Young073d17d2011-11-23 12:50:46 -080053 # list instances using ec2 api
54 euca-describe-instances
55
Anthony Young63987872011-09-30 11:34:43 -070056# Customizing
57
Dean Troyere9819d52012-03-21 11:25:06 -050058You can override environment variables used in `stack.sh` by creating file name `localrc`. It is likely that you will need to do this to tweak your networking configuration should you need to access your cloud from a different host.
Chmouel Boudjnah782f24e2012-02-29 13:42:44 +000059
60# Swift
61
Dean Troyere9819d52012-03-21 11:25:06 -050062Swift is not installed by default, you can enable easily by adding this to your `localrc`:
Chmouel Boudjnah782f24e2012-02-29 13:42:44 +000063
Doug Hellmannf04178f2012-07-05 17:10:03 -040064 enable_service swift
Chmouel Boudjnah782f24e2012-02-29 13:42:44 +000065
Dean Troyere9819d52012-03-21 11:25:06 -050066If you want a minimal Swift install with only Swift and Keystone you can have this instead in your `localrc`:
Chmouel Boudjnah504f8712012-03-15 20:43:26 +000067
Doug Hellmannf04178f2012-07-05 17:10:03 -040068 disable_all_services
69 enable_service key mysql swift
Chmouel Boudjnah504f8712012-03-15 20:43:26 +000070
Dean Troyere9819d52012-03-21 11:25:06 -050071If you use Swift with Keystone, Swift will authenticate against it. You will need to make sure to use the Keystone URL to auth against.
Chmouel Boudjnah504f8712012-03-15 20:43:26 +000072
Dean Troyere9819d52012-03-21 11:25:06 -050073Swift will be acting as a S3 endpoint for Keystone so effectively replacing the `nova-objectstore`.
Chmouel Boudjnah504f8712012-03-15 20:43:26 +000074
Dean Troyere9819d52012-03-21 11:25:06 -050075Only Swift proxy server is launched in the screen session all other services are started in background and managed by `swift-init` tool.
Chmouel Boudjnah782f24e2012-02-29 13:42:44 +000076
Dean Troyere9819d52012-03-21 11:25:06 -050077By default Swift will configure 3 replicas (and one spare) which could be IO intensive on a small vm, if you only want to do some quick testing of the API you can choose to only have one replica by customizing the variable `SWIFT_REPLICAS` in your `localrc`.