SlideShare a Scribd company logo
PuppetAutomagicallyManageYourConfiguration12/04/2010Carla SouzaDevOps 2010 Brazil © Carla Souza
12/04/2010DevOps 2010 Brazil © Carla Souza
12/04/2010DevOps 2010 Brazil © Carla Souza
12/04/2010DevOps 2010 Brazil © Carla Souza
Typical Sysadmin JobRepetitiveManualTedious12/04/2010DevOps 2010 Brazil © Carla Souza
Typical Sysadmin JobInstallation12/04/2010DevOps 2010 Brazil © Carla Souza
Typical Sysadmin JobInstallationConfiguration12/04/2010DevOps 2010 Brazil © Carla Souza
Typical Sysadmin JobInstallationUpdatesFixesAuditsConfiguration12/04/2010DevOps 2010 Brazil © Carla Souza
Typical Sysadmin JobInstallationUpdatesFixesAuditsConfiguration12/04/2010DevOps 2010 Brazil © Carla Souza
After Configuration...Whatwas itconfigured?How?Why?12/04/2010DevOps 2010 Brazil © Carla Souza
After Configuration...Whatwas itconfigured?How?Why?WeneedDocumentation!12/04/2010DevOps 2010 Brazil © Carla Souza
DocumentationWhenwas it configured?Who configured it?What were the configuration's objectives?12/04/2010DevOps 2010 Brazil © Carla Souza
DocumentationWhenwas itconfigured?Who configured it?What were the configuration's objectives?Beconsistent12/04/2010DevOps 2010 Brazil © Carla Souza
After configuration...Is it wellconfigured?12/04/2010DevOps 2010 Brazil © Carla Souza
After configuration...Is it wellconfigured?Badconfiguration is worsethan no configuration12/04/2010DevOps 2010 Brazil © Carla Souza
After configuration...Is it wellconfigured?Badconfiguration is worsethen no configurationWemakemistakes!12/04/2010DevOps 2010 Brazil © Carla Souza
After configuration...Is it wellconfigured?Badconfiguration is worsethen no configurationWemakemistakes!WeneedTests!12/04/2010DevOps 2010 Brazil © Carla Souza
TestsIs the configuration correct?Is it correctlyconfigured?12/04/2010DevOps 2010 Brazil © Carla Souza
After Configuration...How to ensurethat it willstayconfiguredcorrectly over time?12/04/2010DevOps 2010 Brazil © Carla Souza
After Configuration...How to ensure that it will stay configured correctly over time?We need Maintenance!12/04/2010DevOps 2010 Brazil © Carla Souza
MaintenanceRepetitive workEvery time yourepeatonejob, youwaste time12/04/2010DevOps 2010 Brazil © Carla Souza
MaintenanceRepetitive workEvery time you repeat onejob, you waste timeMONEY12/04/2010DevOps 2010 Brazil © Carla Souza
Documentation + Tests + Maintenance12/04/2010DevOps 2010 Brazil © Carla Souza
Documentation + Tests + Maintenance=Spend more time then you think12/04/2010DevOps 2010 Brazil © Carla Souza
Documentation + Tests + Maintenance=Spend more time then you think=Less time for real important work12/04/2010DevOps 2010 Brazil © Carla Souza
The more applications I have12/04/2010DevOps 2010 Brazil © Carla Souza
The more applications I have=More Risks12/04/2010DevOps 2010 Brazil © Carla Souza
The more applications I have=More Risks+More need for documentation12/04/2010DevOps 2010 Brazil © Carla Souza
Cumulative EffectThe time left will be only for fire fighting12/04/2010DevOps 2010 Brazil © Carla Souza
Cumulative EffectThe time left will be only for fire fightingImportant  tasks will be left behind12/04/2010DevOps 2010 Brazil © Carla Souza
Cumulative EffectThe time left will be only for fire fightingImportant  tasks will be left behindBackupsDocumentation updateUser’s tickets12/04/2010DevOps 2010 Brazil © Carla Souza
AutomationGood admins write their own tools12/04/2010DevOps 2010 Brazil © Carla Souza
AutomationGood admins write their own toolsInstall:Kickstart, jumpstart, imagingConfiguration + maintenance:SSH in a for loopSsh keys distributed over the network = lack of secutiry12/04/2010DevOps 2010 Brazil © Carla Souza
Automation toolsGreat for ad-hoc or one time only tasksCan be pushed out via cron12/04/2010DevOps 2010 Brazil © Carla Souza
Automation toolsBut do you always write scripts that are:12/04/2010DevOps 2010 Brazil © Carla Souza
Automation toolsBut do you always write scripts that are:Concurrent safe?Testable?Reversible?Legible?Full of good logging?Portable?12/04/2010DevOps 2010 Brazil © Carla Souza
Wish listSimple solutions12/04/2010DevOps 2010 Brazil © Carla Souza
Wish listSimplesolutionsElegantDomainSpecificLanguage (DSL)Manageyourserversbywritingcode, notrunningcommandsPlatformindependentCentralizedVersion Controlled12/04/2010DevOps 2010 Brazil © Carla Souza
Wish listSimplesolutionsEasy to extendSelfdocumentingCommercial support and trainningOpen source12/04/2010DevOps 2010 Brazil © Carla Souza
PuppetA Puppet Labs productSince 2005Written in RubyExtensible by modulesClient-server architecture (client pull)12/04/2010DevOps 2010 Brazil © Carla Souza
PuppetFile serverSSL CertificatesVery active and helpful communityMailing lists, #puppet @ freenodeOpen Source hosted on Github (GPL)https://github.com/puppetlabsBook12/04/2010DevOps 2010 Brazil © Carla Souza
Puppet12/04/2010DevOps 2010 Brazil © Carla Souza
PuppetInstallationUpdatesFixesAuditsConfiguration12/04/2010DevOps 2010 Brazil © Carla Souza
ComponentspuppetmasterServer daemonRun as ‘puppet’ user12/04/2010DevOps 2010 Brazil © Carla Souza
ComponentspuppetmasterServer daemonRun as ‘puppet’ userpuppetdClient daemonRun as rootPulling every 30min (default value)12/04/2010DevOps 2010 Brazil © Carla Souza
ComponentspuppetcaPuppet’s Certificate Authority12/04/2010DevOps 2010 Brazil © Carla Souza
ComponentspuppetcaPuppet’s Certificate AuthorityFacterGathers basic information about node’s hardware and operation system12/04/2010DevOps 2010 Brazil © Carla Souza
ElementsTypesA type is a particular element that Puppet knows how to configure12/04/2010DevOps 2010 Brazil © Carla Souza
ElementsTypesA type is a particular element that Puppet knows how to configureClassesA named collection of type objects12/04/2010DevOps 2010 Brazil © Carla Souza
ElementsProvidersSpecific implementation of a given resource type12/04/2010DevOps 2010 Brazil © Carla Souza
ElementsProvidersSpecific implementation of a given resource typetype: package12/04/2010DevOps 2010 Brazil © Carla Souza
ElementsProvidersSpecific implementation of a given resource typetype: packageproviders: yum, dpkg, aptitude, apple, rpm, gem, freebsd12/04/2010DevOps 2010 Brazil © Carla Souza
Puppet’s installationyum install puppet-server puppetapt-get install puppetmaster puppetgem install puppet-2.6.4.gem12/04/2010DevOps 2010 Brazil © Carla Souza
Sample CodeInstall, Configure and Start Apache12/04/2010DevOps 2010 Brazil © Carla Souzapackage {“httpd”:	ensure => present,}file {“/etc/httpd/conf/httpd.conf”:	owner => root, group => root, mode => 644,	source => puppet:///modules/apache/httpd.conf,}service {“httpd”:	ensure => running,	enable => true,}
Sample CodeResource Types12/04/2010DevOps 2010 Brazil © Carla Souzapackage {“httpd”:	ensure => present,}file {“/etc/httpd/conf/httpd.conf”:	owner => root, group => root, mode => 644,	source => puppet:///modules/apache/httpd.conf,}service {“httpd”:	ensure => running,	enable => true,}
Sample CodeResource Titles12/04/2010DevOps 2010 Brazil © Carla Souzapackage {“httpd”:	ensure => present,}file {“/etc/httpd/conf/httpd.conf”:	owner => root, group => root, mode => 644,	source => puppet:///modules/apache/httpd.conf,}service {“httpd”:	ensure => running,	enable => true,}
Sample CodeResources Parameters12/04/2010DevOps 2010 Brazil © Carla Souzapackage {“httpd”:ensure => present,}file {“/etc/httpd/conf/httpd.conf”:owner => root, group => root, mode => 644,source => puppet:///modules/apache/httpd.conf,}service {“httpd”:ensure => running,enable => true,}
Sample CodeResources Parameters12/04/2010DevOps 2010 Brazil © Carla Souzapackage {“httpd”:	ensure => present,}file {“/etc/httpd/conf/httpd.conf”:	owner => root, group => root, mode => 644,	source => puppet:///modules/apache/httpd.conf,	require => Package[“httpd”]}service {“httpd”:	ensure => running,	enable => true,	require => File[“/etc/httpd/conf/httpd.conf”]}
Sample CodeResponding to change12/04/2010DevOps 2010 Brazil © Carla Souzafile{“/etc/httpd/conf/httpd.conf”:	.	.	notify => Service[“httpd”]}ORservice{“httpd”:	.	.	subscribe => File[“/etc/httpd/conf/httpd.conf”]}
Sample CodeResource collectionsclass apache {	include apache::install	include apache::config	include apache::service}class apache::install {	package{.....}, package{.....}}class apache::config {	file{.....		require => Class[“apache::install”],		notify => Class[“apache::service”],	}}class apache::service {	service{.....		require => Class[“apache::config”]	}}12/04/2010DevOps 2010 Brazil © Carla Souza
Sample CodeResource collectionsclass apache {	include apache::installinclude apache::config	include apache::service}class apache::install {	package{.....}, package{.....}}class apache::config {	file{.....		require => Class[“apache::install”],		notify => Class[“apache::service”],	}}class apache::service {	service{.....		require => Class[“apache::config”]	}}12/04/2010DevOps 2010 Brazil © Carla Souza
Sample CodeResource collectionsclass apache {	include apache::install	include apache::configinclude apache::service}class apache::install {	package{.....}, package{.....}}class apache::config {	file{.....		require => Class[“apache::install”],		notify => Class[“apache::service”],	}}class apache::service {	service{.....		require => Class[“apache::config”]	}}12/04/2010DevOps 2010 Brazil © Carla Souza
ElementsNodesA configuration block matching a client12/04/2010DevOps 2010 Brazil © Carla Souza
Sample CodeNodes configurationnode “web1.your.com” {include apache}12/04/2010DevOps 2010 Brazil © Carla Souza
ElementsTemplatesApply code and variable substitutionUses ERB12/04/2010DevOps 2010 Brazil © Carla Souza
Sample CodeTemplatesfile{“/etc/httpd/conf.d/servertag.conf”:	.	.	content => template(“apache/servertag.erb”)}servertag.erb:Header set X-httpd<%= hostname %>12/04/2010DevOps 2010 Brazil © Carla Souza
Sample CodeFile Source Selectionfile{“/etc/httpd/conf/httpd.conf”:	source  =>	[“puppet:///apache/httpd.conf.${fqdn}”,			 “puppet:///apache/httpd.conf.${domain}”,			 “puppet:///apache/httpd.conf”]}12/04/2010DevOps 2010 Brazil © Carla Souza
Puppetpuppetlabs.comgithub.com/puppetlabsFollow me:github.com/carlasouzacarla.asouza@gmail.com12/04/2010DevOps 2010 Brazil © Carla Souza
Thank you!12/04/2010DevOps 2010 Brazil © Carla Souza

More Related Content

PPTX
Azure handsonlab
ODP
Automating MySQL operations with Puppet
PDF
Dev ops lessons learned - Michael Collins
ODP
devops@cineca
PPTX
Introduction to Puppet Enterprise 10/03/2018
PDF
Dev to Delivery with Puppet - PuppetConf 2014
PDF
Devops : Automate Your Infrastructure with Puppet
ODP
Azure handsonlab
Automating MySQL operations with Puppet
Dev ops lessons learned - Michael Collins
devops@cineca
Introduction to Puppet Enterprise 10/03/2018
Dev to Delivery with Puppet - PuppetConf 2014
Devops : Automate Your Infrastructure with Puppet

Similar to Puppet - Automagically Manage your Configuration (20)

ODP
DevOps Cebu Presentation
PDF
Adopt DevOps philosophy on your Symfony projects (Symfony Live 2011)
PPTX
Puppetizing Your Organization
PPTX
Intro to DevOps
PDF
Puppet for SysAdmins
PPTX
Introduction to Puppet Enterprise - Jan 30, 2019
PDF
DevOps@Morpho for ParisDevOps - 2nd of December 2014
PDF
Puppet for Sys Admins
KEY
From Dev to DevOps - Apache Barcamp Spain 2011
PDF
Automation with Puppet and a Path to Private Hybrid Cloud
PPTX
Enhance your Agility with DevOps
PPT
PowerPoint Presentation
PPTX
DevOps for Network Engineers
KEY
From Dev to DevOps - ApacheCON NA 2011
PDF
Puppet - Configuration Management Made Eas(ier)
PPTX
DevOps in your Oracle Stack
PDF
How to get started with Site Reliability Engineering
PDF
From Dev to DevOps
PDF
From SaltStack to Puppet and beyond...
PPTX
Nagios Conference 2014 - Mike Merideth - The Art and Zen of Managing Nagios w...
DevOps Cebu Presentation
Adopt DevOps philosophy on your Symfony projects (Symfony Live 2011)
Puppetizing Your Organization
Intro to DevOps
Puppet for SysAdmins
Introduction to Puppet Enterprise - Jan 30, 2019
DevOps@Morpho for ParisDevOps - 2nd of December 2014
Puppet for Sys Admins
From Dev to DevOps - Apache Barcamp Spain 2011
Automation with Puppet and a Path to Private Hybrid Cloud
Enhance your Agility with DevOps
PowerPoint Presentation
DevOps for Network Engineers
From Dev to DevOps - ApacheCON NA 2011
Puppet - Configuration Management Made Eas(ier)
DevOps in your Oracle Stack
How to get started with Site Reliability Engineering
From Dev to DevOps
From SaltStack to Puppet and beyond...
Nagios Conference 2014 - Mike Merideth - The Art and Zen of Managing Nagios w...
Ad

Recently uploaded (20)

PDF
Reach Out and Touch Someone: Haptics and Empathic Computing
PPTX
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
PDF
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
PDF
Encapsulation_ Review paper, used for researhc scholars
PDF
Encapsulation theory and applications.pdf
PPTX
sap open course for s4hana steps from ECC to s4
PDF
Dropbox Q2 2025 Financial Results & Investor Presentation
PDF
cuic standard and advanced reporting.pdf
PDF
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
PDF
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
PPTX
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
PDF
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
PPTX
Programs and apps: productivity, graphics, security and other tools
PDF
Diabetes mellitus diagnosis method based random forest with bat algorithm
PPTX
Big Data Technologies - Introduction.pptx
PPTX
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
PDF
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
PDF
Chapter 3 Spatial Domain Image Processing.pdf
PDF
Empathic Computing: Creating Shared Understanding
PPTX
MYSQL Presentation for SQL database connectivity
Reach Out and Touch Someone: Haptics and Empathic Computing
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
Encapsulation_ Review paper, used for researhc scholars
Encapsulation theory and applications.pdf
sap open course for s4hana steps from ECC to s4
Dropbox Q2 2025 Financial Results & Investor Presentation
cuic standard and advanced reporting.pdf
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
Programs and apps: productivity, graphics, security and other tools
Diabetes mellitus diagnosis method based random forest with bat algorithm
Big Data Technologies - Introduction.pptx
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
Chapter 3 Spatial Domain Image Processing.pdf
Empathic Computing: Creating Shared Understanding
MYSQL Presentation for SQL database connectivity
Ad

Puppet - Automagically Manage your Configuration