openstack havana

31
Lets build an OpenStack! Dan Bode @bodepd ‘doer of things’ at PuppetLabs Thursday, April 18, 13

Upload: bodepd

Post on 10-May-2015

1.369 views

Category:

Technology


0 download

DESCRIPTION

presentation used at the puppet build an openstack lab

TRANSCRIPT

Page 1: Openstack havana

Lets build an OpenStack!

Dan Bode@bodepd

‘doer of things’ at PuppetLabs

Thursday, April 18, 13

Page 2: Openstack havana

Connect to our network

• SSID: puppet_openstack

• We’ll bridge you to the outside world from here (please respect our pipes)

Thursday, April 18, 13

Page 3: Openstack havana

Dependencies

• Ruby (we assume its already installed)

• VirtualBox

• Ubuntu precise base box

• Vagrant

• Puppet modules

Thursday, April 18, 13

Page 4: Openstack havana

• download requirements:

• http://10.0.1.2/share/

• virtual_box/VirtualBox-.4.2.10.dmg

• precise64.box

• puppet-openstack_dev_env.tgz

• vagrant/Vagrant.dmg

Thursday, April 18, 13

Page 5: Openstack havana

• unpack the modules

• tar -xzvf puppet-openstack_dev_env.tgz

Thursday, April 18, 13

Page 6: Openstack havana

• vagrant box add precise64 precise64.box

Thursday, April 18, 13

Page 7: Openstack havana

• double check the proxy settings

• manifests/pre.pp

• manifests/setup/precise64.pp

Thursday, April 18, 13

Page 8: Openstack havana

• vagrant up openstack_controller

Thursday, April 18, 13

Page 9: Openstack havana

• vagrant up compute1

Thursday, April 18, 13

Page 10: Openstack havana

• vagrant ssh openstack_controller

• bash /tmp/test_nova.sh

• source /root/openrc

Thursday, April 18, 13

Page 11: Openstack havana

The Goal

Thursday, April 18, 13

Page 12: Openstack havana

The Goal:

Your LaptopStart with your laptop

Thursday, April 18, 13

Page 13: Openstack havana

The Goal:

Your Laptop

Virtual BoxInstall VBox

Thursday, April 18, 13

Page 14: Openstack havana

The Goal:

Your Laptop

Virtual Box

VagrantInstall vagrant

Thursday, April 18, 13

Page 15: Openstack havana

The Goal:

Your Laptop

Virtual Box

Vagrant

VM1 VM2Define/Boot 2 VMs with

Vagrant

Thursday, April 18, 13

Page 16: Openstack havana

The Goal:

Your Laptop

Virtual Box

Vagrant

Puppet

VM1 VM2

Run Puppet on those VMs

Thursday, April 18, 13

Page 17: Openstack havana

Vagrant (Vagrantfile)

Your Laptop

Virtual Box

Vagrant

VM1 VM2

Thursday, April 18, 13

Page 18: Openstack havana

Librarian Puppet (Puppetfile)

Your Laptop

Virtual Box

Vagrant

Puppet

VM1 VM2

Thursday, April 18, 13

Page 19: Openstack havana

Puppetfile

mod 'puppetlabs/openstack', :git => 'git://github.com/stackforge/puppet-openstack'mod 'puppetlabs/nova', :git => 'git://github.com/stackforge/puppet-nova'mod 'puppetlabs/glance', :git => 'git://github.com/stackforge/puppet-glance'mod 'puppetlabs/keystone', :git => 'git://github.com/stackforge/puppet-keystone'mod 'puppetlabs/horizon', :git => 'git://github.com/stackforge/puppet-horizon'mod 'puppetlabs/swift', :git => 'git://github.com/stackforge/puppet-swift'mod 'puppetlabs/cinder', :git => 'git://github.com/stackforge/puppet-cinder'mod 'puppetlabs/tempest', :git => 'git://github.com/puppetlabs/puppetlabs-tempest'mod 'puppet/quantum', :git => 'git://github.com/bodepd/puppet-quantum/'# openstack middlewaremod 'puppet/vswitch', :git => 'git://github.com/ekarlso/puppet-vswitch'mod 'puppetlabs/rabbitmq', :git => 'git://github.com/puppetlabs/puppetlabs-rabbitmq'mod 'puppetlabs/mysql', :git => 'git://github.com/puppetlabs/puppetlabs-mysql'mod 'puppetlabs/git', :git => 'git://github.com/puppetlabs/puppetlabs-git'mod 'puppetlabs/vcsrepo', :git => 'git://github.com/puppetlabs/puppetlabs-vcsrepo'mod 'saz/memcached', :git => 'git://github.com/saz/puppet-memcached'mod 'puppetlabs/rsync', :git => 'git://github.com/puppetlabs/puppetlabs-rsync'.......

forge "http://forge.puppetlabs.com"

mod 'puppetlabs/openstack', :git => 'git://github.com/stackforge/puppet-openstack'

mod 'puppetlabs/nova', :git => 'git://github.com/stackforge/puppet-nova'

mod 'puppetlabs/glance', :git => 'git://github.com/stackforge/puppet-glance'

mod 'puppetlabs/keystone', :git => 'git://github.com/stackforge/puppet-keystone'

mod 'puppetlabs/horizon', :git => 'git://github.com/stackforge/puppet-horizon'

mod 'puppetlabs/swift', :git => 'git://github.com/stackforge/puppet-swift'

mod 'puppetlabs/cinder', :git => 'git://github.com/stackforge/puppet-cinder'

mod 'puppetlabs/tempest', :git => 'git://github.com/puppetlabs/puppetlabs-tempest'

mod 'puppet/quantum', :git => 'git://github.com/bodepd/puppet-quantum/'

# openstack middlewaremod 'puppet/vswitch', :git => 'git://github.com/ekarlso/

puppet-vswitch'mod 'puppetlabs/rabbitmq', :git => 'git://github.com/

puppetlabs/puppetlabs-rabbitmq'mod 'puppetlabs/mysql', :git => 'git://github.com/puppetlabs/

puppetlabs-mysql'mod 'puppetlabs/git', :git => 'git://github.com/puppetlabs/

puppetlabs-git'mod 'puppetlabs/vcsrepo', :git => 'git://github.com/

puppetlabs/puppetlabs-vcsrepo'mod 'saz/memcached', :git => 'git://github.com/saz/puppet-

memcached'mod 'puppetlabs/rsync', :git => 'git://github.com/puppetlabs/

puppetlabs-rsync'mod 'puppetlabs/apache', :git => 'git://github.com/

puppetlabs/puppetlabs-apache', :ref => '94ebca3aaaf2144a7b9ce7ca6a13837ec48a7e2a'

# other depsmod 'puppetlabs/xinetd', :git => 'git://github.com/

puppetlabs/puppetlabs-xinetd'mod 'saz/ssh', :git => 'git://github.com/saz/puppet-ssh'

mod 'saz/sudo', :git => 'git://github.com/saz/puppet-sudo'mod 'puppetlabs/stdlib', :git => 'git://github.com/puppetlabs/

puppetlabs-stdlib'mod 'puppetlabs/apt', :git => 'git://github.com/puppetlabs/

puppetlabs-apt'mod 'puppetlabs/firewall', :git => 'git://github.com/

puppetlabs/puppetlabs-firewall'mod 'ripienaar/concat', :git => 'git://github.com/ripienaar/

puppet-concat'mod 'duritong/sysctl', :git => 'git://github.com/duritong/

puppet-sysctl.git'mod 'cprice404/inifile', :git => 'git://github.com/cprice-

puppet/puppetlabs-inifile'# puppet related modules

mod 'ripienaar/hiera_puppet', :git => 'https://github.com/ripienaar/hiera-puppet'mod 'puppetlabs/ruby'

mod 'puppet/puppet', :git => 'git://github.com/stephenrjohnson/puppetlabs-puppet.git', :ref => '6244079f8ce37901a167f45fadd5d9cc055f83db'

mod 'puppetlabs/puppetdb', :git => 'git://github.com/bodepd/puppetlabs-puppetdb.git'

mod 'puppetlabs/postgresql', :git => 'git://github.com/bodepd/puppet-postgresql.git'

mod 'ripienaar/ruby-puppetdb', :git => 'git://github.com/ripienaar/ruby-puppetdb'

Thursday, April 18, 13

Page 20: Openstack havana

Site Manifests (manifest/site.pp)

Thursday, April 18, 13

Page 21: Openstack havana

Specify how nodes map to roles

node /openstack-controller/ {....}

node /compute/ {...}

Thursday, April 18, 13

Page 22: Openstack havana

Hiera (external hierarchical data lookup)

Node

CI

Common

Node Node Node

EU

Default

Node Node

US

Thursday, April 18, 13

Page 23: Openstack havana

check out hiera_data/

hiera_data/common.yamlhiera_data/jenkins.yamlhiera_data/NODE.yaml

Thursday, April 18, 13

Page 24: Openstack havana

The OpenStack Module

Thursday, April 18, 13

Page 25: Openstack havana

Specifies high level roles that are very opinionated about how to install openstack

openstack::allopenstack::controlleropenstack::computeopenstack::keystoneopenstack::db::mysql

Thursday, April 18, 13

Page 26: Openstack havana

High Level Configuration Interfaces

  class { 'openstack::all':    public_address => $ipaddress_eth0,    public_interface => $public_interface,    private_interface => $private_interface,    admin_email => $admin_email,    admin_password => $admin_password,    keystone_db_password => $keystone_db_password,    keystone_admin_token => $keystone_admin_token,    nova_db_password => $nova_db_password,    nova_user_password => $nova_user_password,    glance_db_password => $glance_db_password,    glance_user_password => $glance_user_password,    rabbit_password => $rabbit_password,    rabbit_user => $rabbit_user,    libvirt_type => 'kvm',    floating_range => $floating_network_range,    fixed_range => $fixed_network_range,    verbose => $verbose,    auto_assign_floating_ip => $auto_assign_floating_ip,  }

Thursday, April 18, 13

Page 27: Openstack havana

The ‘Core’ Modules

Thursday, April 18, 13

Page 28: Openstack havana

• nova

• swift

• glance

• keystone

• horizon

• openstack

• cinder

• quantum

• ceilometer

Thursday, April 18, 13

Page 29: Openstack havana

Helper Modules

Thursday, April 18, 13

Page 30: Openstack havana

• rabbitmq

• mysql

• memcache

• apt

• concat

• ntp

• rsync

• stdlib

• xinetd

• openvswitch

• apache

Thursday, April 18, 13

Page 31: Openstack havana

Stackforge

• modules have been upstreamed to stackforge

• follow openstack development process

Thursday, April 18, 13