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

Openstack havana

May 10, 2015

Download

Technology

bodepd

presentation used at the puppet build an openstack lab
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
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