OpenStack logo

OpenStack Overview

Monty Taylor <mordred@inaugust.com>| twitter:e_monty
James E. Blair <corvus@inaugust.com>
https://openstack-ci.github.com/publications/tutorial

Overview

Anti-overview

Getting Started With Devstack

Installing a Cloud using Devstack

Step One

Get devstack

Customizing Devstack

Fix Swap

Run devstack

And now we wait

OpenStack Overview

Projects

Libraries

Tools

Release Management

Who is Running It?

ALSO

Development Process Overview

Vision

Consistent Tooling

Development Infrastructure Systems

Environment

Gated Trunk

Everything Is Automated

Process Flow

Gerrit

Pre-merge Check

Approved Reviews

Types of Jenkins Gerrit Triggers

OpenID SSO Integration

Bug Integration - Gerrit

Bug Integration - Launchpad

Blueprints - Gerrit

Blueprints - Launchpad

Blueprints - Gerrit Topics

Git Review

corvus@shiprock:~/rs/github/quantum$ git commit -a
[new-versionpy ddf1dce] Base version.py on glance.
 3 files changed, 28 insertions(+), 107 deletions(-)
 delete mode 100644 version.py

corvus@shiprock:~/rs/github/quantum$ git review
remote: Resolving deltas:   0% (0/3)
remote: 
remote: New Changes:
remote:   https://review.openstack.org/3072
remote: 
To ssh://corvus@review.openstack.org:29418/openstack/quantum.git
 * [new branch]      HEAD -> refs/for/master/bug/916018

Types of Tests

Virtual Integration Tests

Devstack: https://github.com/openstack-dev/devstack

Easy for developers to recreate locally

On each commit:

Getting Started With Developing

http://www.linuxjedi.co.uk/2012/03/real-way-to-start-hacking-on-openstack.html

Add your blog to OpenStack Planet

git clone git://github.com/openstack/openstack-planet.git
cd openstack-planet
# edit planet.ini
# add your image
git add images/yourusername.png
git add planet.ini
git commit
git review

tox

Doing something more useful

git clone git://github.com/openstack/nova.git
# do things, now, to test it:
tox
# it's perfect - submit!
git commit
git review

Now We Have a Cloud!

Keystone

Keystone: Authentication

Keystone: Service Catalog

Nova

Nova API

Nova Compute

Nova Network

Nova Volume

Glance

Now What?

screen refresher

Client Access

debug info

export NOVACLIENT_DEBUG=1

Images in Glance

Security Groups (extension)

Keypairs (extension)

Flavors

Boot an Instance

Add an IP

Volumes

Hacking Code

Simulated Production

Great! Now how about a real deployment

Bare Metal Process

Each test:

Test Process Improved

One time (Orchestra driven):

Each test:

Cobbler

Ubuntu Orchestra

Walkthrough

Install Orchestra

Configure dnsmasq

Cloud Init Script

Add Profile

cobbler profile add \
--name=natty-x86_64-ostest \
--parent=natty-x86_64 \
--kickstart=/var/lib/cobbler/kickstarts/openstack.preseed \
--kopts="priority=critical locale=en_US"

Add machines manually

For each machine

cobbler system add \
--name=baremetal1 \
--hostname=baremetal1 \
--profile=natty-x86_64-ostest \
--mac=00:11:22:33:44:55 \
--power-type=ipmitool \
--power-user=IPMI_USERNAME \
--power-pass=IPMI_PASS \
--power-address=IPMI_IP_ADDR \
--ip-address=SYSTEM_IP_ADDRESS \
--subnet=SYSTEM_SUBNET \
--kopts="netcfg/choose_interface=auto netcfg/dhcp_timeout=60 auto=true
priority=critical"

Adding systems automatically

cobbler-enlist

d-i preseed/early_command string anna-install cobbler-enlist-udeb
d-i cobbler-enlist/cobbler-server-address http://IP/cobbler_api
d-i cobbler-enlist/cobbler-server-username cobbler
d-i cobbler-enlist/cobbler-server-password password
d-i cobbler-enlist/host-name some-host
d-i cobbler-enlist/host-profile 
d-i cobbler-enlist/warning-note note

Reinstall a machine

cobbler sync
cobbler system edit --netboot-enabled=Y --name=baremetal1
cobbler system reboot --name=baremetal1

Thanks!

Slides are available at https://github.com/openstack-ci/publications in the tutorial folder.