SlideShare a Scribd company logo
Puppet AutomagicallyManageYour Configuration 12/04/2010 Carla Souza DevOps 2010 Brazil © Carla Souza
12/04/2010 DevOps 2010 Brazil © Carla Souza
12/04/2010 DevOps 2010 Brazil © Carla Souza
12/04/2010 DevOps 2010 Brazil © Carla Souza
Typical Sysadmin Job Repetitive Manual Tedious 12/04/2010 DevOps 2010 Brazil © Carla Souza
Typical Sysadmin Job Installation 12/04/2010 DevOps 2010 Brazil © Carla Souza
Typical Sysadmin Job Installation Configuration 12/04/2010 DevOps 2010 Brazil © Carla Souza
Typical Sysadmin Job Installation Updates Fixes Audits Configuration 12/04/2010 DevOps 2010 Brazil © Carla Souza
Typical Sysadmin Job Installation Updates Fixes Audits Configuration 12/04/2010 DevOps 2010 Brazil © Carla Souza
After Configuration... Whatwas itconfigured? How? Why? 12/04/2010 DevOps 2010 Brazil © Carla Souza
After Configuration... Whatwas itconfigured? How? Why? WeneedDocumentation! 12/04/2010 DevOps 2010 Brazil © Carla Souza
Documentation Whenwas it configured? Who configured it? What were the configuration's objectives? 12/04/2010 DevOps 2010 Brazil © Carla Souza
Documentation Whenwas itconfigured? Who configured it? What were the configuration's objectives? Beconsistent 12/04/2010 DevOps 2010 Brazil © Carla Souza
After configuration... Is it wellconfigured? 12/04/2010 DevOps 2010 Brazil © Carla Souza
After configuration... Is it wellconfigured? Badconfiguration is worsethan no configuration 12/04/2010 DevOps 2010 Brazil © Carla Souza
After configuration... Is it wellconfigured? Badconfiguration is worsethen no configuration Wemakemistakes! 12/04/2010 DevOps 2010 Brazil © Carla Souza
After configuration... Is it wellconfigured? Badconfiguration is worsethen no configuration Wemakemistakes! WeneedTests! 12/04/2010 DevOps 2010 Brazil © Carla Souza
Tests Is the configuration correct? Is it correctlyconfigured? 12/04/2010 DevOps 2010 Brazil © Carla Souza
After Configuration... How to ensurethat it willstayconfiguredcorrectly over time? 12/04/2010 DevOps 2010 Brazil © Carla Souza
After Configuration... How to ensure that it will stay configured correctly over time? We need Maintenance! 12/04/2010 DevOps 2010 Brazil © Carla Souza
Maintenance Repetitive work Every time yourepeatonejob, youwaste time 12/04/2010 DevOps 2010 Brazil © Carla Souza
Maintenance Repetitive work Every time you repeat onejob, you waste time MONEY 12/04/2010 DevOps 2010 Brazil © Carla Souza
Documentation + Tests + Maintenance 12/04/2010 DevOps 2010 Brazil © Carla Souza
Documentation + Tests + Maintenance = Spend more time then you think 12/04/2010 DevOps 2010 Brazil © Carla Souza
Documentation + Tests + Maintenance = Spend more time then you think = Less time for real important work 12/04/2010 DevOps 2010 Brazil © Carla Souza
The more applications I have 12/04/2010 DevOps 2010 Brazil © Carla Souza
The more applications I have = More Risks 12/04/2010 DevOps 2010 Brazil © Carla Souza
The more applications I have = More Risks + More need for documentation 12/04/2010 DevOps 2010 Brazil © Carla Souza
Cumulative Effect The time left will be only for fire fighting 12/04/2010 DevOps 2010 Brazil © Carla Souza
Cumulative Effect The time left will be only for fire fighting Important  tasks will be left behind 12/04/2010 DevOps 2010 Brazil © Carla Souza
Cumulative Effect The time left will be only for fire fighting Important  tasks will be left behind Backups Documentation update User’s tickets 12/04/2010 DevOps 2010 Brazil © Carla Souza
Automation Good admins write their own tools 12/04/2010 DevOps 2010 Brazil © Carla Souza
Automation Good admins write their own tools Install: Kickstart, jumpstart, imaging Configuration + maintenance: SSH in a for loop Ssh keys distributed over the network = lack of secutiry 12/04/2010 DevOps 2010 Brazil © Carla Souza
Automation tools Great for ad-hoc or one time only tasks Can be pushed out via cron 12/04/2010 DevOps 2010 Brazil © Carla Souza
Automation tools But do you always write scripts that are: 12/04/2010 DevOps 2010 Brazil © Carla Souza
Automation tools But do you always write scripts that are: Concurrent safe? Testable? Reversible? Legible? Full of good logging? Portable? 12/04/2010 DevOps 2010 Brazil © Carla Souza
Wish list Simple solutions 12/04/2010 DevOps 2010 Brazil © Carla Souza
Wish list Simplesolutions ElegantDomainSpecificLanguage (DSL) Manageyourserversbywritingcode, notrunningcommands Platformindependent Centralized Version Controlled 12/04/2010 DevOps 2010 Brazil © Carla Souza
Wish list Simplesolutions Easy to extend Selfdocumenting Commercial support and trainning Open source 12/04/2010 DevOps 2010 Brazil © Carla Souza
Puppet A Puppet Labs product Since 2005 Written in Ruby Extensible by modules Client-server architecture (client pull) 12/04/2010 DevOps 2010 Brazil © Carla Souza
Puppet File server SSL Certificates Very active and helpful community Mailing lists, #puppet @ freenode Open Source hosted on Github (GPL) https://github.com/puppetlabs Book 12/04/2010 DevOps 2010 Brazil © Carla Souza
Puppet 12/04/2010 DevOps 2010 Brazil © Carla Souza
Puppet Installation Updates Fixes Audits Configuration 12/04/2010 DevOps 2010 Brazil © Carla Souza
Components puppetmaster Server daemon Run as ‘puppet’ user 12/04/2010 DevOps 2010 Brazil © Carla Souza
Components puppetmaster Server daemon Run as ‘puppet’ user puppetd Client daemon Run as root Pulling every 30min (default value) 12/04/2010 DevOps 2010 Brazil © Carla Souza
Components puppetca Puppet’s Certificate Authority 12/04/2010 DevOps 2010 Brazil © Carla Souza
Components puppetca Puppet’s Certificate Authority Facter Gathers basic information about node’s hardware and operation system 12/04/2010 DevOps 2010 Brazil © Carla Souza
Elements Types A type is a particular element that Puppet knows how to configure 12/04/2010 DevOps 2010 Brazil © Carla Souza
Elements Types A type is a particular element that Puppet knows how to configure Classes A named collection of type objects 12/04/2010 DevOps 2010 Brazil © Carla Souza
Elements Providers Specific implementation of a given resource type 12/04/2010 DevOps 2010 Brazil © Carla Souza
Elements Providers Specific implementation of a given resource type type: package 12/04/2010 DevOps 2010 Brazil © Carla Souza
Elements Providers Specific implementation of a given resource type type: package providers: yum, dpkg, aptitude, apple, rpm, gem, freebsd 12/04/2010 DevOps 2010 Brazil © Carla Souza
Puppet’s installation yum install puppet-server puppet apt-get install puppetmaster puppet gem install puppet-2.6.4.gem 12/04/2010 DevOps 2010 Brazil © Carla Souza
Sample CodeInstall, Configure and Start Apache 12/04/2010 DevOps 2010 Brazil © Carla Souza package {“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 Types 12/04/2010 DevOps 2010 Brazil © Carla Souza package {“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 Titles 12/04/2010 DevOps 2010 Brazil © Carla Souza package {“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 Parameters 12/04/2010 DevOps 2010 Brazil © Carla Souza package {“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 Parameters 12/04/2010 DevOps 2010 Brazil © Carla Souza package {“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 change 12/04/2010 DevOps 2010 Brazil © Carla Souza file{“/etc/httpd/conf/httpd.conf”: 	. 	. 	notify => Service[“httpd”] } OR service{“httpd”: 	. 	. 	subscribe => File[“/etc/httpd/conf/httpd.conf”] }
Sample CodeResource collections class 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/2010 DevOps 2010 Brazil © Carla Souza
Sample CodeResource collections class 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/2010 DevOps 2010 Brazil © Carla Souza
Sample CodeResource collections class 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/2010 DevOps 2010 Brazil © Carla Souza
Elements Nodes A configuration block matching a client 12/04/2010 DevOps 2010 Brazil © Carla Souza
Sample CodeNodes configuration node “web1.your.com” { include apache } 12/04/2010 DevOps 2010 Brazil © Carla Souza
Elements Templates Apply code and variable substitution Uses ERB 12/04/2010 DevOps 2010 Brazil © Carla Souza
Sample CodeTemplates file{“/etc/httpd/conf.d/servertag.conf”: 	. 	. 	content => template(“apache/servertag.erb”) } servertag.erb: Header set X-httpd<%= hostname %> 12/04/2010 DevOps 2010 Brazil © Carla Souza
Sample CodeFile Source Selection file{“/etc/httpd/conf/httpd.conf”: 	source  =>	[“puppet:///apache/httpd.conf.${fqdn}”, 			 “puppet:///apache/httpd.conf.${domain}”, 			 “puppet:///apache/httpd.conf”] } 12/04/2010 DevOps 2010 Brazil © Carla Souza
Puppet puppetlabs.com github.com/puppetlabs Follow me: github.com/carlasouza carla.asouza@gmail.com 12/04/2010 DevOps 2010 Brazil © Carla Souza
Thank you! 12/04/2010 DevOps 2010 Brazil © Carla Souza

More Related Content

Similar to Puppet - Automagically Manage your Configuration

Sp24s084 bestpractice_on_upgrading_sharepoint
Sp24s084 bestpractice_on_upgrading_sharepointSp24s084 bestpractice_on_upgrading_sharepoint
Sp24s084 bestpractice_on_upgrading_sharepoint
Knut Relbe-Moe [MVP, MCT]
 
Shift Remote: DevOps: DevOps Heroes - Adding Advanced Automation to your Tool...
Shift Remote: DevOps: DevOps Heroes - Adding Advanced Automation to your Tool...Shift Remote: DevOps: DevOps Heroes - Adding Advanced Automation to your Tool...
Shift Remote: DevOps: DevOps Heroes - Adding Advanced Automation to your Tool...
Shift Conference
 
Introducing RaveJS: Spring Boot concepts for JavaScript applications
Introducing RaveJS: Spring Boot concepts for JavaScript applicationsIntroducing RaveJS: Spring Boot concepts for JavaScript applications
Introducing RaveJS: Spring Boot concepts for JavaScript applications
John Hann
 
Drupal Devministration
Drupal DevministrationDrupal Devministration
Drupal Devministration
Darren Mothersele
 
Drools Workshop 2015 - LATAM
Drools Workshop 2015 - LATAMDrools Workshop 2015 - LATAM
Drools Workshop 2015 - LATAM
Mauricio (Salaboy) Salatino
 
Inithub.org presentation
Inithub.org presentationInithub.org presentation
Inithub.org presentation
Aaron Welch
 
SharePoint 2016 Is Coming! Are You Ready?
SharePoint 2016 Is Coming! Are You Ready?SharePoint 2016 Is Coming! Are You Ready?
SharePoint 2016 Is Coming! Are You Ready?
Richard Harbridge
 
Machines Can Learn - a Practical Take on Machine Intelligence Using Spring Cl...
Machines Can Learn - a Practical Take on Machine Intelligence Using Spring Cl...Machines Can Learn - a Practical Take on Machine Intelligence Using Spring Cl...
Machines Can Learn - a Practical Take on Machine Intelligence Using Spring Cl...
Christian Tzolov
 
Frontend Performance: Beginner to Expert to Crazy Person (San Diego Web Perf ...
Frontend Performance: Beginner to Expert to Crazy Person (San Diego Web Perf ...Frontend Performance: Beginner to Expert to Crazy Person (San Diego Web Perf ...
Frontend Performance: Beginner to Expert to Crazy Person (San Diego Web Perf ...
Philip Tellis
 
Writing Prefork Workers / Servers
Writing Prefork Workers / ServersWriting Prefork Workers / Servers
Writing Prefork Workers / ServersKazuho Oku
 
Drupal Continuous Integration (European Drupal Days 2015)
Drupal Continuous Integration (European Drupal Days 2015)Drupal Continuous Integration (European Drupal Days 2015)
Drupal Continuous Integration (European Drupal Days 2015)
Eugenio Minardi
 
Dist::Zilla - A very brief introduction
Dist::Zilla - A very brief introductionDist::Zilla - A very brief introduction
Dist::Zilla - A very brief introduction
Dean Hamstead
 
UMD User's Group: DrupalCon 2011, Chicago
UMD User's Group: DrupalCon 2011, ChicagoUMD User's Group: DrupalCon 2011, Chicago
UMD User's Group: DrupalCon 2011, Chicago
brockfanning
 
Ubuntu And Parental Controls
Ubuntu And Parental ControlsUbuntu And Parental Controls
Ubuntu And Parental Controls
jasonholtzapple
 
Automated Drupal deployment with Git and Capistrano
Automated Drupal deployment with Git and CapistranoAutomated Drupal deployment with Git and Capistrano
Automated Drupal deployment with Git and Capistrano
Savvy - Automated profiles for developers
 
User Group Meeting PaperVision3D
User Group Meeting PaperVision3DUser Group Meeting PaperVision3D
User Group Meeting PaperVision3D
Almog Koren
 
Pinax Long Tutorial Slides
Pinax Long Tutorial SlidesPinax Long Tutorial Slides
Pinax Long Tutorial Slides
Daniel Greenfeld
 
Web Hosting Pilot - NC State University
Web Hosting Pilot - NC State UniversityWeb Hosting Pilot - NC State University
Web Hosting Pilot - NC State University
Jason Austin
 
Ready, Set, Upgrade!
Ready, Set, Upgrade!Ready, Set, Upgrade!
Ready, Set, Upgrade!
Cory Peters
 

Similar to Puppet - Automagically Manage your Configuration (20)

Sp24s084 bestpractice_on_upgrading_sharepoint
Sp24s084 bestpractice_on_upgrading_sharepointSp24s084 bestpractice_on_upgrading_sharepoint
Sp24s084 bestpractice_on_upgrading_sharepoint
 
drupal_training
drupal_trainingdrupal_training
drupal_training
 
Shift Remote: DevOps: DevOps Heroes - Adding Advanced Automation to your Tool...
Shift Remote: DevOps: DevOps Heroes - Adding Advanced Automation to your Tool...Shift Remote: DevOps: DevOps Heroes - Adding Advanced Automation to your Tool...
Shift Remote: DevOps: DevOps Heroes - Adding Advanced Automation to your Tool...
 
Introducing RaveJS: Spring Boot concepts for JavaScript applications
Introducing RaveJS: Spring Boot concepts for JavaScript applicationsIntroducing RaveJS: Spring Boot concepts for JavaScript applications
Introducing RaveJS: Spring Boot concepts for JavaScript applications
 
Drupal Devministration
Drupal DevministrationDrupal Devministration
Drupal Devministration
 
Drools Workshop 2015 - LATAM
Drools Workshop 2015 - LATAMDrools Workshop 2015 - LATAM
Drools Workshop 2015 - LATAM
 
Inithub.org presentation
Inithub.org presentationInithub.org presentation
Inithub.org presentation
 
SharePoint 2016 Is Coming! Are You Ready?
SharePoint 2016 Is Coming! Are You Ready?SharePoint 2016 Is Coming! Are You Ready?
SharePoint 2016 Is Coming! Are You Ready?
 
Machines Can Learn - a Practical Take on Machine Intelligence Using Spring Cl...
Machines Can Learn - a Practical Take on Machine Intelligence Using Spring Cl...Machines Can Learn - a Practical Take on Machine Intelligence Using Spring Cl...
Machines Can Learn - a Practical Take on Machine Intelligence Using Spring Cl...
 
Frontend Performance: Beginner to Expert to Crazy Person (San Diego Web Perf ...
Frontend Performance: Beginner to Expert to Crazy Person (San Diego Web Perf ...Frontend Performance: Beginner to Expert to Crazy Person (San Diego Web Perf ...
Frontend Performance: Beginner to Expert to Crazy Person (San Diego Web Perf ...
 
Writing Prefork Workers / Servers
Writing Prefork Workers / ServersWriting Prefork Workers / Servers
Writing Prefork Workers / Servers
 
Drupal Continuous Integration (European Drupal Days 2015)
Drupal Continuous Integration (European Drupal Days 2015)Drupal Continuous Integration (European Drupal Days 2015)
Drupal Continuous Integration (European Drupal Days 2015)
 
Dist::Zilla - A very brief introduction
Dist::Zilla - A very brief introductionDist::Zilla - A very brief introduction
Dist::Zilla - A very brief introduction
 
UMD User's Group: DrupalCon 2011, Chicago
UMD User's Group: DrupalCon 2011, ChicagoUMD User's Group: DrupalCon 2011, Chicago
UMD User's Group: DrupalCon 2011, Chicago
 
Ubuntu And Parental Controls
Ubuntu And Parental ControlsUbuntu And Parental Controls
Ubuntu And Parental Controls
 
Automated Drupal deployment with Git and Capistrano
Automated Drupal deployment with Git and CapistranoAutomated Drupal deployment with Git and Capistrano
Automated Drupal deployment with Git and Capistrano
 
User Group Meeting PaperVision3D
User Group Meeting PaperVision3DUser Group Meeting PaperVision3D
User Group Meeting PaperVision3D
 
Pinax Long Tutorial Slides
Pinax Long Tutorial SlidesPinax Long Tutorial Slides
Pinax Long Tutorial Slides
 
Web Hosting Pilot - NC State University
Web Hosting Pilot - NC State UniversityWeb Hosting Pilot - NC State University
Web Hosting Pilot - NC State University
 
Ready, Set, Upgrade!
Ready, Set, Upgrade!Ready, Set, Upgrade!
Ready, Set, Upgrade!
 

Recently uploaded

Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualitySoftware Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Inflectra
 
Leading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdfLeading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdf
OnBoard
 
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Thierry Lestable
 
The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
Laura Byrne
 
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMsTo Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
Paul Groth
 
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 previewState of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
Prayukth K V
 
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdfFIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance
 
DevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA ConnectDevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA Connect
Kari Kakkonen
 
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
Product School
 
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Tobias Schneck
 
When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...
Elena Simperl
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
DanBrown980551
 
UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3
DianaGray10
 
Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........
Alison B. Lowndes
 
JMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and GrafanaJMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and Grafana
RTTS
 
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdfFIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance
 
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
Product School
 
PCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase TeamPCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase Team
ControlCase
 
Elevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object CalisthenicsElevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object Calisthenics
Dorra BARTAGUIZ
 
Essentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with ParametersEssentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with Parameters
Safe Software
 

Recently uploaded (20)

Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualitySoftware Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
 
Leading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdfLeading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdf
 
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
 
The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
 
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMsTo Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
 
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 previewState of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
 
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdfFIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
 
DevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA ConnectDevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA Connect
 
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
 
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
 
When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
 
UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3
 
Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........
 
JMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and GrafanaJMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and Grafana
 
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdfFIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
 
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
 
PCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase TeamPCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase Team
 
Elevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object CalisthenicsElevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object Calisthenics
 
Essentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with ParametersEssentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with Parameters
 

Puppet - Automagically Manage your Configuration

  • 1. Puppet AutomagicallyManageYour Configuration 12/04/2010 Carla Souza DevOps 2010 Brazil © Carla Souza
  • 2. 12/04/2010 DevOps 2010 Brazil © Carla Souza
  • 3. 12/04/2010 DevOps 2010 Brazil © Carla Souza
  • 4. 12/04/2010 DevOps 2010 Brazil © Carla Souza
  • 5. Typical Sysadmin Job Repetitive Manual Tedious 12/04/2010 DevOps 2010 Brazil © Carla Souza
  • 6. Typical Sysadmin Job Installation 12/04/2010 DevOps 2010 Brazil © Carla Souza
  • 7. Typical Sysadmin Job Installation Configuration 12/04/2010 DevOps 2010 Brazil © Carla Souza
  • 8. Typical Sysadmin Job Installation Updates Fixes Audits Configuration 12/04/2010 DevOps 2010 Brazil © Carla Souza
  • 9. Typical Sysadmin Job Installation Updates Fixes Audits Configuration 12/04/2010 DevOps 2010 Brazil © Carla Souza
  • 10. After Configuration... Whatwas itconfigured? How? Why? 12/04/2010 DevOps 2010 Brazil © Carla Souza
  • 11. After Configuration... Whatwas itconfigured? How? Why? WeneedDocumentation! 12/04/2010 DevOps 2010 Brazil © Carla Souza
  • 12. Documentation Whenwas it configured? Who configured it? What were the configuration's objectives? 12/04/2010 DevOps 2010 Brazil © Carla Souza
  • 13. Documentation Whenwas itconfigured? Who configured it? What were the configuration's objectives? Beconsistent 12/04/2010 DevOps 2010 Brazil © Carla Souza
  • 14. After configuration... Is it wellconfigured? 12/04/2010 DevOps 2010 Brazil © Carla Souza
  • 15. After configuration... Is it wellconfigured? Badconfiguration is worsethan no configuration 12/04/2010 DevOps 2010 Brazil © Carla Souza
  • 16. After configuration... Is it wellconfigured? Badconfiguration is worsethen no configuration Wemakemistakes! 12/04/2010 DevOps 2010 Brazil © Carla Souza
  • 17. After configuration... Is it wellconfigured? Badconfiguration is worsethen no configuration Wemakemistakes! WeneedTests! 12/04/2010 DevOps 2010 Brazil © Carla Souza
  • 18. Tests Is the configuration correct? Is it correctlyconfigured? 12/04/2010 DevOps 2010 Brazil © Carla Souza
  • 19. After Configuration... How to ensurethat it willstayconfiguredcorrectly over time? 12/04/2010 DevOps 2010 Brazil © Carla Souza
  • 20. After Configuration... How to ensure that it will stay configured correctly over time? We need Maintenance! 12/04/2010 DevOps 2010 Brazil © Carla Souza
  • 21. Maintenance Repetitive work Every time yourepeatonejob, youwaste time 12/04/2010 DevOps 2010 Brazil © Carla Souza
  • 22. Maintenance Repetitive work Every time you repeat onejob, you waste time MONEY 12/04/2010 DevOps 2010 Brazil © Carla Souza
  • 23. Documentation + Tests + Maintenance 12/04/2010 DevOps 2010 Brazil © Carla Souza
  • 24. Documentation + Tests + Maintenance = Spend more time then you think 12/04/2010 DevOps 2010 Brazil © Carla Souza
  • 25. Documentation + Tests + Maintenance = Spend more time then you think = Less time for real important work 12/04/2010 DevOps 2010 Brazil © Carla Souza
  • 26. The more applications I have 12/04/2010 DevOps 2010 Brazil © Carla Souza
  • 27. The more applications I have = More Risks 12/04/2010 DevOps 2010 Brazil © Carla Souza
  • 28. The more applications I have = More Risks + More need for documentation 12/04/2010 DevOps 2010 Brazil © Carla Souza
  • 29. Cumulative Effect The time left will be only for fire fighting 12/04/2010 DevOps 2010 Brazil © Carla Souza
  • 30. Cumulative Effect The time left will be only for fire fighting Important tasks will be left behind 12/04/2010 DevOps 2010 Brazil © Carla Souza
  • 31. Cumulative Effect The time left will be only for fire fighting Important tasks will be left behind Backups Documentation update User’s tickets 12/04/2010 DevOps 2010 Brazil © Carla Souza
  • 32. Automation Good admins write their own tools 12/04/2010 DevOps 2010 Brazil © Carla Souza
  • 33. Automation Good admins write their own tools Install: Kickstart, jumpstart, imaging Configuration + maintenance: SSH in a for loop Ssh keys distributed over the network = lack of secutiry 12/04/2010 DevOps 2010 Brazil © Carla Souza
  • 34. Automation tools Great for ad-hoc or one time only tasks Can be pushed out via cron 12/04/2010 DevOps 2010 Brazil © Carla Souza
  • 35. Automation tools But do you always write scripts that are: 12/04/2010 DevOps 2010 Brazil © Carla Souza
  • 36. Automation tools But do you always write scripts that are: Concurrent safe? Testable? Reversible? Legible? Full of good logging? Portable? 12/04/2010 DevOps 2010 Brazil © Carla Souza
  • 37. Wish list Simple solutions 12/04/2010 DevOps 2010 Brazil © Carla Souza
  • 38. Wish list Simplesolutions ElegantDomainSpecificLanguage (DSL) Manageyourserversbywritingcode, notrunningcommands Platformindependent Centralized Version Controlled 12/04/2010 DevOps 2010 Brazil © Carla Souza
  • 39. Wish list Simplesolutions Easy to extend Selfdocumenting Commercial support and trainning Open source 12/04/2010 DevOps 2010 Brazil © Carla Souza
  • 40. Puppet A Puppet Labs product Since 2005 Written in Ruby Extensible by modules Client-server architecture (client pull) 12/04/2010 DevOps 2010 Brazil © Carla Souza
  • 41. Puppet File server SSL Certificates Very active and helpful community Mailing lists, #puppet @ freenode Open Source hosted on Github (GPL) https://github.com/puppetlabs Book 12/04/2010 DevOps 2010 Brazil © Carla Souza
  • 42. Puppet 12/04/2010 DevOps 2010 Brazil © Carla Souza
  • 43. Puppet Installation Updates Fixes Audits Configuration 12/04/2010 DevOps 2010 Brazil © Carla Souza
  • 44. Components puppetmaster Server daemon Run as ‘puppet’ user 12/04/2010 DevOps 2010 Brazil © Carla Souza
  • 45. Components puppetmaster Server daemon Run as ‘puppet’ user puppetd Client daemon Run as root Pulling every 30min (default value) 12/04/2010 DevOps 2010 Brazil © Carla Souza
  • 46. Components puppetca Puppet’s Certificate Authority 12/04/2010 DevOps 2010 Brazil © Carla Souza
  • 47. Components puppetca Puppet’s Certificate Authority Facter Gathers basic information about node’s hardware and operation system 12/04/2010 DevOps 2010 Brazil © Carla Souza
  • 48. Elements Types A type is a particular element that Puppet knows how to configure 12/04/2010 DevOps 2010 Brazil © Carla Souza
  • 49. Elements Types A type is a particular element that Puppet knows how to configure Classes A named collection of type objects 12/04/2010 DevOps 2010 Brazil © Carla Souza
  • 50. Elements Providers Specific implementation of a given resource type 12/04/2010 DevOps 2010 Brazil © Carla Souza
  • 51. Elements Providers Specific implementation of a given resource type type: package 12/04/2010 DevOps 2010 Brazil © Carla Souza
  • 52. Elements Providers Specific implementation of a given resource type type: package providers: yum, dpkg, aptitude, apple, rpm, gem, freebsd 12/04/2010 DevOps 2010 Brazil © Carla Souza
  • 53. Puppet’s installation yum install puppet-server puppet apt-get install puppetmaster puppet gem install puppet-2.6.4.gem 12/04/2010 DevOps 2010 Brazil © Carla Souza
  • 54. Sample CodeInstall, Configure and Start Apache 12/04/2010 DevOps 2010 Brazil © Carla Souza package {“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, }
  • 55. Sample CodeResource Types 12/04/2010 DevOps 2010 Brazil © Carla Souza package {“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, }
  • 56. Sample CodeResource Titles 12/04/2010 DevOps 2010 Brazil © Carla Souza package {“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, }
  • 57. Sample CodeResources Parameters 12/04/2010 DevOps 2010 Brazil © Carla Souza package {“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, }
  • 58. Sample CodeResources Parameters 12/04/2010 DevOps 2010 Brazil © Carla Souza package {“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”] }
  • 59. Sample CodeResponding to change 12/04/2010 DevOps 2010 Brazil © Carla Souza file{“/etc/httpd/conf/httpd.conf”: . . notify => Service[“httpd”] } OR service{“httpd”: . . subscribe => File[“/etc/httpd/conf/httpd.conf”] }
  • 60. Sample CodeResource collections class 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/2010 DevOps 2010 Brazil © Carla Souza
  • 61. Sample CodeResource collections class 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/2010 DevOps 2010 Brazil © Carla Souza
  • 62. Sample CodeResource collections class 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/2010 DevOps 2010 Brazil © Carla Souza
  • 63. Elements Nodes A configuration block matching a client 12/04/2010 DevOps 2010 Brazil © Carla Souza
  • 64. Sample CodeNodes configuration node “web1.your.com” { include apache } 12/04/2010 DevOps 2010 Brazil © Carla Souza
  • 65. Elements Templates Apply code and variable substitution Uses ERB 12/04/2010 DevOps 2010 Brazil © Carla Souza
  • 66. Sample CodeTemplates file{“/etc/httpd/conf.d/servertag.conf”: . . content => template(“apache/servertag.erb”) } servertag.erb: Header set X-httpd<%= hostname %> 12/04/2010 DevOps 2010 Brazil © Carla Souza
  • 67. Sample CodeFile Source Selection file{“/etc/httpd/conf/httpd.conf”: source => [“puppet:///apache/httpd.conf.${fqdn}”, “puppet:///apache/httpd.conf.${domain}”, “puppet:///apache/httpd.conf”] } 12/04/2010 DevOps 2010 Brazil © Carla Souza
  • 68. Puppet puppetlabs.com github.com/puppetlabs Follow me: github.com/carlasouza carla.asouza@gmail.com 12/04/2010 DevOps 2010 Brazil © Carla Souza
  • 69. Thank you! 12/04/2010 DevOps 2010 Brazil © Carla Souza