SlideShare a Scribd company logo
1 of 28
Download to read offline
© 2009 VMware Inc. All rights reserved
Puppet Primer
Robbie Jerrom – Solution Architect VMware
Twitter- @robbiej
Disclaimer
The material in the presentation is based from my exploration and
learning of puppet.
My views are my own and not necessarily shared by PuppetLabs or
VMware.
2 Confidential
About me..
I’m a Solution Architect at VMware.
Ex- IBM where I did many things.. The most relevant to this presentation
is running the WebSphere build team for 2 years..
.. And it hurt.. Every version of AIX / Solaris / Windows & Early Linux
environments.. All from a single build environment .. Distributed around
the globe.
I wish Puppet had existed back then !
3 Confidential
Software Eats the World..
“Puppet Labs Secures $30 Million
Investment From VMware”
4 Confidential
5
So what is Puppet.. And why would I care ?
Old school software deployment..
• Production
• Dev / Test
• Service Support
• Many of the challenges are the same and our solutions very similar..
 Scripts… lots and lots of them..
- Perl / PowerShell / Bash / SH / Make / Awk
- Whatever your particular poison was you or your team created scripts to make
things easier.
- Then you left.. Or got promoted.. And the next guy did the same.. Probably in
their favourite scripting language.
6 Confidential
Result… script hell..
Growing complexity..
Inherited ‘mess’, undocumented and unmanageable.
7 Confidential
As a concept.. A script is ‘how to do something’
Scripts of any variety typically fall into describing how to perform a
task.
• Copy file a to location b
 If that fails log an error and stop.
• Compile file a found in location b
 If that fails log an error and stop
• Start Application server
 Call deploy script for myapplication found in location b.
And they usually spawn more scripts !
8 Confidential
A new way..
Puppet takes a different approach..
Puppet is a state machine, it takes a declarative
approach to configuration management.
You tell puppet ‘what’ and it works out the ‘how’.
With Puppet you are providing a definition of what it means to be:
• A Webserver
• An Application server
• A Proxy server
9 Confidential
Puppet Operating Layers
10 Confidential
Deployment
Configuration & Resource Abstraction
Transactional Layer
Deployment Layer
Client Server Architecture
11 Confidential
Node Node Node
Node
Node
Node
(Puppet) Master
Configuration & Resource Abstraction Layer
Much more on this shortly..
12 Confidential
Configuration & Resource Abstraction
Modules Classes Packages Files ServicesResources
Transaction Layer
To complete the picture..
14 Confidential
Puppet Enterprise
Everything to Puppet is a resource
15 Confidential
[root@puppet ~]# puppet resource user robbie
user { 'robbie':
ensure => 'present',
comment => 'Robbie',
gid => '500',
groups => ['sudoers'],
home => '/home/robbie',
password => '$1$W3RSF$sQhH9VeK1f5IwR.TNCj8y1',
password_max_age => '99999',
password_min_age => '0',
shell => '/bin/bash',
uid => '500',
}
Doing something in Puppet..
Simple example – Single machine not client server.
16 Confidential
Doing something in Puppet..
A puppet managed environment consists of a number of core files.
• site.pp - starting point for Puppet default configurations.
• node.pp – file host descriptions.
• modules - collection of .pp files to define your environment.
17 Confidential
site.pp
import "templates.pp"
import "node.pp"
# global defaults
Package {
provider => $operatingsystem ? {
debian => aptitude,
redhat => up2date }
}
18 Confidential
include vim
node basenode
{service {“telnet":ensure => "stopped", }}
node ‘proxy.example.com’ inherits basenode
{ include proxy }
node /^wwwd+.example.com/ inherits basenode
{ include webserver }
node /^appd+.example.com/ inherits basenode
{ include appserver
package {‘vim’ : ensure => present }}
node basenode
{
service {“telnet":ensure => "stopped", }
}
node.pp
19 Confidential
node ‘proxy.example.com’ inherits basenode
{ include proxy }
node /^wwwd+.example.com/ inherits basenode
{ include webserver }
Regex to include :
www1.example.com
www2.example.com
…. etc.
node /^appd+.example.com inherits basenode
{ include appserver
package {‘vim’ : ensure => present }}
Regex to include :
app1.example.com
app2.example.com
…. etc.
Package/File/Service
file – Manage Local Files
• ensure { present, absent, file, directory, link }
• source
• Content
• purge
package – Package management
• ensure {present, latest, version, absent, purged }
• Name
• source
20 Confidential
Package/File/Service
service – System services management
• ensure {running, stopped}
• enable {true, false}
• hasrestart {true,false}
Notify – log a message
• message {“hello world!”}
21 Confidential
Simple Puppet Example – Part of SSH Module
22 Confidential
package { ssh:
ensure => latest,
}
file { /etc/ssh/sshd_config:
source => puppet:///modules/ssh/sshd_config,
require => Package[ssh],
notify => Service[sshd],
}
service { sshd:
ensure => running,
subscribe => Package[ssh],
}
Modules
23 Confidential
Apply to a node..
Lets make a webserver then an app server.
24 Confidential
The new platform scenario
Puppet makes things far quicker..
1. Add the new node..
• And any variations or missing configurations will be reported.
• Factor will pull the new platform specifics and report up to puppetmaster.
• Puppet will deploy & configure software as per the node policy.
2. Update App Specific Manifests & Configs if new platform.
3. Done !
25 Confidential
Things I’ve learnt..
SSL Cert’s are a pain anytime and place.
• The Puppet Labs site has some great guides on configuration and
management of these but I still spent a reasonable amount of time fighting with
them.
• Make sure DNS is working .. See above.. If your hostnames don’t match certs
get upset – For local testing /etc/hosts might be easier.
• Start small.. SSH / Tomcat are great little examples.. WebSphere or JBoss not
so much. Apache is a good learning exercise.
• MS Windows adds complexity, consider each windows version a completely
different platform. Some services provided by puppet do not work on Windows
yet.
26 Confidential
Final words.. Questions ?
VMware & PuppetLabs.. working together on some ‘cool stuff’.
Right now vCloud Automation Centre & AppDirector products can
take advantage of Puppet.
If you’re a VMware person, its worth becoming a Puppet person too.
27 Confidential
Thanks for listening..
Special thanks to the guys at PuppetLabs; Reid & Chris for
technical support, t-shirts, stickers and books.
28 Confidential

More Related Content

What's hot

VMware and Puppet: How to Plan, Deploy & Manage Modern Applications
VMware and Puppet: How to Plan, Deploy & Manage Modern ApplicationsVMware and Puppet: How to Plan, Deploy & Manage Modern Applications
VMware and Puppet: How to Plan, Deploy & Manage Modern Applications
Puppet
 

What's hot (19)

The Top Eight Best Practices for Deploying XenApp and XenDesktop 7.6
The Top Eight Best Practices for Deploying XenApp and XenDesktop 7.6The Top Eight Best Practices for Deploying XenApp and XenDesktop 7.6
The Top Eight Best Practices for Deploying XenApp and XenDesktop 7.6
 
More efficient service deployment with Dell Active System Manager
More efficient service deployment with Dell Active System ManagerMore efficient service deployment with Dell Active System Manager
More efficient service deployment with Dell Active System Manager
 
Best practices for implementing, administering, and troubleshooting XenDeskto...
Best practices for implementing, administering, and troubleshooting XenDeskto...Best practices for implementing, administering, and troubleshooting XenDeskto...
Best practices for implementing, administering, and troubleshooting XenDeskto...
 
XenApp XenDesktop 7.8 Workshop
XenApp XenDesktop 7.8 Workshop XenApp XenDesktop 7.8 Workshop
XenApp XenDesktop 7.8 Workshop
 
VMware and Puppet: How to Plan, Deploy & Manage Modern Applications
VMware and Puppet: How to Plan, Deploy & Manage Modern ApplicationsVMware and Puppet: How to Plan, Deploy & Manage Modern Applications
VMware and Puppet: How to Plan, Deploy & Manage Modern Applications
 
Deliver a better virtual desktop experience with Dell Technologies APEX Priva...
Deliver a better virtual desktop experience with Dell Technologies APEX Priva...Deliver a better virtual desktop experience with Dell Technologies APEX Priva...
Deliver a better virtual desktop experience with Dell Technologies APEX Priva...
 
Enable greater data reduction, storage performance, and manageability with De...
Enable greater data reduction, storage performance, and manageability with De...Enable greater data reduction, storage performance, and manageability with De...
Enable greater data reduction, storage performance, and manageability with De...
 
XenDesktop and XenApp - 2015 summary & bit of future
XenDesktop and XenApp - 2015 summary & bit of futureXenDesktop and XenApp - 2015 summary & bit of future
XenDesktop and XenApp - 2015 summary & bit of future
 
Maintaining and Troubleshooting your XenDesktop 7.5 Environment
Maintaining and Troubleshooting your XenDesktop 7.5 EnvironmentMaintaining and Troubleshooting your XenDesktop 7.5 Environment
Maintaining and Troubleshooting your XenDesktop 7.5 Environment
 
Citrix XenDesktop Reference Architecture for 750 users
Citrix XenDesktop Reference Architecture for 750 usersCitrix XenDesktop Reference Architecture for 750 users
Citrix XenDesktop Reference Architecture for 750 users
 
VMworld 2015: Monitoring and Managing Applications with vRealize Operations 6...
VMworld 2015: Monitoring and Managing Applications with vRealize Operations 6...VMworld 2015: Monitoring and Managing Applications with vRealize Operations 6...
VMworld 2015: Monitoring and Managing Applications with vRealize Operations 6...
 
Designing your XenApp 7.5 Environment
Designing your XenApp 7.5 EnvironmentDesigning your XenApp 7.5 Environment
Designing your XenApp 7.5 Environment
 
Scaling xen desktop and xenapp with solid state drives in healthcare
Scaling xen desktop and xenapp with solid state drives in healthcareScaling xen desktop and xenapp with solid state drives in healthcare
Scaling xen desktop and xenapp with solid state drives in healthcare
 
VMworld 2015: Building a Business Case for Virtual SAN
VMworld 2015: Building a Business Case for Virtual SANVMworld 2015: Building a Business Case for Virtual SAN
VMworld 2015: Building a Business Case for Virtual SAN
 
VMware 2015: Next Horizon for Cloud Networking and Security
VMware 2015: Next Horizon for Cloud Networking and SecurityVMware 2015: Next Horizon for Cloud Networking and Security
VMware 2015: Next Horizon for Cloud Networking and Security
 
VMworld 2015: Day to Day Automation of VMware Products to Increase Productivi...
VMworld 2015: Day to Day Automation of VMware Products to Increase Productivi...VMworld 2015: Day to Day Automation of VMware Products to Increase Productivi...
VMworld 2015: Day to Day Automation of VMware Products to Increase Productivi...
 
Building self-service on demand infrastructure with Puppet and VMware
Building self-service on demand infrastructure with Puppet and VMwareBuilding self-service on demand infrastructure with Puppet and VMware
Building self-service on demand infrastructure with Puppet and VMware
 
Deliver a better virtual desktop experience with Dell Technologies APEX Priva...
Deliver a better virtual desktop experience with Dell Technologies APEX Priva...Deliver a better virtual desktop experience with Dell Technologies APEX Priva...
Deliver a better virtual desktop experience with Dell Technologies APEX Priva...
 
VMware@Night: Container & Virtualisierung
VMware@Night: Container & VirtualisierungVMware@Night: Container & Virtualisierung
VMware@Night: Container & Virtualisierung
 

Similar to V mware

Using Puppet - Real World Configuration Management
Using Puppet - Real World Configuration ManagementUsing Puppet - Real World Configuration Management
Using Puppet - Real World Configuration Management
James Turnbull
 
Automating Software Development Life Cycle - A DevOps Approach
Automating Software Development Life Cycle - A DevOps ApproachAutomating Software Development Life Cycle - A DevOps Approach
Automating Software Development Life Cycle - A DevOps Approach
Akshaya Mahapatra
 
Puppetpreso
PuppetpresoPuppetpreso
Puppetpreso
ke4qqq
 
Puppet and CloudStack
Puppet and CloudStackPuppet and CloudStack
Puppet and CloudStack
ke4qqq
 
Using puppet
Using puppetUsing puppet
Using puppet
Alex Su
 
Infrastructure as code with Puppet and Apache CloudStack
Infrastructure as code with Puppet and Apache CloudStackInfrastructure as code with Puppet and Apache CloudStack
Infrastructure as code with Puppet and Apache CloudStack
ke4qqq
 

Similar to V mware (20)

Using Puppet in Small Infrastructures
Using Puppet in Small InfrastructuresUsing Puppet in Small Infrastructures
Using Puppet in Small Infrastructures
 
A Fabric/Puppet Build/Deploy System
A Fabric/Puppet Build/Deploy SystemA Fabric/Puppet Build/Deploy System
A Fabric/Puppet Build/Deploy System
 
Our Puppet Story (Linuxtag 2014)
Our Puppet Story (Linuxtag 2014)Our Puppet Story (Linuxtag 2014)
Our Puppet Story (Linuxtag 2014)
 
Puppet getting started by Dirk Götz
Puppet getting started by Dirk GötzPuppet getting started by Dirk Götz
Puppet getting started by Dirk Götz
 
SCM Puppet: from an intro to the scaling
SCM Puppet: from an intro to the scalingSCM Puppet: from an intro to the scaling
SCM Puppet: from an intro to the scaling
 
Puppet Camp Boston 2014: Keynote
Puppet Camp Boston 2014: Keynote Puppet Camp Boston 2014: Keynote
Puppet Camp Boston 2014: Keynote
 
Configuration Management in the Cloud - Cloud Phoenix Meetup Feb 2014
Configuration Management in the Cloud - Cloud Phoenix Meetup Feb 2014Configuration Management in the Cloud - Cloud Phoenix Meetup Feb 2014
Configuration Management in the Cloud - Cloud Phoenix Meetup Feb 2014
 
Adopt DevOps philosophy on your Symfony projects (Symfony Live 2011)
Adopt DevOps philosophy on your Symfony projects (Symfony Live 2011)Adopt DevOps philosophy on your Symfony projects (Symfony Live 2011)
Adopt DevOps philosophy on your Symfony projects (Symfony Live 2011)
 
Using Puppet - Real World Configuration Management
Using Puppet - Real World Configuration ManagementUsing Puppet - Real World Configuration Management
Using Puppet - Real World Configuration Management
 
Automating Software Development Life Cycle - A DevOps Approach
Automating Software Development Life Cycle - A DevOps ApproachAutomating Software Development Life Cycle - A DevOps Approach
Automating Software Development Life Cycle - A DevOps Approach
 
Scaling to-5000-nodes
Scaling to-5000-nodesScaling to-5000-nodes
Scaling to-5000-nodes
 
Puppet Camp New York 2015: Puppet Enterprise Scaling Lessons Learned (Interme...
Puppet Camp New York 2015: Puppet Enterprise Scaling Lessons Learned (Interme...Puppet Camp New York 2015: Puppet Enterprise Scaling Lessons Learned (Interme...
Puppet Camp New York 2015: Puppet Enterprise Scaling Lessons Learned (Interme...
 
One-Man Ops
One-Man OpsOne-Man Ops
One-Man Ops
 
Puppetpreso
PuppetpresoPuppetpreso
Puppetpreso
 
Puppet and CloudStack
Puppet and CloudStackPuppet and CloudStack
Puppet and CloudStack
 
Using puppet
Using puppetUsing puppet
Using puppet
 
How Puppet Enables the Use of Lightweight Virtualized Containers - PuppetConf...
How Puppet Enables the Use of Lightweight Virtualized Containers - PuppetConf...How Puppet Enables the Use of Lightweight Virtualized Containers - PuppetConf...
How Puppet Enables the Use of Lightweight Virtualized Containers - PuppetConf...
 
Puppet and Apache CloudStack
Puppet and Apache CloudStackPuppet and Apache CloudStack
Puppet and Apache CloudStack
 
Infrastructure as code with Puppet and Apache CloudStack
Infrastructure as code with Puppet and Apache CloudStackInfrastructure as code with Puppet and Apache CloudStack
Infrastructure as code with Puppet and Apache CloudStack
 
Puppet slides for intelligrape
Puppet slides for intelligrapePuppet slides for intelligrape
Puppet slides for intelligrape
 

More from dvmug1 (9)

S3
S3S3
S3
 
Nimble storage
Nimble storageNimble storage
Nimble storage
 
Andrew bettany slides
Andrew bettany slidesAndrew bettany slides
Andrew bettany slides
 
Vmug azure vm_chris guestslides
Vmug azure vm_chris guestslidesVmug azure vm_chris guestslides
Vmug azure vm_chris guestslides
 
Veeam presentation
Veeam presentationVeeam presentation
Veeam presentation
 
Freeform dynamics
Freeform dynamicsFreeform dynamics
Freeform dynamics
 
10 zig presentation
10 zig presentation10 zig presentation
10 zig presentation
 
Vmug birmingham mar2013 trendmicro
Vmug birmingham mar2013 trendmicroVmug birmingham mar2013 trendmicro
Vmug birmingham mar2013 trendmicro
 
Vmug birmingham mar2013 trendmicro
Vmug birmingham mar2013 trendmicroVmug birmingham mar2013 trendmicro
Vmug birmingham mar2013 trendmicro
 

Recently uploaded

Recently uploaded (20)

Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024
 
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
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
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
 
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
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
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
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
 
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)
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
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...
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 

V mware

  • 1. © 2009 VMware Inc. All rights reserved Puppet Primer Robbie Jerrom – Solution Architect VMware Twitter- @robbiej
  • 2. Disclaimer The material in the presentation is based from my exploration and learning of puppet. My views are my own and not necessarily shared by PuppetLabs or VMware. 2 Confidential
  • 3. About me.. I’m a Solution Architect at VMware. Ex- IBM where I did many things.. The most relevant to this presentation is running the WebSphere build team for 2 years.. .. And it hurt.. Every version of AIX / Solaris / Windows & Early Linux environments.. All from a single build environment .. Distributed around the globe. I wish Puppet had existed back then ! 3 Confidential
  • 4. Software Eats the World.. “Puppet Labs Secures $30 Million Investment From VMware” 4 Confidential
  • 5. 5
  • 6. So what is Puppet.. And why would I care ? Old school software deployment.. • Production • Dev / Test • Service Support • Many of the challenges are the same and our solutions very similar..  Scripts… lots and lots of them.. - Perl / PowerShell / Bash / SH / Make / Awk - Whatever your particular poison was you or your team created scripts to make things easier. - Then you left.. Or got promoted.. And the next guy did the same.. Probably in their favourite scripting language. 6 Confidential
  • 7. Result… script hell.. Growing complexity.. Inherited ‘mess’, undocumented and unmanageable. 7 Confidential
  • 8. As a concept.. A script is ‘how to do something’ Scripts of any variety typically fall into describing how to perform a task. • Copy file a to location b  If that fails log an error and stop. • Compile file a found in location b  If that fails log an error and stop • Start Application server  Call deploy script for myapplication found in location b. And they usually spawn more scripts ! 8 Confidential
  • 9. A new way.. Puppet takes a different approach.. Puppet is a state machine, it takes a declarative approach to configuration management. You tell puppet ‘what’ and it works out the ‘how’. With Puppet you are providing a definition of what it means to be: • A Webserver • An Application server • A Proxy server 9 Confidential
  • 10. Puppet Operating Layers 10 Confidential Deployment Configuration & Resource Abstraction Transactional Layer
  • 11. Deployment Layer Client Server Architecture 11 Confidential Node Node Node Node Node Node (Puppet) Master
  • 12. Configuration & Resource Abstraction Layer Much more on this shortly.. 12 Confidential Configuration & Resource Abstraction Modules Classes Packages Files ServicesResources
  • 14. To complete the picture.. 14 Confidential Puppet Enterprise
  • 15. Everything to Puppet is a resource 15 Confidential [root@puppet ~]# puppet resource user robbie user { 'robbie': ensure => 'present', comment => 'Robbie', gid => '500', groups => ['sudoers'], home => '/home/robbie', password => '$1$W3RSF$sQhH9VeK1f5IwR.TNCj8y1', password_max_age => '99999', password_min_age => '0', shell => '/bin/bash', uid => '500', }
  • 16. Doing something in Puppet.. Simple example – Single machine not client server. 16 Confidential
  • 17. Doing something in Puppet.. A puppet managed environment consists of a number of core files. • site.pp - starting point for Puppet default configurations. • node.pp – file host descriptions. • modules - collection of .pp files to define your environment. 17 Confidential
  • 18. site.pp import "templates.pp" import "node.pp" # global defaults Package { provider => $operatingsystem ? { debian => aptitude, redhat => up2date } } 18 Confidential
  • 19. include vim node basenode {service {“telnet":ensure => "stopped", }} node ‘proxy.example.com’ inherits basenode { include proxy } node /^wwwd+.example.com/ inherits basenode { include webserver } node /^appd+.example.com/ inherits basenode { include appserver package {‘vim’ : ensure => present }} node basenode { service {“telnet":ensure => "stopped", } } node.pp 19 Confidential node ‘proxy.example.com’ inherits basenode { include proxy } node /^wwwd+.example.com/ inherits basenode { include webserver } Regex to include : www1.example.com www2.example.com …. etc. node /^appd+.example.com inherits basenode { include appserver package {‘vim’ : ensure => present }} Regex to include : app1.example.com app2.example.com …. etc.
  • 20. Package/File/Service file – Manage Local Files • ensure { present, absent, file, directory, link } • source • Content • purge package – Package management • ensure {present, latest, version, absent, purged } • Name • source 20 Confidential
  • 21. Package/File/Service service – System services management • ensure {running, stopped} • enable {true, false} • hasrestart {true,false} Notify – log a message • message {“hello world!”} 21 Confidential
  • 22. Simple Puppet Example – Part of SSH Module 22 Confidential package { ssh: ensure => latest, } file { /etc/ssh/sshd_config: source => puppet:///modules/ssh/sshd_config, require => Package[ssh], notify => Service[sshd], } service { sshd: ensure => running, subscribe => Package[ssh], }
  • 24. Apply to a node.. Lets make a webserver then an app server. 24 Confidential
  • 25. The new platform scenario Puppet makes things far quicker.. 1. Add the new node.. • And any variations or missing configurations will be reported. • Factor will pull the new platform specifics and report up to puppetmaster. • Puppet will deploy & configure software as per the node policy. 2. Update App Specific Manifests & Configs if new platform. 3. Done ! 25 Confidential
  • 26. Things I’ve learnt.. SSL Cert’s are a pain anytime and place. • The Puppet Labs site has some great guides on configuration and management of these but I still spent a reasonable amount of time fighting with them. • Make sure DNS is working .. See above.. If your hostnames don’t match certs get upset – For local testing /etc/hosts might be easier. • Start small.. SSH / Tomcat are great little examples.. WebSphere or JBoss not so much. Apache is a good learning exercise. • MS Windows adds complexity, consider each windows version a completely different platform. Some services provided by puppet do not work on Windows yet. 26 Confidential
  • 27. Final words.. Questions ? VMware & PuppetLabs.. working together on some ‘cool stuff’. Right now vCloud Automation Centre & AppDirector products can take advantage of Puppet. If you’re a VMware person, its worth becoming a Puppet person too. 27 Confidential
  • 28. Thanks for listening.. Special thanks to the guys at PuppetLabs; Reid & Chris for technical support, t-shirts, stickers and books. 28 Confidential