Post on 13-Jan-2015
description
transcript
Monday, June 18, 12
Co-Founder
Teyo Tyree
Building and Testing Community Puppet Modules
Puppet & Openstack:
Integration SpecialistDan Bode
Monday, June 18, 12
Monday, June 18, 12
The Internet
Laziness...Impatience...Hubris...
Larry Wall
Monday, June 18, 12
Puppet automates computers.
Monday, June 18, 12
DeclarativeIdempotent
Model Driven
Monday, June 18, 12
Atlassian Conf 2012
Puppetized infrastucture is awesome. Using
someone else’s puppetized infrastructure is even more awesome.
Teyo Tyree
Monday, June 18, 12
Build Reusable Infrastructure
Monday, June 18, 12
Monday, June 18, 12
New Goal
Monday, June 18, 12
Build reusable models for complex applications.
Monday, June 18, 12
Model Openstack
Monday, June 18, 12
OpenStack is an opensource cloud controlling software that is comprised of three components called Compute, Object Storage, and Image Service.
Monday, June 18, 12
Monday, June 18, 12
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
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
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
We aren’t Openstack experts.
We need the community.
Monday, June 18, 12
Atlassian Conf 2012
Puppetized infrastucture is awesome. Using
someone else’s Puppetized infrastructure is even more awesome!
Teyo Tyree
Monday, June 18, 12
Engagement
Monday, June 18, 12
Fear the Fork!
Monday, June 18, 12
Monday, June 18, 12
300+ merged pull requests!
Monday, June 18, 12
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
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
Whoa, we need tests!
Monday, June 18, 12
Model
Puppet
Facts
Data
Rspec-Puppet
Monday, June 18, 12
Model
Puppet
Facts
Datalet :facts do {:operatingsystem => ‘RedHat’}end
Monday, June 18, 12
let :params do {:rabbit_host => ‘10.0.0.42’}end
Model
Puppet
Facts
Data
Monday, June 18, 12
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
Openstack Devops
Monday, June 18, 12
Openstack is not static!
Monday, June 18, 12
Tempest
Monday, June 18, 12
Puppet defines
deployments
Monday, June 18, 12
Testing Openstack?
Monday, June 18, 12
Tempest
Git
Puppet
Monday, June 18, 12
https://github.com/puppetlabs/puppetlabs-openstackhttp://rspec-puppet.com/https://github.com/openstack/tempest
Monday, June 18, 12
Questions?
Monday, June 18, 12