openstack havana

Post on 10-May-2015

1.369 Views

Category:

Technology

0 Downloads

Preview:

Click to see full reader

DESCRIPTION

presentation used at the puppet build an openstack lab

TRANSCRIPT

Lets build an OpenStack!

Dan Bode@bodepd

‘doer of things’ at PuppetLabs

Thursday, April 18, 13

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

Dependencies

• Ruby (we assume its already installed)

• VirtualBox

• Ubuntu precise base box

• Vagrant

• Puppet modules

Thursday, April 18, 13

• 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

• unpack the modules

• tar -xzvf puppet-openstack_dev_env.tgz

Thursday, April 18, 13

• vagrant box add precise64 precise64.box

Thursday, April 18, 13

• double check the proxy settings

• manifests/pre.pp

• manifests/setup/precise64.pp

Thursday, April 18, 13

• vagrant up openstack_controller

Thursday, April 18, 13

• vagrant up compute1

Thursday, April 18, 13

• vagrant ssh openstack_controller

• bash /tmp/test_nova.sh

• source /root/openrc

Thursday, April 18, 13

The Goal

Thursday, April 18, 13

The Goal:

Your LaptopStart with your laptop

Thursday, April 18, 13

The Goal:

Your Laptop

Virtual BoxInstall VBox

Thursday, April 18, 13

The Goal:

Your Laptop

Virtual Box

VagrantInstall vagrant

Thursday, April 18, 13

The Goal:

Your Laptop

Virtual Box

Vagrant

VM1 VM2Define/Boot 2 VMs with

Vagrant

Thursday, April 18, 13

The Goal:

Your Laptop

Virtual Box

Vagrant

Puppet

VM1 VM2

Run Puppet on those VMs

Thursday, April 18, 13

Vagrant (Vagrantfile)

Your Laptop

Virtual Box

Vagrant

VM1 VM2

Thursday, April 18, 13

Librarian Puppet (Puppetfile)

Your Laptop

Virtual Box

Vagrant

Puppet

VM1 VM2

Thursday, April 18, 13

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

Site Manifests (manifest/site.pp)

Thursday, April 18, 13

Specify how nodes map to roles

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

node /compute/ {...}

Thursday, April 18, 13

Hiera (external hierarchical data lookup)

Node

CI

Common

Node Node Node

EU

Default

Node Node

US

Thursday, April 18, 13

check out hiera_data/

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

Thursday, April 18, 13

The OpenStack Module

Thursday, April 18, 13

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

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

Thursday, April 18, 13

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

The ‘Core’ Modules

Thursday, April 18, 13

• nova

• swift

• glance

• keystone

• horizon

• openstack

• cinder

• quantum

• ceilometer

Thursday, April 18, 13

Helper Modules

Thursday, April 18, 13

• rabbitmq

• mysql

• memcache

• apt

• concat

• ntp

• rsync

• stdlib

• xinetd

• openvswitch

• apache

Thursday, April 18, 13

Stackforge

• modules have been upstreamed to stackforge

• follow openstack development process

Thursday, April 18, 13

top related