SlideShare ist ein Scribd-Unternehmen logo
1 von 20
Puppet
                by Dan Bode
bodepd <at > [‘freenode.net’, ‘twitter’, ‘github’]
About Me
Integration specialist at PuppetLabs

  Puppet expert/Ruby developer

Python Newbie/OpenStack newbie
What is Puppet?

• Declarative configuration language
• Declares desired configuration state
• Performs configuration as state changes
• Encapsulates configuration as higher level
  interfaces
Puppet’s model
current          desired
 state            state


          ==?


          Sync             Event
Resources describe state
  current          desired      package {‘git’:
                                  ensure => present,
   state            state       }




            ==?


            Sync             Event
Providers detect current state
rpm -q git
                      current          desired      package {‘git’:
                                                      ensure => present,
dpkg-query --search    state            state       }
git



                                ==?


                                Sync             Event
Puppet compares
rpm -q git
                       current             desired      package {‘git’:
                                                          ensure => present,
dpkg-query --search     state               state       }
git



                                          present
                          absent    !=


                                   Sync              Event
Providers remediate
rpm -q git
                               current              desired      package {‘git’:
                                                                   ensure => present,
dpkg-query --search             state                state       }
git



                                                   present
                                   absent    !=

             yum install git
                                            Sync              Event
             apt-get install git
Reports maintained for state changes
rpm -q git
                               current              desired      package {‘git’:
                                                                   ensure => present,
dpkg-query --search             state                state       }
git



                                                   present
                                   absent    !=

             yum install git                                              state transition:
                                            Sync              Event       absent -> present
             apt-get install git
Noop Mode
rpm -q git
                      current           desired      package {‘git’:
                                                       ensure => present,
dpkg-query --search    state             state       }
git



                                       present
                         absent   !=

                                                              desired
                                                              state transition:
                                                  Event       absent -> present
Facter
System specific key value pairs:

architecture           => i386
ipaddress              => 192.168.0.4
macaddress             => aa:cc:99:bb:50:a3
operatingsystem        => Darwin
operatingsystemrelease => 10.3.2
Facter
System specific key value pairs:

architecture           => i386
ipaddress              => 192.168.0.4
macaddress             => aa:cc:99:bb:50:a3
operatingsystem        => Darwin
operatingsystemrelease => 10.3.2
# customizable
my_openstack_cluser => cluster_one
my_openstack_role      => swift_storage
Common Resource Types
              Types == Interfaces

•   package

•   service        •   exec

•   file            •   host

•   user

•   group
Common Resource Providers
        Providers == Implementations


• Package providers:
 • rpm
 • yum
 • apt
• Service Providers
 • init
 • systemd
 • upstart
Custom Resource Types

•   database         •   nova_config

•   database_user    •   keystone_user

•   database_grant   •   nova_network

•   rabbitmq_user    •   keystone_tenant

•   rabbitmq_vhost   •   ......
Classes
                    Class[keystone]
                        Package[keystone]


Interface               Group[keystone]

- bind_host
- public_port            User[keystone]
- admin_port
- admin_token
- compute_port   File[/etc/keystone/keystone.conf]


                        Service[keystone]
Compose Nodes from Classes
         Node[nova_contro                               Node[nova_compu
               ller]                                          te1]
                                                        Node[nova_compu
mysql::server     rabbit::queue                                  te2]
                                                           nova::compute::libvirt
                                        glance::api     Node[nova_compu
 keystone                nova::api                                te3]
                                                          nova::compute::libvirt
                                                        Node[nova_compu
nova::network::flatdhcp               glance::registry              te4]
                                                            nova::compute::libvirt

                                                            nova::compute::libvirt
   memcached             nova::scheduler

                    horizon
Modules
|-- manifests         |-- lib
| |-- api.pp          | `-- puppet
| |-- compute         |       |-- provider
| | |-- kvm.pp        |       | |-- nova_config
| | |-- libvirt.pp    |       | | `-- parsed.rb
| |-- compute.pp      |       | |-- nova_floating
| |-- db.pp           |       | | `--
| |-- manage          nova_manage.rb
| | |-- floating.pp    |       | |-- nova_network
| | |-- network.pp    |       | | `--
| |-- network         nova_manage.rb
| | |-- bridge.pp     |       `-- type
| | |-- flat.pp        |           |-- nova_config.rb
| | |-- flatdhcp.pp    |           |-- nova_floating.rb
| | `-- vlan.pp       |           |-- nova_network.rb
| |-- network.pp      |-- templates
| |-- rabbitmq.pp     | |-- api-paste.ini.erb
| |-- scheduler.pp    | `-- nova.conf.erb
OpenStack Modules
•   nova           •   rabbitmq
•   swift          •   mysql
•   glance         •   memcache
•   keystone       •   apt
•   horizon        •   concat

                   •   ntp

                   •   rsync

                   •   stdlib

                   •   xinetd
Interested in contributing?


•   git clone --recurse git://github.com/puppetlabs/
    puppetlabs-openstack

•   compose manifests to describe your exact
    deployment preference

    •   examples can be found in nova/examples/...

Weitere ähnliche Inhalte

Mehr von Puppet

Applying Roles and Profiles method to compliance code
Applying Roles and Profiles method to compliance codeApplying Roles and Profiles method to compliance code
Applying Roles and Profiles method to compliance codePuppet
 
KGI compliance as-code approach
KGI compliance as-code approachKGI compliance as-code approach
KGI compliance as-code approachPuppet
 
Enforce compliance policy with model-driven automation
Enforce compliance policy with model-driven automationEnforce compliance policy with model-driven automation
Enforce compliance policy with model-driven automationPuppet
 
Keynote: Puppet camp compliance
Keynote: Puppet camp complianceKeynote: Puppet camp compliance
Keynote: Puppet camp compliancePuppet
 
Automating it management with Puppet + ServiceNow
Automating it management with Puppet + ServiceNowAutomating it management with Puppet + ServiceNow
Automating it management with Puppet + ServiceNowPuppet
 
Puppet: The best way to harden Windows
Puppet: The best way to harden WindowsPuppet: The best way to harden Windows
Puppet: The best way to harden WindowsPuppet
 
Simplified Patch Management with Puppet - Oct. 2020
Simplified Patch Management with Puppet - Oct. 2020Simplified Patch Management with Puppet - Oct. 2020
Simplified Patch Management with Puppet - Oct. 2020Puppet
 
Accelerating azure adoption with puppet
Accelerating azure adoption with puppetAccelerating azure adoption with puppet
Accelerating azure adoption with puppetPuppet
 
Puppet catalog Diff; Raphael Pinson
Puppet catalog Diff; Raphael PinsonPuppet catalog Diff; Raphael Pinson
Puppet catalog Diff; Raphael PinsonPuppet
 
ServiceNow and Puppet- better together, Kevin Reeuwijk
ServiceNow and Puppet- better together, Kevin ReeuwijkServiceNow and Puppet- better together, Kevin Reeuwijk
ServiceNow and Puppet- better together, Kevin ReeuwijkPuppet
 
Take control of your dev ops dumping ground
Take control of your  dev ops dumping groundTake control of your  dev ops dumping ground
Take control of your dev ops dumping groundPuppet
 
100% Puppet Cloud Deployment of Legacy Software
100% Puppet Cloud Deployment of Legacy Software100% Puppet Cloud Deployment of Legacy Software
100% Puppet Cloud Deployment of Legacy SoftwarePuppet
 
Puppet User Group
Puppet User GroupPuppet User Group
Puppet User GroupPuppet
 
Continuous Compliance and DevSecOps
Continuous Compliance and DevSecOpsContinuous Compliance and DevSecOps
Continuous Compliance and DevSecOpsPuppet
 
The Dynamic Duo of Puppet and Vault tame SSL Certificates, Nick Maludy
The Dynamic Duo of Puppet and Vault tame SSL Certificates, Nick MaludyThe Dynamic Duo of Puppet and Vault tame SSL Certificates, Nick Maludy
The Dynamic Duo of Puppet and Vault tame SSL Certificates, Nick MaludyPuppet
 
ServiceNow and Puppet- better together, Kevin Reeuwijk
ServiceNow and Puppet- better together, Kevin ReeuwijkServiceNow and Puppet- better together, Kevin Reeuwijk
ServiceNow and Puppet- better together, Kevin ReeuwijkPuppet
 
Puppet in k8s, Miroslav Hadzhiev
Puppet in k8s, Miroslav HadzhievPuppet in k8s, Miroslav Hadzhiev
Puppet in k8s, Miroslav HadzhievPuppet
 
Bolt on Windows - James Pogran
Bolt on Windows - James PogranBolt on Windows - James Pogran
Bolt on Windows - James PogranPuppet
 
The Business Value of Modernizing your Windows Infrastructure and Bringing Li...
The Business Value of Modernizing your Windows Infrastructure and Bringing Li...The Business Value of Modernizing your Windows Infrastructure and Bringing Li...
The Business Value of Modernizing your Windows Infrastructure and Bringing Li...Puppet
 
Manage your Windows Infrastructure with Puppet Bolt - August 26 - 2020
Manage your Windows Infrastructure with Puppet Bolt - August 26 - 2020Manage your Windows Infrastructure with Puppet Bolt - August 26 - 2020
Manage your Windows Infrastructure with Puppet Bolt - August 26 - 2020Puppet
 

Mehr von Puppet (20)

Applying Roles and Profiles method to compliance code
Applying Roles and Profiles method to compliance codeApplying Roles and Profiles method to compliance code
Applying Roles and Profiles method to compliance code
 
KGI compliance as-code approach
KGI compliance as-code approachKGI compliance as-code approach
KGI compliance as-code approach
 
Enforce compliance policy with model-driven automation
Enforce compliance policy with model-driven automationEnforce compliance policy with model-driven automation
Enforce compliance policy with model-driven automation
 
Keynote: Puppet camp compliance
Keynote: Puppet camp complianceKeynote: Puppet camp compliance
Keynote: Puppet camp compliance
 
Automating it management with Puppet + ServiceNow
Automating it management with Puppet + ServiceNowAutomating it management with Puppet + ServiceNow
Automating it management with Puppet + ServiceNow
 
Puppet: The best way to harden Windows
Puppet: The best way to harden WindowsPuppet: The best way to harden Windows
Puppet: The best way to harden Windows
 
Simplified Patch Management with Puppet - Oct. 2020
Simplified Patch Management with Puppet - Oct. 2020Simplified Patch Management with Puppet - Oct. 2020
Simplified Patch Management with Puppet - Oct. 2020
 
Accelerating azure adoption with puppet
Accelerating azure adoption with puppetAccelerating azure adoption with puppet
Accelerating azure adoption with puppet
 
Puppet catalog Diff; Raphael Pinson
Puppet catalog Diff; Raphael PinsonPuppet catalog Diff; Raphael Pinson
Puppet catalog Diff; Raphael Pinson
 
ServiceNow and Puppet- better together, Kevin Reeuwijk
ServiceNow and Puppet- better together, Kevin ReeuwijkServiceNow and Puppet- better together, Kevin Reeuwijk
ServiceNow and Puppet- better together, Kevin Reeuwijk
 
Take control of your dev ops dumping ground
Take control of your  dev ops dumping groundTake control of your  dev ops dumping ground
Take control of your dev ops dumping ground
 
100% Puppet Cloud Deployment of Legacy Software
100% Puppet Cloud Deployment of Legacy Software100% Puppet Cloud Deployment of Legacy Software
100% Puppet Cloud Deployment of Legacy Software
 
Puppet User Group
Puppet User GroupPuppet User Group
Puppet User Group
 
Continuous Compliance and DevSecOps
Continuous Compliance and DevSecOpsContinuous Compliance and DevSecOps
Continuous Compliance and DevSecOps
 
The Dynamic Duo of Puppet and Vault tame SSL Certificates, Nick Maludy
The Dynamic Duo of Puppet and Vault tame SSL Certificates, Nick MaludyThe Dynamic Duo of Puppet and Vault tame SSL Certificates, Nick Maludy
The Dynamic Duo of Puppet and Vault tame SSL Certificates, Nick Maludy
 
ServiceNow and Puppet- better together, Kevin Reeuwijk
ServiceNow and Puppet- better together, Kevin ReeuwijkServiceNow and Puppet- better together, Kevin Reeuwijk
ServiceNow and Puppet- better together, Kevin Reeuwijk
 
Puppet in k8s, Miroslav Hadzhiev
Puppet in k8s, Miroslav HadzhievPuppet in k8s, Miroslav Hadzhiev
Puppet in k8s, Miroslav Hadzhiev
 
Bolt on Windows - James Pogran
Bolt on Windows - James PogranBolt on Windows - James Pogran
Bolt on Windows - James Pogran
 
The Business Value of Modernizing your Windows Infrastructure and Bringing Li...
The Business Value of Modernizing your Windows Infrastructure and Bringing Li...The Business Value of Modernizing your Windows Infrastructure and Bringing Li...
The Business Value of Modernizing your Windows Infrastructure and Bringing Li...
 
Manage your Windows Infrastructure with Puppet Bolt - August 26 - 2020
Manage your Windows Infrastructure with Puppet Bolt - August 26 - 2020Manage your Windows Infrastructure with Puppet Bolt - August 26 - 2020
Manage your Windows Infrastructure with Puppet Bolt - August 26 - 2020
 

Kürzlich hochgeladen

Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Alan Dix
 
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
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024Scott Keck-Warren
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphNeo4j
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksSoftradix Technologies
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptxLBM Solutions
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhisoniya singh
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 

Kürzlich hochgeladen (20)

Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
 
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
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food Manufacturing
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping Elbows
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other Frameworks
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptx
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 

Puppet + OpenStack: Presentation from OpenStack Summit 4/16/2012

  • 1. Puppet by Dan Bode bodepd <at > [‘freenode.net’, ‘twitter’, ‘github’]
  • 2. About Me Integration specialist at PuppetLabs Puppet expert/Ruby developer Python Newbie/OpenStack newbie
  • 3. What is Puppet? • Declarative configuration language • Declares desired configuration state • Performs configuration as state changes • Encapsulates configuration as higher level interfaces
  • 4. Puppet’s model current desired state state ==? Sync Event
  • 5. Resources describe state current desired package {‘git’: ensure => present, state state } ==? Sync Event
  • 6. Providers detect current state rpm -q git current desired package {‘git’: ensure => present, dpkg-query --search state state } git ==? Sync Event
  • 7. Puppet compares rpm -q git current desired package {‘git’: ensure => present, dpkg-query --search state state } git present absent != Sync Event
  • 8. Providers remediate rpm -q git current desired package {‘git’: ensure => present, dpkg-query --search state state } git present absent != yum install git Sync Event apt-get install git
  • 9. Reports maintained for state changes rpm -q git current desired package {‘git’: ensure => present, dpkg-query --search state state } git present absent != yum install git state transition: Sync Event absent -> present apt-get install git
  • 10. Noop Mode rpm -q git current desired package {‘git’: ensure => present, dpkg-query --search state state } git present absent != desired state transition: Event absent -> present
  • 11. Facter System specific key value pairs: architecture => i386 ipaddress => 192.168.0.4 macaddress => aa:cc:99:bb:50:a3 operatingsystem => Darwin operatingsystemrelease => 10.3.2
  • 12. Facter System specific key value pairs: architecture => i386 ipaddress => 192.168.0.4 macaddress => aa:cc:99:bb:50:a3 operatingsystem => Darwin operatingsystemrelease => 10.3.2 # customizable my_openstack_cluser => cluster_one my_openstack_role => swift_storage
  • 13. Common Resource Types Types == Interfaces • package • service • exec • file • host • user • group
  • 14. Common Resource Providers Providers == Implementations • Package providers: • rpm • yum • apt • Service Providers • init • systemd • upstart
  • 15. Custom Resource Types • database • nova_config • database_user • keystone_user • database_grant • nova_network • rabbitmq_user • keystone_tenant • rabbitmq_vhost • ......
  • 16. Classes Class[keystone] Package[keystone] Interface Group[keystone] - bind_host - public_port User[keystone] - admin_port - admin_token - compute_port File[/etc/keystone/keystone.conf] Service[keystone]
  • 17. Compose Nodes from Classes Node[nova_contro Node[nova_compu ller] te1] Node[nova_compu mysql::server rabbit::queue te2] nova::compute::libvirt glance::api Node[nova_compu keystone nova::api te3] nova::compute::libvirt Node[nova_compu nova::network::flatdhcp glance::registry te4] nova::compute::libvirt nova::compute::libvirt memcached nova::scheduler horizon
  • 18. Modules |-- manifests |-- lib | |-- api.pp | `-- puppet | |-- compute | |-- provider | | |-- kvm.pp | | |-- nova_config | | |-- libvirt.pp | | | `-- parsed.rb | |-- compute.pp | | |-- nova_floating | |-- db.pp | | | `-- | |-- manage nova_manage.rb | | |-- floating.pp | | |-- nova_network | | |-- network.pp | | | `-- | |-- network nova_manage.rb | | |-- bridge.pp | `-- type | | |-- flat.pp | |-- nova_config.rb | | |-- flatdhcp.pp | |-- nova_floating.rb | | `-- vlan.pp | |-- nova_network.rb | |-- network.pp |-- templates | |-- rabbitmq.pp | |-- api-paste.ini.erb | |-- scheduler.pp | `-- nova.conf.erb
  • 19. OpenStack Modules • nova • rabbitmq • swift • mysql • glance • memcache • keystone • apt • horizon • concat • ntp • rsync • stdlib • xinetd
  • 20. Interested in contributing? • git clone --recurse git://github.com/puppetlabs/ puppetlabs-openstack • compose manifests to describe your exact deployment preference • examples can be found in nova/examples/...

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