More Related Content
Similar to OpenStack Development Using devstack (20)
OpenStack Development Using devstack
- 3. OpenStack Mission
“To produce the ubiquitous open source cloud
computing platform that will meet the needs of
public and private cloud providers regardless of
size, by being simple to implement and
massively scalable.”
© 2010 Cisco and/or its affiliates. All rights reserved. Cisco Confidential 3
- 4. • OpenStack is open source software that allows any company to build their own
public or private cloud
• Sits above the hypervisor and is hypervisor agnostic
KVM, Xen, Hyper-V, ESX
• Think of it as: “software that powers Amazon’s ECS+S3”.
© 2010 Cisco and/or its affiliates. All rights reserved. Cisco Confidential 4
- 5. OpenStack Technology
Today (Folsom release)
• Compute Service (Nova)
• Object Storage Service (Swift)
• Image Service (Glance)
• Identity Service (Keystone)
• Dashboard (Horizon)
• Network Service (Quantum)
Also Releases
• Load Balancer Service (proposed) • Cactus (Q1 2011)
• Database Service (proposed) • Diablo (Q3 2011)
• Heat API (AWS CloudForms compatible) • Essex (Q1 2012)
• Ceilometer monitoring and metering (proposed) • Folsom (Q3 2012)
• Grizzly (Q1 2013)
© 2010 Cisco and/or its affiliates. All rights reserved. Cisco Confidential 5
- 7. What is
© 2010 Cisco and/or its affiliates. All rights reserved. Cisco Confidential 7
- 8. • Quickstart
http://devstack.org/
git clone https://github.com/openstack-dev/devstack.git
cd devstack && ./stack.sh
• Files of note
localrc: Contains settings for each node running devstack
stackrc: git repository and branch information
© 2010 Cisco and/or its affiliates. All rights reserved. Cisco Confidential 8
- 9. • A documented shell script to build complete OpenStack development environments
• devstack is written in bash
• Originally created by Rackspace Cloud Builders
Now maintained by the OpenStack Community
• Supported on both Ubuntu and Fedora Linux
• Able to run in both single and multi-node environments
© 2010 Cisco and/or its affiliates. All rights reserved. Cisco Confidential 9
- 10. • Intended to allow you to deploy OpenStack in a production environment
• The exact way you would deploy OpenStack in production (but it’s close)
• The way to do a full system qualification of your OpenStack work
Still need to test things using actual packages for your distribution
© 2010 Cisco and/or its affiliates. All rights reserved. Cisco Confidential 10
- 11. • Developers working on OpenStack
• Used to test changes and verify they work in a running OpenStack deployment
• Used by the CI system to test changes as they are pushed into gerrit for review
• Used for demos and proof of concept work
© 2010 Cisco and/or its affiliates. All rights reserved. Cisco Confidential 11
- 12. • devstack will pull code from the upstream OpenStack git repositories and deploy it on
your host or virtual machine
devstack is not using operating system packages, but actual git
Well the OpenStack CI system usually ensures the upstream branches always work, there are no
warranties here (e.g. buyer beware)
• You can configure devstack to make use of releases other than the master release
To use Folsom instead of grizzly add this to localrc:
NOVA_BRANCH=stable/folsom
CINDER_BRANCH=stable/folsom
GLANCE_BRANCH=stable/folsom
KEYSTONE_BRANCH=stable/folsom
QUANTUM_BRANCH=stable/folsom
HORIZON_BRANCH=stable/folsom
© 2010 Cisco and/or its affiliates. All rights reserved. Cisco Confidential 12
- 13. • devstack will run on Fedora 16/17/18 or Ubuntu 11.10/12.04/12.10
• Devstack will run equally well either directly on physical hardware or in a virtual machine
• Runs in a VM with whatever virtualization software you are familiar with:
VMware ESX
VMware Workstation
VMware Fusion
VirtualBox
KVM
Xen
© 2010 Cisco and/or its affiliates. All rights reserved. Cisco Confidential 13
- 14. • “screen” is a software application which can be used to multiplex several virtual consoles
• Allows a user to “attach” to a screen session and “detach” from a screen session
• devstack runs all the OpenStack software in a screen session
• Very handy for debugging your environment, restarting OpenStack processes, and
connecting back into your devstack host with ssh
• Handy screen commands:
Next screen: CTRL-A-N
Previous screen: CTRL-A-P
Pause the output: CTRL-ESC (scroll around with “vi” commands)
Un-pause the output: CTRL-ESC again
© 2010 Cisco and/or its affiliates. All rights reserved. Cisco Confidential 14
- 15. • Lab Proxies cause issues for tools such as git
• IT does provide a socks proxy to help with this issue
• Install a tool called “tsocks” to work around proxy issues
• Alias “git” to “tsocks git” in /etc/bash.bashrc
© 2010 Cisco and/or its affiliates. All rights reserved. Cisco Confidential 15
- 16. • Two virtual machines running inside Vmware Fusion on a Mac
Both virtual machines running Fedora 17
One acts as the control and compute node running Nova, Glance, Horizon, and Quantum
The other acts as a compute node only and runs Nova compute and the OVS Quantum Agent
• Running the very latest OpenStack “Folsom” code from git
Makes use of changes to localrc I discussed earlier to pull from the stable/folsom branch
© 2010 Cisco and/or its affiliates. All rights reserved. Cisco Confidential 16
- 17. OFFLINE=True Q_HOST=$SERVICE_HOST # compute service
Q_USE_NAMESPACE=False NOVA_BRANCH=stable/folsom
#RECLONE=yes
ENABLE_TENANT_TUNNELS=True
disable_service n-net # volume service
MYSQL_HOST=$SERVICE_HOST
enable_service q-svc CINDER_BRANCH=stable/folsom
RABBIT_HOST=$SERVICE_HOST
enable_service q-agt # image catalog service
GLANCE_HOSTPORT=$SERVICE_HOST:9292
enable_service q-dhcp KEYSTONE_AUTH_HOST=$SERVICE_HOST GLANCE_BRANCH=stable/folsom
enable_service q-l3 KEYSTONE_SERVICE_HOST=$SERVICE_HOST # unified auth system (manages
accounts/tokens)
enable_service quantum
MYSQL_PASSWORD=mysql KEYSTONE_BRANCH=stable/folsom
#enable_service ryu
RABBIT_PASSWORD=rabbit # quantum service
HOST_NAME=$(hostname)
SERVICE_TOKEN=service
SERVICE_HOST_NAME=${HOST_NAME} QUANTUM_BRANCH=stable/folsom
SERVICE_PASSWORD=admin
SERVICE_HOST=192.168.64.188 # django powered web control panel for
ADMIN_PASSWORD=admin openstack
FLOATING_RANGE=192.168.100.0/24
HORIZON_BRANCH=stable/folsom
Q_PLUGIN=openvswitch SCHEDULER=nova.scheduler.simple.SimpleScheduler
© 2010 Cisco and/or its affiliates. All rights reserved. Cisco Confidential 17
- 18. OFFLINE=true Q_HOST=$SERVICE_HOST # compute service
#RECLONE=yes Q_USE_NAMESPACE=False NOVA_BRANCH=stable/folsom
disable_all_services ENABLE_TENANT_TUNNELS=True # volume service
enable_service rabbit n-cpu quantum q-agt MYSQL_HOST=$SERVICE_HOST CINDER_BRANCH=stable/folsom
RABBIT_HOST=$SERVICE_HOST # image catalog service
HOST_NAME=$(hostname)
GLANCE_HOSTPORT=$SERVICE_HOST:9292 GLANCE_BRANCH=stable/folsom
KEYSTONE_AUTH_HOST=$SERVICE_HOST # unified auth system (manages
SERVICE_HOST_NAME=km-dhcp-64-188
accounts/tokens)
KEYSTONE_SERVICE_HOST=$SERVICE_HOS
SERVICE_HOST=192.168.64.188 T KEYSTONE_BRANCH=stable/folsom
# quantum service
FLOATING_RANGE=192.168.100.0/24 MYSQL_PASSWORD=mysql
QUANTUM_BRANCH=stable/folsom
Q_PLUGIN=openvswitch RABBIT_PASSWORD=rabbit
# django powered web control panel for
openstack
SERVICE_TOKEN=service
SERVICE_PASSWORD=admin HORIZON_BRANCH=stable/folsom
ADMIN_PASSWORD=admin
© 2010 Cisco and/or its affiliates. All rights reserved. Cisco Confidential 18
- 19. • Running devstack
• Showing all the OpenStack services running
• Interacting via the CLI and Dashboard with OpenStack
• Running virtual machines
• “How to” devstack development
© 2010 Cisco and/or its affiliates. All rights reserved. Cisco Confidential 19
- 20. © 2010 Cisco and/or its affiliates. All rights reserved. Cisco Confidential 20