SlideShare ist ein Scribd-Unternehmen logo
1 von 36
Deploying
 OpenStack with
 Puppet
who is this talk for?


- the reasonably technical
- already understands config management
- wants to learn more about using Puppet modules to deploy
openstack
Shameless plug
What is Puppet?
Resources describe state


                               Current          Desired       package {‘git’:
                                                                ensure => present,
                               State            State         }




                                          !=




                                         Sync         Event



| CONFIDENTIAL & PROPRIETARY
Providers Detect Current State

rpm -q git
                                   Current          Desired       package {‘git’:
                                                                    ensure => present,
dpkg-query --search
git                                State            State         }




                                              !=




                                             Sync         Event



    | CONFIDENTIAL & PROPRIETARY
Puppet compares

rpm -q git
                                   Current          Desired       package {‘git’:
                                                                    ensure => present,
dpkg-query --search
git                                State            State         }




                            Absent            !=       Present




                                             Sync         Event



    | CONFIDENTIAL & PROPRIETARY
Provides remediate

rpm -q git
                                   Current          Desired       package {‘git’:
                                                                    ensure => present,
dpkg-query --search
git                                State            State         }




                            Absent            !=       Present




  yum install git
                                             Sync         Event
  apt-get install git




    | CONFIDENTIAL & PROPRIETARY
Providers Remediate

rpm -q git
                                   Current          Desired       package {‘git’:
                                                                    ensure => present,
dpkg-query --search
git                                State            State         }




                            Absent            !=       Present




  yum install git                                                       state transition:
                                             Sync         Event         absent -> present
  apt-get install git




    | CONFIDENTIAL & PROPRIETARY
Noop Mode

rpm -q git
                                   Current          Desired       package {‘git’:
                                                                    ensure => present,
dpkg-query --search
git                                State            State         }




                            Absent            !=       Present




                                                                        state transition:
                                             Sync         Event         absent -> present




    | CONFIDENTIAL & PROPRIETARY
Puppet DSL composes resources
    class keystone(
     $admin_token,
    ){

        package { 'keystone':
          ensure => present,
        }

        keystone_config {
          'DEFAULT/admin_token':
            value => $admin_token,
            require => Package[‘keystone’],
            notify => Service[‘keystone’],
        }

        service { 'keystone':
          ensure => running,
        }
    }


| CONFIDENTIAL & PROPRIETARY
Why Integrate?
OpenStack is hard to build reliably, repeatedly
OpenStack is hard
OpenStack makes it easier to automate the management
   of compute resources



   Puppet
                  Your Business

OpenStack     Configuration Management

                 Self Service API

                    Hardware
OpenStack makes it easier to automate the management
   of compute resources

                                    You


   Puppet
                  Your Business

OpenStack     Configuration Management

                 Self Service API

                    Hardware




                                          http://www.happyemrdoctor.com/files/2011/02/HappyComputerMan.gif
Puppet can be used to codify best practices for OpenStack




                 OpenStackios
                     Now with best practices by:
                     CERN,
                     Enovance,
                     Cisco
                     Redhat,
                     Cybera
The modules
OpenStack modules
  •   nova
  •   swift

  •   glance
  •   keystone

  •   horizon

  •   openstack

  •   quantum

  •   cinder
General purpose modules
•   rabbitmq

•   mysql

•   memcache

•   apt

•   concat

•   ntp

•   rsync

•   stdlib

•   xinetd

•   openvswitch

•   apache
Each module has classes that present
 configuration interfaces

  glance
            class { 'glance::api':
              auth_port            => '35357',
              auth_host            => ‘keystone_host’,
              keystone_tenant      => 'services',
              keystone_user        => 'glance',
              keystone_password => ' pass',
            }

            class { 'glance::registry':
               ...
            }
OpenStack - higher level roles

      class { 'openstack::db::mysql':
        ....
      }
      class { ‘openstack::keystone’:
        ....
      }
      class { 'openstack::glance':
          ...
      }
      class { ‘openstack::horizon’

      }
      class { ‘openstack::nova::controller’ {

      }
2 role deployments


           node /openstack-controller/ {
             class { 'openstack::controller':
               ....
             }
           }

           node /compute/ {
             class { ‘openstack::compute’:
               ...
             }
           }
Getting Started
Download repo

git clone https://github.com/puppetlabs/puppetlabs-openstack_dev_env
Install modules
> gem install librarian-puppet
> cd puppetlabs-openstack_dev_env
> librarian-puppet install




Once it’s released to the forge

> puppet module install puppetlabs-openstack
Example site
     manifest

> vi manifests/site.pp
Node declarations

Review now nodes can be classified:

node /openstack-controller/ {
....
}
node /compute/ {
...
}
Modify top scope
     variables

...
$cinder_user_password = 'cinder_user_password'
$quantum_user_password = 'quantum_user_password'

$verbose = 'True'

$public_interface = 'eth1'
$private_interface = 'eth2'

$rabbit_password = 'rabbit_password'
$rabbit_user = 'nova'
...
install openstack


      host1# puppet agent -t --certname openstack-
      controller

      host2# puppet agent -t --certname compute
log into controller


      > ssh openstack-controller
      > source /root/openrc
Run basic test script:


       > bash /tmp/test_nova.sh
Advanced
Or use hiera
     (maybe I should
     switch?)
$cinder_user_password = hiera('cinder_user_password')
$quantum_user_password = hiera('quantum_user_password')

$verbose = 'True'

$public_interface = hiera('public_interface')
$private_interface = hiera('private_interface')

$rabbit_password = hiera('rabbit_password')
Or use an ENC
PuppetDB

* stores facts and catalog
* search for nodes
* find facts for nodes
* find resources from nodes

Weitere ähnliche Inhalte

Was ist angesagt?

Dynamo: Not Just For Datastores
Dynamo: Not Just For DatastoresDynamo: Not Just For Datastores
Dynamo: Not Just For DatastoresSusan Potter
 
Developing your own OpenStack Swift middleware
Developing your own OpenStack Swift middlewareDeveloping your own OpenStack Swift middleware
Developing your own OpenStack Swift middlewareChristian Schwede
 
JavaScript in 2015
JavaScript in 2015JavaScript in 2015
JavaScript in 2015Igor Laborie
 
Kerberizing spark. Spark Summit east
Kerberizing spark. Spark Summit eastKerberizing spark. Spark Summit east
Kerberizing spark. Spark Summit eastJorge Lopez-Malla
 
Новый InterSystems: open-source, митапы, хакатоны
Новый InterSystems: open-source, митапы, хакатоныНовый InterSystems: open-source, митапы, хакатоны
Новый InterSystems: open-source, митапы, хакатоныTimur Safin
 
Orchestrating Big Data pipelines @ Fandom - Krystian Mistrzak Thejas Murthy
Orchestrating Big Data pipelines @ Fandom - Krystian Mistrzak Thejas MurthyOrchestrating Big Data pipelines @ Fandom - Krystian Mistrzak Thejas Murthy
Orchestrating Big Data pipelines @ Fandom - Krystian Mistrzak Thejas MurthyEvention
 
Algebird : Abstract Algebra for big data analytics. Devoxx 2014
Algebird : Abstract Algebra for big data analytics. Devoxx 2014Algebird : Abstract Algebra for big data analytics. Devoxx 2014
Algebird : Abstract Algebra for big data analytics. Devoxx 2014Samir Bessalah
 
Spark Cassandra Connector: Past, Present, and Future
Spark Cassandra Connector: Past, Present, and FutureSpark Cassandra Connector: Past, Present, and Future
Spark Cassandra Connector: Past, Present, and FutureRussell Spitzer
 
Understanding OpenStack Deployments - PuppetConf 2014
Understanding OpenStack Deployments - PuppetConf 2014Understanding OpenStack Deployments - PuppetConf 2014
Understanding OpenStack Deployments - PuppetConf 2014Puppet
 
The Automation Factory
The Automation FactoryThe Automation Factory
The Automation FactoryNathan Milford
 
Apache Spark - Basics of RDD | Big Data Hadoop Spark Tutorial | CloudxLab
Apache Spark - Basics of RDD | Big Data Hadoop Spark Tutorial | CloudxLabApache Spark - Basics of RDD | Big Data Hadoop Spark Tutorial | CloudxLab
Apache Spark - Basics of RDD | Big Data Hadoop Spark Tutorial | CloudxLabCloudxLab
 
Test-Driven Infrastructure with Ansible, Test Kitchen, Serverspec and RSpec
Test-Driven Infrastructure with Ansible, Test Kitchen, Serverspec and RSpecTest-Driven Infrastructure with Ansible, Test Kitchen, Serverspec and RSpec
Test-Driven Infrastructure with Ansible, Test Kitchen, Serverspec and RSpecMartin Etmajer
 
Cassandra and Spark: Optimizing for Data Locality-(Russell Spitzer, DataStax)
Cassandra and Spark: Optimizing for Data Locality-(Russell Spitzer, DataStax)Cassandra and Spark: Optimizing for Data Locality-(Russell Spitzer, DataStax)
Cassandra and Spark: Optimizing for Data Locality-(Russell Spitzer, DataStax)Spark Summit
 
Beaker: Automated, Cloud-Based Acceptance Testing - PuppetConf 2014
Beaker: Automated, Cloud-Based Acceptance Testing - PuppetConf 2014Beaker: Automated, Cloud-Based Acceptance Testing - PuppetConf 2014
Beaker: Automated, Cloud-Based Acceptance Testing - PuppetConf 2014Puppet
 
Ship your Scala code often and easy with Docker
Ship your Scala code often and easy with DockerShip your Scala code often and easy with Docker
Ship your Scala code often and easy with DockerMarcus Lönnberg
 
DevOps(4) : Ansible(2) - (MOSG)
DevOps(4) : Ansible(2) - (MOSG)DevOps(4) : Ansible(2) - (MOSG)
DevOps(4) : Ansible(2) - (MOSG)Soshi Nemoto
 
Jafka guide
Jafka guideJafka guide
Jafka guideAdy Liu
 
Ice mini guide
Ice mini guideIce mini guide
Ice mini guideAdy Liu
 
How to Develop Puppet Modules: From Source to the Forge With Zero Clicks
How to Develop Puppet Modules: From Source to the Forge With Zero ClicksHow to Develop Puppet Modules: From Source to the Forge With Zero Clicks
How to Develop Puppet Modules: From Source to the Forge With Zero ClicksCarlos Sanchez
 

Was ist angesagt? (20)

Dynamo: Not Just For Datastores
Dynamo: Not Just For DatastoresDynamo: Not Just For Datastores
Dynamo: Not Just For Datastores
 
Developing your own OpenStack Swift middleware
Developing your own OpenStack Swift middlewareDeveloping your own OpenStack Swift middleware
Developing your own OpenStack Swift middleware
 
JavaScript in 2015
JavaScript in 2015JavaScript in 2015
JavaScript in 2015
 
Kerberizing spark. Spark Summit east
Kerberizing spark. Spark Summit eastKerberizing spark. Spark Summit east
Kerberizing spark. Spark Summit east
 
Новый InterSystems: open-source, митапы, хакатоны
Новый InterSystems: open-source, митапы, хакатоныНовый InterSystems: open-source, митапы, хакатоны
Новый InterSystems: open-source, митапы, хакатоны
 
Orchestrating Big Data pipelines @ Fandom - Krystian Mistrzak Thejas Murthy
Orchestrating Big Data pipelines @ Fandom - Krystian Mistrzak Thejas MurthyOrchestrating Big Data pipelines @ Fandom - Krystian Mistrzak Thejas Murthy
Orchestrating Big Data pipelines @ Fandom - Krystian Mistrzak Thejas Murthy
 
Algebird : Abstract Algebra for big data analytics. Devoxx 2014
Algebird : Abstract Algebra for big data analytics. Devoxx 2014Algebird : Abstract Algebra for big data analytics. Devoxx 2014
Algebird : Abstract Algebra for big data analytics. Devoxx 2014
 
Spark Cassandra Connector: Past, Present, and Future
Spark Cassandra Connector: Past, Present, and FutureSpark Cassandra Connector: Past, Present, and Future
Spark Cassandra Connector: Past, Present, and Future
 
Understanding OpenStack Deployments - PuppetConf 2014
Understanding OpenStack Deployments - PuppetConf 2014Understanding OpenStack Deployments - PuppetConf 2014
Understanding OpenStack Deployments - PuppetConf 2014
 
The Automation Factory
The Automation FactoryThe Automation Factory
The Automation Factory
 
Apache Spark - Basics of RDD | Big Data Hadoop Spark Tutorial | CloudxLab
Apache Spark - Basics of RDD | Big Data Hadoop Spark Tutorial | CloudxLabApache Spark - Basics of RDD | Big Data Hadoop Spark Tutorial | CloudxLab
Apache Spark - Basics of RDD | Big Data Hadoop Spark Tutorial | CloudxLab
 
Test-Driven Infrastructure with Ansible, Test Kitchen, Serverspec and RSpec
Test-Driven Infrastructure with Ansible, Test Kitchen, Serverspec and RSpecTest-Driven Infrastructure with Ansible, Test Kitchen, Serverspec and RSpec
Test-Driven Infrastructure with Ansible, Test Kitchen, Serverspec and RSpec
 
Cassandra and Spark: Optimizing for Data Locality-(Russell Spitzer, DataStax)
Cassandra and Spark: Optimizing for Data Locality-(Russell Spitzer, DataStax)Cassandra and Spark: Optimizing for Data Locality-(Russell Spitzer, DataStax)
Cassandra and Spark: Optimizing for Data Locality-(Russell Spitzer, DataStax)
 
Beaker: Automated, Cloud-Based Acceptance Testing - PuppetConf 2014
Beaker: Automated, Cloud-Based Acceptance Testing - PuppetConf 2014Beaker: Automated, Cloud-Based Acceptance Testing - PuppetConf 2014
Beaker: Automated, Cloud-Based Acceptance Testing - PuppetConf 2014
 
Ship your Scala code often and easy with Docker
Ship your Scala code often and easy with DockerShip your Scala code often and easy with Docker
Ship your Scala code often and easy with Docker
 
DevOps(4) : Ansible(2) - (MOSG)
DevOps(4) : Ansible(2) - (MOSG)DevOps(4) : Ansible(2) - (MOSG)
DevOps(4) : Ansible(2) - (MOSG)
 
Jafka guide
Jafka guideJafka guide
Jafka guide
 
Ice mini guide
Ice mini guideIce mini guide
Ice mini guide
 
How to Develop Puppet Modules: From Source to the Forge With Zero Clicks
How to Develop Puppet Modules: From Source to the Forge With Zero ClicksHow to Develop Puppet Modules: From Source to the Forge With Zero Clicks
How to Develop Puppet Modules: From Source to the Forge With Zero Clicks
 
Scala+data
Scala+dataScala+data
Scala+data
 

Andere mochten auch

How to build your own OpenStack distro using Puppet OpenStack
How to build your own OpenStack distro using Puppet OpenStackHow to build your own OpenStack distro using Puppet OpenStack
How to build your own OpenStack distro using Puppet OpenStackOpenStack
 
The Five Senses
The Five SensesThe Five Senses
The Five SensesLoreCampus
 
2011年上海cgdc日程公布
2011年上海cgdc日程公布2011年上海cgdc日程公布
2011年上海cgdc日程公布mysqlops
 
如何写有效的Bug报告
如何写有效的Bug报告如何写有效的Bug报告
如何写有效的Bug报告mysqlops
 
12团购网站的宣传策略
12团购网站的宣传策略12团购网站的宣传策略
12团购网站的宣传策略mysqlops
 
What's New in Grizzly & Deploying OpenStack with Puppet
What's New in Grizzly & Deploying OpenStack with PuppetWhat's New in Grizzly & Deploying OpenStack with Puppet
What's New in Grizzly & Deploying OpenStack with PuppetMark Voelker
 

Andere mochten auch (6)

How to build your own OpenStack distro using Puppet OpenStack
How to build your own OpenStack distro using Puppet OpenStackHow to build your own OpenStack distro using Puppet OpenStack
How to build your own OpenStack distro using Puppet OpenStack
 
The Five Senses
The Five SensesThe Five Senses
The Five Senses
 
2011年上海cgdc日程公布
2011年上海cgdc日程公布2011年上海cgdc日程公布
2011年上海cgdc日程公布
 
如何写有效的Bug报告
如何写有效的Bug报告如何写有效的Bug报告
如何写有效的Bug报告
 
12团购网站的宣传策略
12团购网站的宣传策略12团购网站的宣传策略
12团购网站的宣传策略
 
What's New in Grizzly & Deploying OpenStack with Puppet
What's New in Grizzly & Deploying OpenStack with PuppetWhat's New in Grizzly & Deploying OpenStack with Puppet
What's New in Grizzly & Deploying OpenStack with Puppet
 

Ähnlich wie Openstack grizzley puppet_talk

Openstack presentation
Openstack presentationOpenstack presentation
Openstack presentationbodepd
 
Puppet Camp Seattle 2014: Puppet: Cloud Infrastructure as Code
Puppet Camp Seattle 2014: Puppet: Cloud Infrastructure as CodePuppet Camp Seattle 2014: Puppet: Cloud Infrastructure as Code
Puppet Camp Seattle 2014: Puppet: Cloud Infrastructure as CodePuppet
 
Building Docker images with Puppet
Building Docker images with PuppetBuilding Docker images with Puppet
Building Docker images with PuppetNick Jones
 
Continuous Delivery: The Next Frontier
Continuous Delivery: The Next FrontierContinuous Delivery: The Next Frontier
Continuous Delivery: The Next FrontierCarlos Sanchez
 
Instrumentación de entrega continua con Gitlab
Instrumentación de entrega continua con GitlabInstrumentación de entrega continua con Gitlab
Instrumentación de entrega continua con GitlabSoftware Guru
 
Puppet and the HashiCorp Suite
Puppet and the HashiCorp SuitePuppet and the HashiCorp Suite
Puppet and the HashiCorp SuiteBram Vogelaar
 
Spark with kubernates
Spark with kubernatesSpark with kubernates
Spark with kubernatesDavid Tung
 
Railsconf2011 deployment tips_for_slideshare
Railsconf2011 deployment tips_for_slideshareRailsconf2011 deployment tips_for_slideshare
Railsconf2011 deployment tips_for_slidesharetomcopeland
 
Burn down the silos! Helping dev and ops gel on high availability websites
Burn down the silos! Helping dev and ops gel on high availability websitesBurn down the silos! Helping dev and ops gel on high availability websites
Burn down the silos! Helping dev and ops gel on high availability websitesLindsay Holmwood
 
Stanford Hackathon - Puppet Modules
Stanford Hackathon - Puppet ModulesStanford Hackathon - Puppet Modules
Stanford Hackathon - Puppet ModulesPuppet
 
Puppet Deployment at OnApp
Puppet Deployment at OnApp Puppet Deployment at OnApp
Puppet Deployment at OnApp Puppet
 
PuppetCamp SEA 1 - Puppet Deployment at OnApp
PuppetCamp SEA 1 - Puppet Deployment  at OnAppPuppetCamp SEA 1 - Puppet Deployment  at OnApp
PuppetCamp SEA 1 - Puppet Deployment at OnAppOlinData
 
PuppetCamp SEA 1 - Puppet Deployment at OnApp
PuppetCamp SEA 1 - Puppet Deployment  at OnAppPuppetCamp SEA 1 - Puppet Deployment  at OnApp
PuppetCamp SEA 1 - Puppet Deployment at OnAppWalter Heck
 
How I hack on puppet modules
How I hack on puppet modulesHow I hack on puppet modules
How I hack on puppet modulesKris Buytaert
 
Container orchestration from theory to practice
Container orchestration from theory to practiceContainer orchestration from theory to practice
Container orchestration from theory to practiceDocker, Inc.
 
Open stack day 2014 havana from grizzly
Open stack day 2014 havana from grizzlyOpen stack day 2014 havana from grizzly
Open stack day 2014 havana from grizzlyChoe Cheng-Dae
 
Continuous Delivery with Maven, Puppet and Tomcat - ApacheCon NA 2013
Continuous Delivery with Maven, Puppet and Tomcat - ApacheCon NA 2013Continuous Delivery with Maven, Puppet and Tomcat - ApacheCon NA 2013
Continuous Delivery with Maven, Puppet and Tomcat - ApacheCon NA 2013Carlos Sanchez
 
(SEC404) Incident Response in the Cloud | AWS re:Invent 2014
(SEC404) Incident Response in the Cloud | AWS re:Invent 2014(SEC404) Incident Response in the Cloud | AWS re:Invent 2014
(SEC404) Incident Response in the Cloud | AWS re:Invent 2014Amazon Web Services
 
Puppet for Java developers - JavaZone NO 2012
Puppet for Java developers - JavaZone NO 2012Puppet for Java developers - JavaZone NO 2012
Puppet for Java developers - JavaZone NO 2012Carlos Sanchez
 

Ähnlich wie Openstack grizzley puppet_talk (20)

Openstack presentation
Openstack presentationOpenstack presentation
Openstack presentation
 
Puppet Camp Seattle 2014: Puppet: Cloud Infrastructure as Code
Puppet Camp Seattle 2014: Puppet: Cloud Infrastructure as CodePuppet Camp Seattle 2014: Puppet: Cloud Infrastructure as Code
Puppet Camp Seattle 2014: Puppet: Cloud Infrastructure as Code
 
Building Docker images with Puppet
Building Docker images with PuppetBuilding Docker images with Puppet
Building Docker images with Puppet
 
Continuous Delivery: The Next Frontier
Continuous Delivery: The Next FrontierContinuous Delivery: The Next Frontier
Continuous Delivery: The Next Frontier
 
Puppet
PuppetPuppet
Puppet
 
Instrumentación de entrega continua con Gitlab
Instrumentación de entrega continua con GitlabInstrumentación de entrega continua con Gitlab
Instrumentación de entrega continua con Gitlab
 
Puppet and the HashiCorp Suite
Puppet and the HashiCorp SuitePuppet and the HashiCorp Suite
Puppet and the HashiCorp Suite
 
Spark with kubernates
Spark with kubernatesSpark with kubernates
Spark with kubernates
 
Railsconf2011 deployment tips_for_slideshare
Railsconf2011 deployment tips_for_slideshareRailsconf2011 deployment tips_for_slideshare
Railsconf2011 deployment tips_for_slideshare
 
Burn down the silos! Helping dev and ops gel on high availability websites
Burn down the silos! Helping dev and ops gel on high availability websitesBurn down the silos! Helping dev and ops gel on high availability websites
Burn down the silos! Helping dev and ops gel on high availability websites
 
Stanford Hackathon - Puppet Modules
Stanford Hackathon - Puppet ModulesStanford Hackathon - Puppet Modules
Stanford Hackathon - Puppet Modules
 
Puppet Deployment at OnApp
Puppet Deployment at OnApp Puppet Deployment at OnApp
Puppet Deployment at OnApp
 
PuppetCamp SEA 1 - Puppet Deployment at OnApp
PuppetCamp SEA 1 - Puppet Deployment  at OnAppPuppetCamp SEA 1 - Puppet Deployment  at OnApp
PuppetCamp SEA 1 - Puppet Deployment at OnApp
 
PuppetCamp SEA 1 - Puppet Deployment at OnApp
PuppetCamp SEA 1 - Puppet Deployment  at OnAppPuppetCamp SEA 1 - Puppet Deployment  at OnApp
PuppetCamp SEA 1 - Puppet Deployment at OnApp
 
How I hack on puppet modules
How I hack on puppet modulesHow I hack on puppet modules
How I hack on puppet modules
 
Container orchestration from theory to practice
Container orchestration from theory to practiceContainer orchestration from theory to practice
Container orchestration from theory to practice
 
Open stack day 2014 havana from grizzly
Open stack day 2014 havana from grizzlyOpen stack day 2014 havana from grizzly
Open stack day 2014 havana from grizzly
 
Continuous Delivery with Maven, Puppet and Tomcat - ApacheCon NA 2013
Continuous Delivery with Maven, Puppet and Tomcat - ApacheCon NA 2013Continuous Delivery with Maven, Puppet and Tomcat - ApacheCon NA 2013
Continuous Delivery with Maven, Puppet and Tomcat - ApacheCon NA 2013
 
(SEC404) Incident Response in the Cloud | AWS re:Invent 2014
(SEC404) Incident Response in the Cloud | AWS re:Invent 2014(SEC404) Incident Response in the Cloud | AWS re:Invent 2014
(SEC404) Incident Response in the Cloud | AWS re:Invent 2014
 
Puppet for Java developers - JavaZone NO 2012
Puppet for Java developers - JavaZone NO 2012Puppet for Java developers - JavaZone NO 2012
Puppet for Java developers - JavaZone NO 2012
 

Mehr von bodepd

Openstack havana
Openstack havanaOpenstack havana
Openstack havanabodepd
 
Puppet as data_chicago
Puppet as data_chicagoPuppet as data_chicago
Puppet as data_chicagobodepd
 
Puppet: Orchestration framework?
Puppet: Orchestration framework?Puppet: Orchestration framework?
Puppet: Orchestration framework?bodepd
 
Cloud building talk
Cloud building talkCloud building talk
Cloud building talkbodepd
 
Cloudstack talk
Cloudstack talkCloudstack talk
Cloudstack talkbodepd
 
Hacking puppet
Hacking puppetHacking puppet
Hacking puppetbodepd
 
Google compute presentation puppet conf
Google compute presentation puppet confGoogle compute presentation puppet conf
Google compute presentation puppet confbodepd
 

Mehr von bodepd (7)

Openstack havana
Openstack havanaOpenstack havana
Openstack havana
 
Puppet as data_chicago
Puppet as data_chicagoPuppet as data_chicago
Puppet as data_chicago
 
Puppet: Orchestration framework?
Puppet: Orchestration framework?Puppet: Orchestration framework?
Puppet: Orchestration framework?
 
Cloud building talk
Cloud building talkCloud building talk
Cloud building talk
 
Cloudstack talk
Cloudstack talkCloudstack talk
Cloudstack talk
 
Hacking puppet
Hacking puppetHacking puppet
Hacking puppet
 
Google compute presentation puppet conf
Google compute presentation puppet confGoogle compute presentation puppet conf
Google compute presentation puppet conf
 

Openstack grizzley puppet_talk

  • 2. who is this talk for? - the reasonably technical - already understands config management - wants to learn more about using Puppet modules to deploy openstack
  • 5. Resources describe state Current Desired package {‘git’: ensure => present, State State } != Sync Event | CONFIDENTIAL & PROPRIETARY
  • 6. Providers Detect Current State rpm -q git Current Desired package {‘git’: ensure => present, dpkg-query --search git State State } != Sync Event | CONFIDENTIAL & PROPRIETARY
  • 7. Puppet compares rpm -q git Current Desired package {‘git’: ensure => present, dpkg-query --search git State State } Absent != Present Sync Event | CONFIDENTIAL & PROPRIETARY
  • 8. Provides remediate rpm -q git Current Desired package {‘git’: ensure => present, dpkg-query --search git State State } Absent != Present yum install git Sync Event apt-get install git | CONFIDENTIAL & PROPRIETARY
  • 9. Providers Remediate rpm -q git Current Desired package {‘git’: ensure => present, dpkg-query --search git State State } Absent != Present yum install git state transition: Sync Event absent -> present apt-get install git | CONFIDENTIAL & PROPRIETARY
  • 10. Noop Mode rpm -q git Current Desired package {‘git’: ensure => present, dpkg-query --search git State State } Absent != Present state transition: Sync Event absent -> present | CONFIDENTIAL & PROPRIETARY
  • 11. Puppet DSL composes resources class keystone( $admin_token, ){ package { 'keystone': ensure => present, } keystone_config { 'DEFAULT/admin_token': value => $admin_token, require => Package[‘keystone’], notify => Service[‘keystone’], } service { 'keystone': ensure => running, } } | CONFIDENTIAL & PROPRIETARY
  • 13. OpenStack is hard to build reliably, repeatedly
  • 15. OpenStack makes it easier to automate the management of compute resources Puppet Your Business OpenStack Configuration Management Self Service API Hardware
  • 16. OpenStack makes it easier to automate the management of compute resources You Puppet Your Business OpenStack Configuration Management Self Service API Hardware http://www.happyemrdoctor.com/files/2011/02/HappyComputerMan.gif
  • 17. Puppet can be used to codify best practices for OpenStack OpenStackios Now with best practices by: CERN, Enovance, Cisco Redhat, Cybera
  • 19. OpenStack modules • nova • swift • glance • keystone • horizon • openstack • quantum • cinder
  • 20. General purpose modules • rabbitmq • mysql • memcache • apt • concat • ntp • rsync • stdlib • xinetd • openvswitch • apache
  • 21. Each module has classes that present configuration interfaces glance class { 'glance::api': auth_port => '35357', auth_host => ‘keystone_host’, keystone_tenant => 'services', keystone_user => 'glance', keystone_password => ' pass', } class { 'glance::registry': ... }
  • 22. OpenStack - higher level roles class { 'openstack::db::mysql': .... } class { ‘openstack::keystone’: .... } class { 'openstack::glance': ... } class { ‘openstack::horizon’ } class { ‘openstack::nova::controller’ { }
  • 23. 2 role deployments node /openstack-controller/ { class { 'openstack::controller': .... } } node /compute/ { class { ‘openstack::compute’: ... } }
  • 25. Download repo git clone https://github.com/puppetlabs/puppetlabs-openstack_dev_env
  • 26. Install modules > gem install librarian-puppet > cd puppetlabs-openstack_dev_env > librarian-puppet install Once it’s released to the forge > puppet module install puppetlabs-openstack
  • 27. Example site manifest > vi manifests/site.pp
  • 28. Node declarations Review now nodes can be classified: node /openstack-controller/ { .... } node /compute/ { ... }
  • 29. Modify top scope variables ... $cinder_user_password = 'cinder_user_password' $quantum_user_password = 'quantum_user_password' $verbose = 'True' $public_interface = 'eth1' $private_interface = 'eth2' $rabbit_password = 'rabbit_password' $rabbit_user = 'nova' ...
  • 30. install openstack host1# puppet agent -t --certname openstack- controller host2# puppet agent -t --certname compute
  • 31. log into controller > ssh openstack-controller > source /root/openrc
  • 32. Run basic test script: > bash /tmp/test_nova.sh
  • 34. Or use hiera (maybe I should switch?) $cinder_user_password = hiera('cinder_user_password') $quantum_user_password = hiera('quantum_user_password') $verbose = 'True' $public_interface = hiera('public_interface') $private_interface = hiera('private_interface') $rabbit_password = hiera('rabbit_password')
  • 35. Or use an ENC
  • 36. PuppetDB * stores facts and catalog * search for nodes * find facts for nodes * find resources from nodes

Hinweis der Redaktion

  1. \n
  2. \n
  3. \n
  4. \n
  5. \n
  6. \n
  7. \n
  8. \n
  9. \n
  10. \n
  11. \n
  12. \n
  13. \n
  14. \n
  15. \n
  16. \n
  17. \n
  18. \n
  19. \n
  20. \n
  21. \n
  22. \n
  23. \n
  24. \n
  25. \n
  26. \n
  27. \n
  28. \n
  29. \n
  30. \n
  31. \n
  32. \n
  33. \n
  34. \n
  35. \n
  36. \n