SlideShare una empresa de Scribd logo
1 de 38
Descargar para leer sin conexión
Monday, June 18, 12
Puppet & Openstack:
              Building and Testing Community Puppet Modules

              Teyo Tyree
              Co-Founder
              Dan Bode
              Integration Specialist


Monday, June 18, 12
Monday, June 18, 12
Laziness...Impatience...Hubris...




                                                     Larry Wall
                                                     The Internet



Monday, June 18, 12
Puppet automates
                         computers.

Monday, June 18, 12
Declarative
                      Idempotent
                      Model Driven

Monday, June 18, 12
Puppetized infrastucture is awesome. Using
                      someone else’s puppetized infrastructure is
                      even more awesome.



                                                          Teyo Tyree
                                                          Atlassian Conf 2012


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
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


Nerd Sniped               git://github.com/puppetlabs/puppetlabs-mysql:
                          git://github.com/puppetlabs/puppetlabs-git:
                          git://github.com/puppetlabs/puppetlabs-vcsrepo:
                          git://github.com/saz/puppet-memcached:
                          git://github.com/puppetlabs/puppetlabs-rsync:
                                                                             mysql
                                                                             git
                                                                             vcsrepo
                                                                             memcached
                                                                             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
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


Lego Blocks               git://github.com/puppetlabs/puppetlabs-mysql:
                          git://github.com/puppetlabs/puppetlabs-git:
                          git://github.com/puppetlabs/puppetlabs-vcsrepo:
                          git://github.com/saz/puppet-memcached:
                          git://github.com/puppetlabs/puppetlabs-rsync:
                                                                             mysql
                                                                             git
                                                                             vcsrepo
                                                                             memcached
                                                                             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',


        Flexible
                        $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
                      )
                      {...}




Monday, June 18, 12
We aren’t Openstack experts.



                      We need the community.
Monday, June 18, 12
Puppetized infrastucture is awesome. Using
                      someone else’s Puppetized infrastructure is
                      even more awesome!



                                                          Teyo Tyree
                                                          Atlassian Conf 2012


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',


        Flexible
                        $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
                      )
                      {...}




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'



     Multi-platform
                            $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'
                            ...
                            }




Monday, June 18, 12
Whoa, we need tests!




Monday, June 18, 12
Data


                                  Puppet

           Rspec-Puppet   Facts            Model




Monday, June 18, 12
let :facts do
                                                     Data
            {:operatingsystem => ‘RedHat’}
          end
                                                     Puppet

                                             Facts            Model




Monday, June 18, 12
Data
       let :params do
         {:rabbit_host => ‘10.0.0.42’}
       end
                                            Puppet

                                    Facts            Model




Monday, June 18, 12
it do
                                                      Data
        should contain_file (‘/etc/nova.conf’).
           with_content (‘rabbit_host = 10.0.0.42’)
       end
                                                      Puppet

                                             Facts             Model




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
Git
                                     Tempest



                            Puppet




Monday, June 18, 12
https://github.com/puppetlabs/puppetlabs-openstack
                      http://rspec-puppet.com/
                      https://github.com/openstack/tempest




Monday, June 18, 12
Questions?


Monday, June 18, 12

Más contenido relacionado

La actualidad más candente

Testing Drupal with Ghosts and Gherkin
Testing Drupal  with Ghosts and GherkinTesting Drupal  with Ghosts and Gherkin
Testing Drupal with Ghosts and GherkinPhase2
 
Git the Docs: Learning Git in a safe space
Git the Docs: Learning Git in a safe spaceGit the Docs: Learning Git in a safe space
Git the Docs: Learning Git in a safe spaceBecky Todd
 
Integrating tornado and webpack
Integrating tornado and webpackIntegrating tornado and webpack
Integrating tornado and webpackTom Chen
 
Singularity Registry HPC
Singularity Registry HPCSingularity Registry HPC
Singularity Registry HPCVanessa S
 
Introduction to Singularity and Data Containers
Introduction to Singularity and Data ContainersIntroduction to Singularity and Data Containers
Introduction to Singularity and Data ContainersVanessa S
 
Tools beyond ruby on rails
Tools beyond ruby on railsTools beyond ruby on rails
Tools beyond ruby on railsTomáš Jukin
 
Migrating existing Projects to Wonder
Migrating existing Projects to WonderMigrating existing Projects to Wonder
Migrating existing Projects to WonderWO Community
 

La actualidad más candente (8)

Testing Drupal with Ghosts and Gherkin
Testing Drupal  with Ghosts and GherkinTesting Drupal  with Ghosts and Gherkin
Testing Drupal with Ghosts and Gherkin
 
Git the Docs: Learning Git in a safe space
Git the Docs: Learning Git in a safe spaceGit the Docs: Learning Git in a safe space
Git the Docs: Learning Git in a safe space
 
Integrating tornado and webpack
Integrating tornado and webpackIntegrating tornado and webpack
Integrating tornado and webpack
 
Github flow
Github flowGithub flow
Github flow
 
Singularity Registry HPC
Singularity Registry HPCSingularity Registry HPC
Singularity Registry HPC
 
Introduction to Singularity and Data Containers
Introduction to Singularity and Data ContainersIntroduction to Singularity and Data Containers
Introduction to Singularity and Data Containers
 
Tools beyond ruby on rails
Tools beyond ruby on railsTools beyond ruby on rails
Tools beyond ruby on rails
 
Migrating existing Projects to Wonder
Migrating existing Projects to WonderMigrating existing Projects to Wonder
Migrating existing Projects to Wonder
 

Similar a Aligning Continuous Integration Deployment: Automated Validation of OpenStack Deployments

Puppet at GitHub / ChatOps
Puppet at GitHub / ChatOpsPuppet at GitHub / ChatOps
Puppet at GitHub / ChatOpsPuppet
 
Puppet at GitHub
Puppet at GitHubPuppet at GitHub
Puppet at GitHubPuppet
 
OSMC 2015 | The Road to Lazy Monitoring with Icinga 2 & Puppet by Tom De Vylder
OSMC 2015 | The Road to Lazy Monitoring with Icinga 2 & Puppet by Tom De VylderOSMC 2015 | The Road to Lazy Monitoring with Icinga 2 & Puppet by Tom De Vylder
OSMC 2015 | The Road to Lazy Monitoring with Icinga 2 & Puppet by Tom De VylderNETWAYS
 
Measuring Software development with GrimoireLab
Measuring Software development with GrimoireLabMeasuring Software development with GrimoireLab
Measuring Software development with GrimoireLabValerio Cosentino
 
Hacking Lab con ProxMox e Metasploitable
Hacking Lab con ProxMox e MetasploitableHacking Lab con ProxMox e Metasploitable
Hacking Lab con ProxMox e MetasploitableAndrea Draghetti
 
Puppet for dummies - PHPBenelux UG edition
Puppet for dummies - PHPBenelux UG editionPuppet for dummies - PHPBenelux UG edition
Puppet for dummies - PHPBenelux UG editionJoshua Thijssen
 
Riding on rails3 with full stack of gems
Riding on rails3 with full stack of gemsRiding on rails3 with full stack of gems
Riding on rails3 with full stack of gemsAndy Wang
 
Puppet for dummies - ZendCon 2011 Edition
Puppet for dummies - ZendCon 2011 EditionPuppet for dummies - ZendCon 2011 Edition
Puppet for dummies - ZendCon 2011 EditionJoshua Thijssen
 
Dtrace и немного магии
Dtrace и немного магииDtrace и немного магии
Dtrace и немного магииDan Kruchinin
 
Deploying a Pylons app to Google App Engine
Deploying a Pylons app to Google App EngineDeploying a Pylons app to Google App Engine
Deploying a Pylons app to Google App EngineJazkarta, Inc.
 
Puppet Loves RSpec, Why You Should, Too
Puppet Loves RSpec, Why You Should, TooPuppet Loves RSpec, Why You Should, Too
Puppet Loves RSpec, Why You Should, TooPuppet
 
Puppet loves RSpec, why you should, too
Puppet loves RSpec, why you should, tooPuppet loves RSpec, why you should, too
Puppet loves RSpec, why you should, tooDennis Rowe
 
You got database in my cloud (short version)
You got database  in my cloud (short version)You got database  in my cloud (short version)
You got database in my cloud (short version)Liz Frost
 
Release management with NuGet/Chocolatey/JIRA
Release management with NuGet/Chocolatey/JIRARelease management with NuGet/Chocolatey/JIRA
Release management with NuGet/Chocolatey/JIRAYaroslav Serhieiev
 
Containers for Science and High-Performance Computing
Containers for Science and High-Performance ComputingContainers for Science and High-Performance Computing
Containers for Science and High-Performance ComputingDmitry Spodarets
 
Container: is it safe enough to run you application?
Container: is it safe enough to run you application?Container: is it safe enough to run you application?
Container: is it safe enough to run you application?Aleksey Zalesov
 
Puppet 3: Present and Future Tense
Puppet 3: Present and Future TensePuppet 3: Present and Future Tense
Puppet 3: Present and Future TenseEric Sorenson
 
Puppet 3: Present and Future Tense
Puppet 3: Present and Future TensePuppet 3: Present and Future Tense
Puppet 3: Present and Future TensePuppet
 

Similar a Aligning Continuous Integration Deployment: Automated Validation of OpenStack Deployments (20)

Puppet at GitHub / ChatOps
Puppet at GitHub / ChatOpsPuppet at GitHub / ChatOps
Puppet at GitHub / ChatOps
 
IAC_PuppetCampLondon_2016
IAC_PuppetCampLondon_2016IAC_PuppetCampLondon_2016
IAC_PuppetCampLondon_2016
 
Puppet at GitHub
Puppet at GitHubPuppet at GitHub
Puppet at GitHub
 
OSMC 2015 | The Road to Lazy Monitoring with Icinga 2 & Puppet by Tom De Vylder
OSMC 2015 | The Road to Lazy Monitoring with Icinga 2 & Puppet by Tom De VylderOSMC 2015 | The Road to Lazy Monitoring with Icinga 2 & Puppet by Tom De Vylder
OSMC 2015 | The Road to Lazy Monitoring with Icinga 2 & Puppet by Tom De Vylder
 
Measuring Software development with GrimoireLab
Measuring Software development with GrimoireLabMeasuring Software development with GrimoireLab
Measuring Software development with GrimoireLab
 
Hacking Lab con ProxMox e Metasploitable
Hacking Lab con ProxMox e MetasploitableHacking Lab con ProxMox e Metasploitable
Hacking Lab con ProxMox e Metasploitable
 
Puppet for dummies - PHPBenelux UG edition
Puppet for dummies - PHPBenelux UG editionPuppet for dummies - PHPBenelux UG edition
Puppet for dummies - PHPBenelux UG edition
 
Git::Hooks
Git::HooksGit::Hooks
Git::Hooks
 
Riding on rails3 with full stack of gems
Riding on rails3 with full stack of gemsRiding on rails3 with full stack of gems
Riding on rails3 with full stack of gems
 
Puppet for dummies - ZendCon 2011 Edition
Puppet for dummies - ZendCon 2011 EditionPuppet for dummies - ZendCon 2011 Edition
Puppet for dummies - ZendCon 2011 Edition
 
Dtrace и немного магии
Dtrace и немного магииDtrace и немного магии
Dtrace и немного магии
 
Deploying a Pylons app to Google App Engine
Deploying a Pylons app to Google App EngineDeploying a Pylons app to Google App Engine
Deploying a Pylons app to Google App Engine
 
Puppet Loves RSpec, Why You Should, Too
Puppet Loves RSpec, Why You Should, TooPuppet Loves RSpec, Why You Should, Too
Puppet Loves RSpec, Why You Should, Too
 
Puppet loves RSpec, why you should, too
Puppet loves RSpec, why you should, tooPuppet loves RSpec, why you should, too
Puppet loves RSpec, why you should, too
 
You got database in my cloud (short version)
You got database  in my cloud (short version)You got database  in my cloud (short version)
You got database in my cloud (short version)
 
Release management with NuGet/Chocolatey/JIRA
Release management with NuGet/Chocolatey/JIRARelease management with NuGet/Chocolatey/JIRA
Release management with NuGet/Chocolatey/JIRA
 
Containers for Science and High-Performance Computing
Containers for Science and High-Performance ComputingContainers for Science and High-Performance Computing
Containers for Science and High-Performance Computing
 
Container: is it safe enough to run you application?
Container: is it safe enough to run you application?Container: is it safe enough to run you application?
Container: is it safe enough to run you application?
 
Puppet 3: Present and Future Tense
Puppet 3: Present and Future TensePuppet 3: Present and Future Tense
Puppet 3: Present and Future Tense
 
Puppet 3: Present and Future Tense
Puppet 3: Present and Future TensePuppet 3: Present and Future Tense
Puppet 3: Present and Future Tense
 

Más de Atlassian

International Women's Day 2020
International Women's Day 2020International Women's Day 2020
International Women's Day 2020Atlassian
 
10 emerging trends that will unbreak your workplace in 2020
10 emerging trends that will unbreak your workplace in 202010 emerging trends that will unbreak your workplace in 2020
10 emerging trends that will unbreak your workplace in 2020Atlassian
 
Forge App Showcase
Forge App ShowcaseForge App Showcase
Forge App ShowcaseAtlassian
 
Let's Build an Editor Macro with Forge UI
Let's Build an Editor Macro with Forge UILet's Build an Editor Macro with Forge UI
Let's Build an Editor Macro with Forge UIAtlassian
 
Meet the Forge Runtime
Meet the Forge RuntimeMeet the Forge Runtime
Meet the Forge RuntimeAtlassian
 
Forge UI: A New Way to Customize the Atlassian User Experience
Forge UI: A New Way to Customize the Atlassian User ExperienceForge UI: A New Way to Customize the Atlassian User Experience
Forge UI: A New Way to Customize the Atlassian User ExperienceAtlassian
 
Take Action with Forge Triggers
Take Action with Forge TriggersTake Action with Forge Triggers
Take Action with Forge TriggersAtlassian
 
Observability and Troubleshooting in Forge
Observability and Troubleshooting in ForgeObservability and Troubleshooting in Forge
Observability and Troubleshooting in ForgeAtlassian
 
Trusted by Default: The Forge Security & Privacy Model
Trusted by Default: The Forge Security & Privacy ModelTrusted by Default: The Forge Security & Privacy Model
Trusted by Default: The Forge Security & Privacy ModelAtlassian
 
Designing Forge UI: A Story of Designing an App UI System
Designing Forge UI: A Story of Designing an App UI SystemDesigning Forge UI: A Story of Designing an App UI System
Designing Forge UI: A Story of Designing an App UI SystemAtlassian
 
Forge: Under the Hood
Forge: Under the HoodForge: Under the Hood
Forge: Under the HoodAtlassian
 
Access to User Activities - Activity Platform APIs
Access to User Activities - Activity Platform APIsAccess to User Activities - Activity Platform APIs
Access to User Activities - Activity Platform APIsAtlassian
 
Design Your Next App with the Atlassian Vendor Sketch Plugin
Design Your Next App with the Atlassian Vendor Sketch PluginDesign Your Next App with the Atlassian Vendor Sketch Plugin
Design Your Next App with the Atlassian Vendor Sketch PluginAtlassian
 
Tear Up Your Roadmap and Get Out of the Building
Tear Up Your Roadmap and Get Out of the BuildingTear Up Your Roadmap and Get Out of the Building
Tear Up Your Roadmap and Get Out of the BuildingAtlassian
 
Nailing Measurement: a Framework for Measuring Metrics that Matter
Nailing Measurement: a Framework for Measuring Metrics that MatterNailing Measurement: a Framework for Measuring Metrics that Matter
Nailing Measurement: a Framework for Measuring Metrics that MatterAtlassian
 
Building Apps With Color Blind Users in Mind
Building Apps With Color Blind Users in MindBuilding Apps With Color Blind Users in Mind
Building Apps With Color Blind Users in MindAtlassian
 
Creating Inclusive Experiences: Balancing Personality and Accessibility in UX...
Creating Inclusive Experiences: Balancing Personality and Accessibility in UX...Creating Inclusive Experiences: Balancing Personality and Accessibility in UX...
Creating Inclusive Experiences: Balancing Personality and Accessibility in UX...Atlassian
 
Beyond Diversity: A Guide to Building Balanced Teams
Beyond Diversity: A Guide to Building Balanced TeamsBeyond Diversity: A Guide to Building Balanced Teams
Beyond Diversity: A Guide to Building Balanced TeamsAtlassian
 
The Road(map) to Las Vegas - The Story of an Emerging Self-Managed Team
The Road(map) to Las Vegas - The Story of an Emerging Self-Managed TeamThe Road(map) to Las Vegas - The Story of an Emerging Self-Managed Team
The Road(map) to Las Vegas - The Story of an Emerging Self-Managed TeamAtlassian
 
Building Apps With Enterprise in Mind
Building Apps With Enterprise in MindBuilding Apps With Enterprise in Mind
Building Apps With Enterprise in MindAtlassian
 

Más de Atlassian (20)

International Women's Day 2020
International Women's Day 2020International Women's Day 2020
International Women's Day 2020
 
10 emerging trends that will unbreak your workplace in 2020
10 emerging trends that will unbreak your workplace in 202010 emerging trends that will unbreak your workplace in 2020
10 emerging trends that will unbreak your workplace in 2020
 
Forge App Showcase
Forge App ShowcaseForge App Showcase
Forge App Showcase
 
Let's Build an Editor Macro with Forge UI
Let's Build an Editor Macro with Forge UILet's Build an Editor Macro with Forge UI
Let's Build an Editor Macro with Forge UI
 
Meet the Forge Runtime
Meet the Forge RuntimeMeet the Forge Runtime
Meet the Forge Runtime
 
Forge UI: A New Way to Customize the Atlassian User Experience
Forge UI: A New Way to Customize the Atlassian User ExperienceForge UI: A New Way to Customize the Atlassian User Experience
Forge UI: A New Way to Customize the Atlassian User Experience
 
Take Action with Forge Triggers
Take Action with Forge TriggersTake Action with Forge Triggers
Take Action with Forge Triggers
 
Observability and Troubleshooting in Forge
Observability and Troubleshooting in ForgeObservability and Troubleshooting in Forge
Observability and Troubleshooting in Forge
 
Trusted by Default: The Forge Security & Privacy Model
Trusted by Default: The Forge Security & Privacy ModelTrusted by Default: The Forge Security & Privacy Model
Trusted by Default: The Forge Security & Privacy Model
 
Designing Forge UI: A Story of Designing an App UI System
Designing Forge UI: A Story of Designing an App UI SystemDesigning Forge UI: A Story of Designing an App UI System
Designing Forge UI: A Story of Designing an App UI System
 
Forge: Under the Hood
Forge: Under the HoodForge: Under the Hood
Forge: Under the Hood
 
Access to User Activities - Activity Platform APIs
Access to User Activities - Activity Platform APIsAccess to User Activities - Activity Platform APIs
Access to User Activities - Activity Platform APIs
 
Design Your Next App with the Atlassian Vendor Sketch Plugin
Design Your Next App with the Atlassian Vendor Sketch PluginDesign Your Next App with the Atlassian Vendor Sketch Plugin
Design Your Next App with the Atlassian Vendor Sketch Plugin
 
Tear Up Your Roadmap and Get Out of the Building
Tear Up Your Roadmap and Get Out of the BuildingTear Up Your Roadmap and Get Out of the Building
Tear Up Your Roadmap and Get Out of the Building
 
Nailing Measurement: a Framework for Measuring Metrics that Matter
Nailing Measurement: a Framework for Measuring Metrics that MatterNailing Measurement: a Framework for Measuring Metrics that Matter
Nailing Measurement: a Framework for Measuring Metrics that Matter
 
Building Apps With Color Blind Users in Mind
Building Apps With Color Blind Users in MindBuilding Apps With Color Blind Users in Mind
Building Apps With Color Blind Users in Mind
 
Creating Inclusive Experiences: Balancing Personality and Accessibility in UX...
Creating Inclusive Experiences: Balancing Personality and Accessibility in UX...Creating Inclusive Experiences: Balancing Personality and Accessibility in UX...
Creating Inclusive Experiences: Balancing Personality and Accessibility in UX...
 
Beyond Diversity: A Guide to Building Balanced Teams
Beyond Diversity: A Guide to Building Balanced TeamsBeyond Diversity: A Guide to Building Balanced Teams
Beyond Diversity: A Guide to Building Balanced Teams
 
The Road(map) to Las Vegas - The Story of an Emerging Self-Managed Team
The Road(map) to Las Vegas - The Story of an Emerging Self-Managed TeamThe Road(map) to Las Vegas - The Story of an Emerging Self-Managed Team
The Road(map) to Las Vegas - The Story of an Emerging Self-Managed Team
 
Building Apps With Enterprise in Mind
Building Apps With Enterprise in MindBuilding Apps With Enterprise in Mind
Building Apps With Enterprise in Mind
 

Último

2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)wesley chun
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CVKhem
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUK Journal
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEarley Information Science
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessPixlogix Infotech
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 

Último (20)

2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your Business
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 

Aligning Continuous Integration Deployment: Automated Validation of OpenStack Deployments

  • 2. Puppet & Openstack: Building and Testing Community Puppet Modules Teyo Tyree Co-Founder Dan Bode Integration Specialist Monday, June 18, 12
  • 4. Laziness...Impatience...Hubris... Larry Wall The Internet Monday, June 18, 12
  • 5. Puppet automates computers. Monday, June 18, 12
  • 6. Declarative Idempotent Model Driven Monday, June 18, 12
  • 7. Puppetized infrastucture is awesome. Using someone else’s puppetized infrastructure is even more awesome. Teyo Tyree Atlassian Conf 2012 Monday, June 18, 12
  • 11. Build reusable models for complex applications. Monday, June 18, 12
  • 13. OpenStack is an opensource cloud controlling software that is comprised of three components called Compute, Object Storage, and Image Service. Monday, June 18, 12
  • 15. 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 Nerd Sniped     git://github.com/puppetlabs/puppetlabs-mysql:     git://github.com/puppetlabs/puppetlabs-git:     git://github.com/puppetlabs/puppetlabs-vcsrepo:     git://github.com/saz/puppet-memcached:     git://github.com/puppetlabs/puppetlabs-rsync: mysql git vcsrepo memcached 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
  • 16. 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 Lego Blocks     git://github.com/puppetlabs/puppetlabs-mysql:     git://github.com/puppetlabs/puppetlabs-git:     git://github.com/puppetlabs/puppetlabs-vcsrepo:     git://github.com/saz/puppet-memcached:     git://github.com/puppetlabs/puppetlabs-rsync: mysql git vcsrepo memcached 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
  • 17. 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', Flexible   $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 ) {...} Monday, June 18, 12
  • 18. We aren’t Openstack experts. We need the community. Monday, June 18, 12
  • 19. Puppetized infrastucture is awesome. Using someone else’s Puppetized infrastructure is even more awesome! Teyo Tyree Atlassian Conf 2012 Monday, June 18, 12
  • 21. Fear the Fork! Monday, June 18, 12
  • 23. 300+ merged pull requests! Monday, June 18, 12
  • 24. 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', Flexible   $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 ) {...} Monday, June 18, 12
  • 25. class nova::params {   case $::osfamily {     'RedHat': { # package names       $api_package_name = false       $cert_package_name = false       $common_package_name = 'openstack-nova' Multi-platform       $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'       ... } Monday, June 18, 12
  • 26. Whoa, we need tests! Monday, June 18, 12
  • 27. Data Puppet Rspec-Puppet Facts Model Monday, June 18, 12
  • 28. let :facts do Data {:operatingsystem => ‘RedHat’} end Puppet Facts Model Monday, June 18, 12
  • 29. Data let :params do {:rabbit_host => ‘10.0.0.42’} end Puppet Facts Model Monday, June 18, 12
  • 30. it do Data should contain_file (‘/etc/nova.conf’). with_content (‘rabbit_host = 10.0.0.42’) end Puppet Facts Model Monday, June 18, 12
  • 32. Openstack is not static! Monday, June 18, 12
  • 34. Puppet defines deployments Monday, June 18, 12
  • 36. Git Tempest Puppet Monday, June 18, 12
  • 37. https://github.com/puppetlabs/puppetlabs-openstack http://rspec-puppet.com/ https://github.com/openstack/tempest Monday, June 18, 12