Transcript
Page 1: Aligning Continuous Integration Deployment: Automated Validation of OpenStack Deployments

Monday, June 18, 12

Page 2: Aligning Continuous Integration Deployment: Automated Validation of OpenStack Deployments

Co-Founder

Teyo Tyree

Building and Testing Community Puppet Modules

Puppet & Openstack:

Integration SpecialistDan Bode

Monday, June 18, 12

Page 3: Aligning Continuous Integration Deployment: Automated Validation of OpenStack Deployments

Monday, June 18, 12

Page 4: Aligning Continuous Integration Deployment: Automated Validation of OpenStack Deployments

The Internet

Laziness...Impatience...Hubris...

Larry Wall

Monday, June 18, 12

Page 5: Aligning Continuous Integration Deployment: Automated Validation of OpenStack Deployments

Puppet automates computers.

Monday, June 18, 12

Page 6: Aligning Continuous Integration Deployment: Automated Validation of OpenStack Deployments

DeclarativeIdempotent

Model Driven

Monday, June 18, 12

Page 7: Aligning Continuous Integration Deployment: Automated Validation of OpenStack Deployments

Atlassian Conf 2012

Puppetized infrastucture is awesome. Using

someone else’s puppetized infrastructure is even more awesome.

Teyo Tyree

Monday, June 18, 12

Page 8: Aligning Continuous Integration Deployment: Automated Validation of OpenStack Deployments

Build Reusable Infrastructure

Monday, June 18, 12

Page 9: Aligning Continuous Integration Deployment: Automated Validation of OpenStack Deployments

Monday, June 18, 12

Page 10: Aligning Continuous Integration Deployment: Automated Validation of OpenStack Deployments

New Goal

Monday, June 18, 12

Page 11: Aligning Continuous Integration Deployment: Automated Validation of OpenStack Deployments

Build reusable models for complex applications.

Monday, June 18, 12

Page 12: Aligning Continuous Integration Deployment: Automated Validation of OpenStack Deployments

Model Openstack

Monday, June 18, 12

Page 13: Aligning Continuous Integration Deployment: Automated Validation of OpenStack Deployments

OpenStack is an opensource cloud controlling software that is comprised of three components called Compute, Object Storage, and Image Service.

Monday, June 18, 12

Page 14: Aligning Continuous Integration Deployment: Automated Validation of OpenStack Deployments

Monday, June 18, 12

Page 15: Aligning Continuous Integration Deployment: Automated Validation of OpenStack Deployments

Nerd Sniped

repos:  repo_paths:    # openstack git repos    git://github.com/puppetlabs/puppetlabs-nova: nova    git://github.com/puppetlabs/puppetlabs-glance: glance    git://github.com/puppetlabs/puppetlabs-swift: swift    git://github.com/puppetlabs/puppetlabs-keystone: keystone    git://github.com/puppetlabs/puppetlabs-horizon: horizon    # openstack middleware    git://github.com/puppetlabs/puppetlabs-rabbitmq: rabbitmq    git://github.com/puppetlabs/puppetlabs-mysql: mysql    git://github.com/puppetlabs/puppetlabs-git: git    git://github.com/puppetlabs/puppetlabs-vcsrepo: vcsrepo    git://github.com/saz/puppet-memcached: memcached    git://github.com/puppetlabs/puppetlabs-rsync: rsync    # other deps    git://github.com/ghoneycutt/puppet-xinetd: xinetd    git://github.com/saz/puppet-ssh: ssh    git://github.com/puppetlabs/puppetlabs-stdlib: stdlib    git://github.com/puppetlabs/puppetlabs-apt: apt    git://github.com/ripienaar/puppet-concat: concat    git://github.com/duritong/puppet-sysctl.git: sysctl

Monday, June 18, 12

Page 16: Aligning Continuous Integration Deployment: Automated Validation of OpenStack Deployments

Lego Blocks

repos:  repo_paths:    # openstack git repos    git://github.com/puppetlabs/puppetlabs-nova: nova    git://github.com/puppetlabs/puppetlabs-glance: glance    git://github.com/puppetlabs/puppetlabs-swift: swift    git://github.com/puppetlabs/puppetlabs-keystone: keystone    git://github.com/puppetlabs/puppetlabs-horizon: horizon    # openstack middleware    git://github.com/puppetlabs/puppetlabs-rabbitmq: rabbitmq    git://github.com/puppetlabs/puppetlabs-mysql: mysql    git://github.com/puppetlabs/puppetlabs-git: git    git://github.com/puppetlabs/puppetlabs-vcsrepo: vcsrepo    git://github.com/saz/puppet-memcached: memcached    git://github.com/puppetlabs/puppetlabs-rsync: rsync    # other deps    git://github.com/ghoneycutt/puppet-xinetd: xinetd    git://github.com/saz/puppet-ssh: ssh    git://github.com/puppetlabs/puppetlabs-stdlib: stdlib    git://github.com/puppetlabs/puppetlabs-apt: apt    git://github.com/ripienaar/puppet-concat: concat    git://github.com/duritong/puppet-sysctl.git: sysctl

Monday, June 18, 12

Page 17: Aligning Continuous Integration Deployment: Automated Validation of OpenStack Deployments

class nova(  $nova_cluster_id='localcluster',  $sql_connection = false,  $image_service = 'nova.image.glance.GlanceImageService',  $glance_api_servers = 'localhost:9292',  $rabbit_host = 'localhost',  $rabbit_password='guest',  $rabbit_port='5672',  $rabbit_userid='guest',  $rabbit_virtual_host='/',  $auth_strategy = 'keystone',  $service_down_time = 60,  $logdir = '/var/log/nova',  $state_path = '/var/lib/nova',  $lock_path = $::nova::params::lock_path,  $verbose = false,  $periodic_interval = '60',  $report_interval = '10',  $root_helper = $::nova::params::root_helper){...}

Flexible

Monday, June 18, 12

Page 18: Aligning Continuous Integration Deployment: Automated Validation of OpenStack Deployments

We aren’t Openstack experts.

We need the community.

Monday, June 18, 12

Page 19: Aligning Continuous Integration Deployment: Automated Validation of OpenStack Deployments

Atlassian Conf 2012

Puppetized infrastucture is awesome. Using

someone else’s Puppetized infrastructure is even more awesome!

Teyo Tyree

Monday, June 18, 12

Page 20: Aligning Continuous Integration Deployment: Automated Validation of OpenStack Deployments

Engagement

Monday, June 18, 12

Page 21: Aligning Continuous Integration Deployment: Automated Validation of OpenStack Deployments

Fear the Fork!

Monday, June 18, 12

Page 22: Aligning Continuous Integration Deployment: Automated Validation of OpenStack Deployments

Monday, June 18, 12

Page 23: Aligning Continuous Integration Deployment: Automated Validation of OpenStack Deployments

300+ merged pull requests!

Monday, June 18, 12

Page 24: Aligning Continuous Integration Deployment: Automated Validation of OpenStack Deployments

class nova(  $nova_cluster_id='localcluster',  $sql_connection = false,  $image_service = 'nova.image.glance.GlanceImageService',  $glance_api_servers = 'localhost:9292',  $rabbit_host = 'localhost',  $rabbit_password='guest',  $rabbit_port='5672',  $rabbit_userid='guest',  $rabbit_virtual_host='/',  $auth_strategy = 'keystone',  $service_down_time = 60,  $logdir = '/var/log/nova',  $state_path = '/var/lib/nova',  $lock_path = $::nova::params::lock_path,  $verbose = false,  $periodic_interval = '60',  $report_interval = '10',  $root_helper = $::nova::params::root_helper){...}

Flexible

Monday, June 18, 12

Page 25: Aligning Continuous Integration Deployment: Automated Validation of OpenStack Deployments

class nova::params {

  case $::osfamily {    'RedHat': { # package names      $api_package_name = false      $cert_package_name = false      $common_package_name = 'openstack-nova'      $compute_package_name = false      ...         }    'Debian': { # package names      $api_package_name = 'nova-api'      $cert_package_name = 'nova-cert'      $common_package_name = 'nova-common'      $compute_package_name = 'nova-compute'      ... }

Multi-platform

Monday, June 18, 12

Page 26: Aligning Continuous Integration Deployment: Automated Validation of OpenStack Deployments

Whoa, we need tests!

Monday, June 18, 12

Page 27: Aligning Continuous Integration Deployment: Automated Validation of OpenStack Deployments

Model

Puppet

Facts

Data

Rspec-Puppet

Monday, June 18, 12

Page 28: Aligning Continuous Integration Deployment: Automated Validation of OpenStack Deployments

Model

Puppet

Facts

Datalet :facts do {:operatingsystem => ‘RedHat’}end

Monday, June 18, 12

Page 29: Aligning Continuous Integration Deployment: Automated Validation of OpenStack Deployments

let :params do {:rabbit_host => ‘10.0.0.42’}end

Model

Puppet

Facts

Data

Monday, June 18, 12

Page 30: Aligning Continuous Integration Deployment: Automated Validation of OpenStack Deployments

it do should contain_file (‘/etc/nova.conf’).\ with_content (‘rabbit_host = 10.0.0.42’)end

Model

Puppet

Facts

Data

Monday, June 18, 12

Page 31: Aligning Continuous Integration Deployment: Automated Validation of OpenStack Deployments

Openstack Devops

Monday, June 18, 12

Page 32: Aligning Continuous Integration Deployment: Automated Validation of OpenStack Deployments

Openstack is not static!

Monday, June 18, 12

Page 33: Aligning Continuous Integration Deployment: Automated Validation of OpenStack Deployments

Tempest

Monday, June 18, 12

Page 34: Aligning Continuous Integration Deployment: Automated Validation of OpenStack Deployments

Puppet defines

deployments

Monday, June 18, 12

Page 35: Aligning Continuous Integration Deployment: Automated Validation of OpenStack Deployments

Testing Openstack?

Monday, June 18, 12

Page 36: Aligning Continuous Integration Deployment: Automated Validation of OpenStack Deployments

Tempest

Git

Puppet

Monday, June 18, 12

Page 38: Aligning Continuous Integration Deployment: Automated Validation of OpenStack Deployments

Questions?

Monday, June 18, 12


Recommended