SlideShare una empresa de Scribd logo
1 de 51
Descargar para leer sin conexión
Moving from Exec to Types and
Providers
This is not a talk, more a story.
Moving from Exec to Types and providers - Martin Alfke © example42 GmbH 2016
example42 GmbH - Berlin / Germany
Martin Alfke
CEO & Co-Founder
2
The Story begins ...
Part #1 - Puppet Module using Exec CLI
3
Moving from Exec to Types and providers - Martin Alfke © example42 GmbH 2016
Puppet Module for VM management system
4
OpenNebula config concept - Image taken from opennebula.org
Solution 1 - Exec Resource Type
Run the CLI tools
5
Moving from Exec to Types and providers - Martin Alfke © example42 GmbH 2016
Exec Resource Type
6
Moving from Exec to Types and providers - Martin Alfke © example42 GmbH 2016
Exec Resource Type
● one-time commands
● does not deal well with changes
(yes, you can use refreshonly =>
true)
● was only capable of managing
all artefacts of a configuration
7
Moving from Exec to Types and providers - Martin Alfke © example42 GmbH 2016
Exec Resource Type
● root Shell with empty
environment
● “Emergency Exit” (Luke
Kanies - Berlin - Q4/2015)
8
Moving from Exec to Types and providers - Martin Alfke © example42 GmbH 2016
Exec Resource Type
9
The Story continues ...
Part #2 - Puppet Module using Defined Resource Types
10
Solution 2 - Defined Resource Type
File - Service Pattern
11
Moving from Exec to Types and providers - Martin Alfke © example42 GmbH 2016
Defined Resource Type
● (Package) - File - Service
pattern
● self defined resource type as
wrapper
● config artefact per title (data
from hash)
12
Moving from Exec to Types and providers - Martin Alfke © example42 GmbH 2016
Defined Resource Type
13
Moving from Exec to Types and providers - Martin Alfke © example42 GmbH 2016
Defined Resource Type
● Service Resource
● Always check hasrestart, hasstatus options
● Possibility to manage individual config artefacts
● Difficulty when changing parameters of an existing config
artefact -> restart = stop, start
● Wrapper shell script -> Exec replacement
14
The Story continues ...
Part #3 - Puppet Module using Custom Resource Types
15
Solution 3 - Custom Resource Type
Idempotent, non-breaking, prefetch capable configuration
16
Moving from Exec to Types and providers - Martin Alfke © example42 GmbH 2016
Custom Resource Type
17
Moving from Exec to Types and providers - Martin Alfke © example42 GmbH 2016
Custom Resource Type
18
Types and Providers
Basic concept
19
Moving from Exec to Types and providers - Martin Alfke © example42 GmbH 2016
Types and Providers
● Are CLI tools / API’s available
?
● Can output be rendered in
structured data ?
20
Types
Describe Puppet DSL Syntax
21
Moving from Exec to Types and providers - Martin Alfke © example42 GmbH 2016
Type - Beginning
22
<module>/lib/puppet/type/my_file.rb
Moving from Exec to Types and providers - Martin Alfke © example42 GmbH 2016
Type - Properties and Parameters
● Properties
● everything you can set or modify (e.g. UID)
● Parameters
● change the way how the provider works (e.g. managehome)
23
Moving from Exec to Types and providers - Martin Alfke © example42 GmbH 2016
Type - Properties and Parameters
24
Moving from Exec to Types and providers - Martin Alfke © example42 GmbH 2016
Type - DSL
25
Providers
Command Logic
26
Moving from Exec to Types and providers - Martin Alfke © example42 GmbH 2016
Provider - Beginning
27
<module>/lib/puppet/provider/my_file/ruby.rb
Moving from Exec to Types and providers - Martin Alfke © example42 GmbH 2016
Provider - Running commands
28
Moving from Exec to Types and providers - Martin Alfke © example42 GmbH 2016
Provider - Properties and Parameters
● Getter
● read the existing state of an attribute
● Setter
● set the desired state of an attribute
● Idempotency
29
Moving from Exec to Types and providers - Martin Alfke © example42 GmbH 2016
Provider - Getters and Setters
30
Moving from Exec to Types and providers - Martin Alfke © example42 GmbH 2016
Provider - Create and Destroy
31
Types and Providers
Part #4 - Do’s and don’t’s
32
Dont’s
What you don’t want to do - please.
33
Moving from Exec to Types and providers - Martin Alfke © example42 GmbH 2016
Types and Providers
● exec in custom Providers
● running %x(...) or exec(...)
● use of restricted words
34
Do
What you want to do.
35
Moving from Exec to Types and providers - Martin Alfke © example42 GmbH 2016
Types and Providers
● one type
● one or more providers
● What do you want to manage?
● What may be changed ?
● What can be set on creation only ?
36
Moving from Exec to Types and providers - Martin Alfke © example42 GmbH 2016
Types and Providers
● Multiple providers will allow you
to react on
● New SW version with new CLI
format or new commands
● Different SW usage on
different OS
37
Why Types and Providers
Manage an Enterprise Application
38
Moving from Exec to Types and providers - Martin Alfke © example42 GmbH 2016
Types and Providers
● Vendor forbids to edit config
files
● Vendor insists in using CLI tools
● e.g. IBM WebSphere
39
Moving from Exec to Types and providers - Martin Alfke © example42 GmbH 2016
Dear Enterprise Software producers
● give us code for our CfgMgmt
tool
● we want one tool to manage
everything
● we want to still have your
support for your software
40
Types and Providers
Part #5 - How to start
41
Ruby
Version and Tools
42
Moving from Exec to Types and providers - Martin Alfke © example42 GmbH 2016
Ruby - Version and Tools
● Don’t mess your system Ruby
● RVM / rbenv
● Gems
● bundler
● wirble
● pry
43
Moving from Exec to Types and providers - Martin Alfke © example42 GmbH 2016
Ruby - ~/.irbrc
44
Types & Providers
Implementation Examples
45
Moving from Exec to Types and providers - Martin Alfke © example42 GmbH 2016
Types & Providers - Examples
● Books
● https://www.amazon.com/Puppet-Types-Providers-Dan-Bode/
dp/1449339328
● Blogs
● http://garylarizza.com/blog/2013/11/25/fun-with-providers/
● https://www.enterprisemodules.com/blog/2014/01/puppet-
custom-types-the-easy-way/
● http://www.datacentred.co.uk/blog/puppet-custom-types/
46
Moving from Exec to Types and providers - Martin Alfke © example42 GmbH 2016
Types & Providers - Examples
● Docs
● https://docs.puppet.com/guides/custom_types.html
● https://docs.puppet.com/guides/provider_development.html
● https://docs.puppet.com/puppet/latest/reference/
lang_reserved.html
● Talks
● http://www.slideshare.net/TimCinel/writing-custom-puppet-
types-and-providers-to-manage-webbased-applications
47
Types and Providers
Part #6 - Summary
48
Moving from Exec to Types and providers - Martin Alfke © example42 GmbH 2016
Moving from Exec to Types and Providers - Summary
● Exec is for one time commands only -
it is an emergency exit
● Types and Providers are not difficult
● Types have the Puppet DSL syntax,
Providers have Logic and Commands
49
Moving from Exec to Types and providers - Martin Alfke © example42 GmbH 2016
Moving from Exec to Types and Providers - Summary
● Ruby is easy to learn
● Start with IRB + Wirble
● Use Pry Gem for debugging
● Start doing configuration the right way
● Use Puppet’s power for Extensions
50
PuppetConf 2016: Moving from Exec to Types and Providers – Martin Alfke, example42 GmbH

Más contenido relacionado

La actualidad más candente

Angular JS Unit Testing - Overview
Angular JS Unit Testing - OverviewAngular JS Unit Testing - Overview
Angular JS Unit Testing - OverviewThirumal Sakthivel
 
Introduction to Angular 2
Introduction to Angular 2Introduction to Angular 2
Introduction to Angular 2Knoldus Inc.
 
Angular Intermediate
Angular IntermediateAngular Intermediate
Angular IntermediateLinkMe Srl
 
React Native Workshop - React Alicante
React Native Workshop - React AlicanteReact Native Workshop - React Alicante
React Native Workshop - React AlicanteIgnacio Martín
 
Using JHipster for generating Angular/Spring Boot apps
Using JHipster for generating Angular/Spring Boot appsUsing JHipster for generating Angular/Spring Boot apps
Using JHipster for generating Angular/Spring Boot appsYakov Fain
 
Lunch and learn: Cucumber and Capybara
Lunch and learn: Cucumber and CapybaraLunch and learn: Cucumber and Capybara
Lunch and learn: Cucumber and CapybaraMarc Seeger
 
Using JHipster for generating Angular/Spring Boot apps
Using JHipster for generating Angular/Spring Boot appsUsing JHipster for generating Angular/Spring Boot apps
Using JHipster for generating Angular/Spring Boot appsYakov Fain
 
Testing Legacy Rails Apps
Testing Legacy Rails AppsTesting Legacy Rails Apps
Testing Legacy Rails AppsRabble .
 
Puppet Tutorial | Puppet Tutorial For Beginners | Puppet Configuration Manage...
Puppet Tutorial | Puppet Tutorial For Beginners | Puppet Configuration Manage...Puppet Tutorial | Puppet Tutorial For Beginners | Puppet Configuration Manage...
Puppet Tutorial | Puppet Tutorial For Beginners | Puppet Configuration Manage...Simplilearn
 
Ruby onrails cucumber-rspec-capybara
Ruby onrails cucumber-rspec-capybaraRuby onrails cucumber-rspec-capybara
Ruby onrails cucumber-rspec-capybaraBindesh Vijayan
 
Creating a Plug-In Architecture
Creating a Plug-In ArchitectureCreating a Plug-In Architecture
Creating a Plug-In Architectureondrejbalas
 
Angular 2 Essential Training
Angular 2 Essential Training Angular 2 Essential Training
Angular 2 Essential Training Patrick Schroeder
 
vJUG - The JavaFX Ecosystem
vJUG - The JavaFX EcosystemvJUG - The JavaFX Ecosystem
vJUG - The JavaFX EcosystemAndres Almiray
 
Angular 2 overview in 60 minutes
Angular 2 overview in 60 minutesAngular 2 overview in 60 minutes
Angular 2 overview in 60 minutesLoiane Groner
 
The Many Ways to Test Your React App
The Many Ways to Test Your React AppThe Many Ways to Test Your React App
The Many Ways to Test Your React AppAll Things Open
 
Type script for_java_dev_jul_2020
Type script for_java_dev_jul_2020Type script for_java_dev_jul_2020
Type script for_java_dev_jul_2020Yakov Fain
 
Go swagger tutorial how to create golang api documentation using go swagger (1)
Go swagger tutorial how to create golang api documentation using go swagger (1)Go swagger tutorial how to create golang api documentation using go swagger (1)
Go swagger tutorial how to create golang api documentation using go swagger (1)Katy Slemon
 
What's New In Laravel 5
What's New In Laravel 5What's New In Laravel 5
What's New In Laravel 5Darren Craig
 
Puppet Systems Infrastructure Construction Kit
Puppet Systems Infrastructure Construction KitPuppet Systems Infrastructure Construction Kit
Puppet Systems Infrastructure Construction KitAlessandro Franceschi
 

La actualidad más candente (20)

Angular JS Unit Testing - Overview
Angular JS Unit Testing - OverviewAngular JS Unit Testing - Overview
Angular JS Unit Testing - Overview
 
Introduction to Angular 2
Introduction to Angular 2Introduction to Angular 2
Introduction to Angular 2
 
Angular Intermediate
Angular IntermediateAngular Intermediate
Angular Intermediate
 
React Native Workshop - React Alicante
React Native Workshop - React AlicanteReact Native Workshop - React Alicante
React Native Workshop - React Alicante
 
Using JHipster for generating Angular/Spring Boot apps
Using JHipster for generating Angular/Spring Boot appsUsing JHipster for generating Angular/Spring Boot apps
Using JHipster for generating Angular/Spring Boot apps
 
Lunch and learn: Cucumber and Capybara
Lunch and learn: Cucumber and CapybaraLunch and learn: Cucumber and Capybara
Lunch and learn: Cucumber and Capybara
 
Using JHipster for generating Angular/Spring Boot apps
Using JHipster for generating Angular/Spring Boot appsUsing JHipster for generating Angular/Spring Boot apps
Using JHipster for generating Angular/Spring Boot apps
 
Testing Legacy Rails Apps
Testing Legacy Rails AppsTesting Legacy Rails Apps
Testing Legacy Rails Apps
 
Puppet Tutorial | Puppet Tutorial For Beginners | Puppet Configuration Manage...
Puppet Tutorial | Puppet Tutorial For Beginners | Puppet Configuration Manage...Puppet Tutorial | Puppet Tutorial For Beginners | Puppet Configuration Manage...
Puppet Tutorial | Puppet Tutorial For Beginners | Puppet Configuration Manage...
 
Ruby onrails cucumber-rspec-capybara
Ruby onrails cucumber-rspec-capybaraRuby onrails cucumber-rspec-capybara
Ruby onrails cucumber-rspec-capybara
 
Creating a Plug-In Architecture
Creating a Plug-In ArchitectureCreating a Plug-In Architecture
Creating a Plug-In Architecture
 
Angular 2 Essential Training
Angular 2 Essential Training Angular 2 Essential Training
Angular 2 Essential Training
 
vJUG - The JavaFX Ecosystem
vJUG - The JavaFX EcosystemvJUG - The JavaFX Ecosystem
vJUG - The JavaFX Ecosystem
 
Angular 2 overview in 60 minutes
Angular 2 overview in 60 minutesAngular 2 overview in 60 minutes
Angular 2 overview in 60 minutes
 
The Many Ways to Test Your React App
The Many Ways to Test Your React AppThe Many Ways to Test Your React App
The Many Ways to Test Your React App
 
Type script for_java_dev_jul_2020
Type script for_java_dev_jul_2020Type script for_java_dev_jul_2020
Type script for_java_dev_jul_2020
 
Go swagger tutorial how to create golang api documentation using go swagger (1)
Go swagger tutorial how to create golang api documentation using go swagger (1)Go swagger tutorial how to create golang api documentation using go swagger (1)
Go swagger tutorial how to create golang api documentation using go swagger (1)
 
What's New In Laravel 5
What's New In Laravel 5What's New In Laravel 5
What's New In Laravel 5
 
Puppet Systems Infrastructure Construction Kit
Puppet Systems Infrastructure Construction KitPuppet Systems Infrastructure Construction Kit
Puppet Systems Infrastructure Construction Kit
 
Cucumber, Cuke4Duke, and Groovy
Cucumber, Cuke4Duke, and GroovyCucumber, Cuke4Duke, and Groovy
Cucumber, Cuke4Duke, and Groovy
 

Similar a PuppetConf 2016: Moving from Exec to Types and Providers – Martin Alfke, example42 GmbH

Trunk based development
Trunk based developmentTrunk based development
Trunk based developmentgo_oh
 
Angular TS(typescript)
Angular TS(typescript)Angular TS(typescript)
Angular TS(typescript)Ivan Stepić
 
Continuous Deployment To The Cloud
Continuous Deployment To The CloudContinuous Deployment To The Cloud
Continuous Deployment To The CloudMarcin Grzejszczak
 
An introduction to Emulsify
An introduction to EmulsifyAn introduction to Emulsify
An introduction to Emulsifyvaluebound
 
Continuous Integration Testing Techniques to Improve Chef Cookbook Quality
Continuous Integration Testing Techniques to Improve Chef Cookbook QualityContinuous Integration Testing Techniques to Improve Chef Cookbook Quality
Continuous Integration Testing Techniques to Improve Chef Cookbook QualityJosiah Renaudin
 
Keeping code clean
Keeping code cleanKeeping code clean
Keeping code cleanBrett Child
 
The Top 5 Practices of a Highly Successful ChangeMan ZMF Administrator
The Top 5 Practices of a Highly Successful ChangeMan ZMF AdministratorThe Top 5 Practices of a Highly Successful ChangeMan ZMF Administrator
The Top 5 Practices of a Highly Successful ChangeMan ZMF AdministratorSerena Software
 
Continuous Deployment To The Cloud @DevoxxPL 2017
Continuous Deployment To The Cloud @DevoxxPL 2017 Continuous Deployment To The Cloud @DevoxxPL 2017
Continuous Deployment To The Cloud @DevoxxPL 2017 Marcin Grzejszczak
 
Continuous Deployment To The Cloud With Spring Cloud Pipelines @WarsawCloudNa...
Continuous Deployment To The Cloud With Spring Cloud Pipelines @WarsawCloudNa...Continuous Deployment To The Cloud With Spring Cloud Pipelines @WarsawCloudNa...
Continuous Deployment To The Cloud With Spring Cloud Pipelines @WarsawCloudNa...Marcin Grzejszczak
 
Ff for product success
Ff for product successFf for product success
Ff for product successVWO
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 
Cloud Native CI/CD with Spring Cloud Pipelines
Cloud Native CI/CD with Spring Cloud PipelinesCloud Native CI/CD with Spring Cloud Pipelines
Cloud Native CI/CD with Spring Cloud PipelinesLars Rosenquist
 
Cloud Native CI/CD with Spring Cloud Pipelines
Cloud Native CI/CD with Spring Cloud PipelinesCloud Native CI/CD with Spring Cloud Pipelines
Cloud Native CI/CD with Spring Cloud PipelinesLars Rosenquist
 
Scaling machinelearning as a service at uber li Erran li - 2016
Scaling machinelearning as a service at uber li Erran li - 2016Scaling machinelearning as a service at uber li Erran li - 2016
Scaling machinelearning as a service at uber li Erran li - 2016Karthik Murugesan
 
Scaling machine learning as a service at Uber — Li Erran Li at #papis2016
Scaling machine learning as a service at Uber — Li Erran Li at #papis2016Scaling machine learning as a service at Uber — Li Erran Li at #papis2016
Scaling machine learning as a service at Uber — Li Erran Li at #papis2016PAPIs.io
 
Jenkinsconf Presentation - Advance jenkins management with multiple projects.
Jenkinsconf Presentation - Advance jenkins management with multiple projects.Jenkinsconf Presentation - Advance jenkins management with multiple projects.
Jenkinsconf Presentation - Advance jenkins management with multiple projects.Ohad Basan
 
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 scalingStanislav Osipov
 
Continuous Deployment of your Application @JUGtoberfest
Continuous Deployment of your Application @JUGtoberfestContinuous Deployment of your Application @JUGtoberfest
Continuous Deployment of your Application @JUGtoberfestMarcin Grzejszczak
 
Flink Forward San Francisco 2018: Andrew Gao & Jeff Sharpe - "Finding Bad Ac...
Flink Forward San Francisco 2018: Andrew Gao &  Jeff Sharpe - "Finding Bad Ac...Flink Forward San Francisco 2018: Andrew Gao &  Jeff Sharpe - "Finding Bad Ac...
Flink Forward San Francisco 2018: Andrew Gao & Jeff Sharpe - "Finding Bad Ac...Flink Forward
 
Dev ops presentation
Dev ops presentationDev ops presentation
Dev ops presentationAhmed Kamel
 

Similar a PuppetConf 2016: Moving from Exec to Types and Providers – Martin Alfke, example42 GmbH (20)

Trunk based development
Trunk based developmentTrunk based development
Trunk based development
 
Angular TS(typescript)
Angular TS(typescript)Angular TS(typescript)
Angular TS(typescript)
 
Continuous Deployment To The Cloud
Continuous Deployment To The CloudContinuous Deployment To The Cloud
Continuous Deployment To The Cloud
 
An introduction to Emulsify
An introduction to EmulsifyAn introduction to Emulsify
An introduction to Emulsify
 
Continuous Integration Testing Techniques to Improve Chef Cookbook Quality
Continuous Integration Testing Techniques to Improve Chef Cookbook QualityContinuous Integration Testing Techniques to Improve Chef Cookbook Quality
Continuous Integration Testing Techniques to Improve Chef Cookbook Quality
 
Keeping code clean
Keeping code cleanKeeping code clean
Keeping code clean
 
The Top 5 Practices of a Highly Successful ChangeMan ZMF Administrator
The Top 5 Practices of a Highly Successful ChangeMan ZMF AdministratorThe Top 5 Practices of a Highly Successful ChangeMan ZMF Administrator
The Top 5 Practices of a Highly Successful ChangeMan ZMF Administrator
 
Continuous Deployment To The Cloud @DevoxxPL 2017
Continuous Deployment To The Cloud @DevoxxPL 2017 Continuous Deployment To The Cloud @DevoxxPL 2017
Continuous Deployment To The Cloud @DevoxxPL 2017
 
Continuous Deployment To The Cloud With Spring Cloud Pipelines @WarsawCloudNa...
Continuous Deployment To The Cloud With Spring Cloud Pipelines @WarsawCloudNa...Continuous Deployment To The Cloud With Spring Cloud Pipelines @WarsawCloudNa...
Continuous Deployment To The Cloud With Spring Cloud Pipelines @WarsawCloudNa...
 
Ff for product success
Ff for product successFf for product success
Ff for product success
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 
Cloud Native CI/CD with Spring Cloud Pipelines
Cloud Native CI/CD with Spring Cloud PipelinesCloud Native CI/CD with Spring Cloud Pipelines
Cloud Native CI/CD with Spring Cloud Pipelines
 
Cloud Native CI/CD with Spring Cloud Pipelines
Cloud Native CI/CD with Spring Cloud PipelinesCloud Native CI/CD with Spring Cloud Pipelines
Cloud Native CI/CD with Spring Cloud Pipelines
 
Scaling machinelearning as a service at uber li Erran li - 2016
Scaling machinelearning as a service at uber li Erran li - 2016Scaling machinelearning as a service at uber li Erran li - 2016
Scaling machinelearning as a service at uber li Erran li - 2016
 
Scaling machine learning as a service at Uber — Li Erran Li at #papis2016
Scaling machine learning as a service at Uber — Li Erran Li at #papis2016Scaling machine learning as a service at Uber — Li Erran Li at #papis2016
Scaling machine learning as a service at Uber — Li Erran Li at #papis2016
 
Jenkinsconf Presentation - Advance jenkins management with multiple projects.
Jenkinsconf Presentation - Advance jenkins management with multiple projects.Jenkinsconf Presentation - Advance jenkins management with multiple projects.
Jenkinsconf Presentation - Advance jenkins management with multiple projects.
 
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
 
Continuous Deployment of your Application @JUGtoberfest
Continuous Deployment of your Application @JUGtoberfestContinuous Deployment of your Application @JUGtoberfest
Continuous Deployment of your Application @JUGtoberfest
 
Flink Forward San Francisco 2018: Andrew Gao & Jeff Sharpe - "Finding Bad Ac...
Flink Forward San Francisco 2018: Andrew Gao &  Jeff Sharpe - "Finding Bad Ac...Flink Forward San Francisco 2018: Andrew Gao &  Jeff Sharpe - "Finding Bad Ac...
Flink Forward San Francisco 2018: Andrew Gao & Jeff Sharpe - "Finding Bad Ac...
 
Dev ops presentation
Dev ops presentationDev ops presentation
Dev ops presentation
 

Más de Puppet

Puppet camp2021 testing modules and controlrepo
Puppet camp2021 testing modules and controlrepoPuppet camp2021 testing modules and controlrepo
Puppet camp2021 testing modules and controlrepoPuppet
 
Puppetcamp r10kyaml
Puppetcamp r10kyamlPuppetcamp r10kyaml
Puppetcamp r10kyamlPuppet
 
2021 04-15 operational verification (with notes)
2021 04-15 operational verification (with notes)2021 04-15 operational verification (with notes)
2021 04-15 operational verification (with notes)Puppet
 
Puppet camp vscode
Puppet camp vscodePuppet camp vscode
Puppet camp vscodePuppet
 
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
 

Más de Puppet (20)

Puppet camp2021 testing modules and controlrepo
Puppet camp2021 testing modules and controlrepoPuppet camp2021 testing modules and controlrepo
Puppet camp2021 testing modules and controlrepo
 
Puppetcamp r10kyaml
Puppetcamp r10kyamlPuppetcamp r10kyaml
Puppetcamp r10kyaml
 
2021 04-15 operational verification (with notes)
2021 04-15 operational verification (with notes)2021 04-15 operational verification (with notes)
2021 04-15 operational verification (with notes)
 
Puppet camp vscode
Puppet camp vscodePuppet camp vscode
Puppet camp vscode
 
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
 

Último

Microsoft CSP Briefing Pre-Engagement - Questionnaire
Microsoft CSP Briefing Pre-Engagement - QuestionnaireMicrosoft CSP Briefing Pre-Engagement - Questionnaire
Microsoft CSP Briefing Pre-Engagement - QuestionnaireExakis Nelite
 
Harnessing Passkeys in the Battle Against AI-Powered Cyber Threats.pptx
Harnessing Passkeys in the Battle Against AI-Powered Cyber Threats.pptxHarnessing Passkeys in the Battle Against AI-Powered Cyber Threats.pptx
Harnessing Passkeys in the Battle Against AI-Powered Cyber Threats.pptxFIDO Alliance
 
Linux Foundation Edge _ Overview of FDO Software Components _ Randy at Intel.pdf
Linux Foundation Edge _ Overview of FDO Software Components _ Randy at Intel.pdfLinux Foundation Edge _ Overview of FDO Software Components _ Randy at Intel.pdf
Linux Foundation Edge _ Overview of FDO Software Components _ Randy at Intel.pdfFIDO Alliance
 
Easier, Faster, and More Powerful – Notes Document Properties Reimagined
Easier, Faster, and More Powerful – Notes Document Properties ReimaginedEasier, Faster, and More Powerful – Notes Document Properties Reimagined
Easier, Faster, and More Powerful – Notes Document Properties Reimaginedpanagenda
 
(Explainable) Data-Centric AI: what are you explaininhg, and to whom?
(Explainable) Data-Centric AI: what are you explaininhg, and to whom?(Explainable) Data-Centric AI: what are you explaininhg, and to whom?
(Explainable) Data-Centric AI: what are you explaininhg, and to whom?Paolo Missier
 
The Value of Certifying Products for FDO _ Paul at FIDO Alliance.pdf
The Value of Certifying Products for FDO _ Paul at FIDO Alliance.pdfThe Value of Certifying Products for FDO _ Paul at FIDO Alliance.pdf
The Value of Certifying Products for FDO _ Paul at FIDO Alliance.pdfFIDO Alliance
 
Intro in Product Management - Коротко про професію продакт менеджера
Intro in Product Management - Коротко про професію продакт менеджераIntro in Product Management - Коротко про професію продакт менеджера
Intro in Product Management - Коротко про професію продакт менеджераMark Opanasiuk
 
ASRock Industrial FDO Solutions in Action for Industrial Edge AI _ Kenny at A...
ASRock Industrial FDO Solutions in Action for Industrial Edge AI _ Kenny at A...ASRock Industrial FDO Solutions in Action for Industrial Edge AI _ Kenny at A...
ASRock Industrial FDO Solutions in Action for Industrial Edge AI _ Kenny at A...FIDO Alliance
 
Event-Driven Architecture Masterclass: Integrating Distributed Data Stores Ac...
Event-Driven Architecture Masterclass: Integrating Distributed Data Stores Ac...Event-Driven Architecture Masterclass: Integrating Distributed Data Stores Ac...
Event-Driven Architecture Masterclass: Integrating Distributed Data Stores Ac...ScyllaDB
 
Portal Kombat : extension du réseau de propagande russe
Portal Kombat : extension du réseau de propagande russePortal Kombat : extension du réseau de propagande russe
Portal Kombat : extension du réseau de propagande russe中 央社
 
Choosing the Right FDO Deployment Model for Your Application _ Geoffrey at In...
Choosing the Right FDO Deployment Model for Your Application _ Geoffrey at In...Choosing the Right FDO Deployment Model for Your Application _ Geoffrey at In...
Choosing the Right FDO Deployment Model for Your Application _ Geoffrey at In...FIDO Alliance
 
Working together SRE & Platform Engineering
Working together SRE & Platform EngineeringWorking together SRE & Platform Engineering
Working together SRE & Platform EngineeringMarcus Vechiato
 
State of the Smart Building Startup Landscape 2024!
State of the Smart Building Startup Landscape 2024!State of the Smart Building Startup Landscape 2024!
State of the Smart Building Startup Landscape 2024!Memoori
 
AI mind or machine power point presentation
AI mind or machine power point presentationAI mind or machine power point presentation
AI mind or machine power point presentationyogeshlabana357357
 
WebRTC and SIP not just audio and video @ OpenSIPS 2024
WebRTC and SIP not just audio and video @ OpenSIPS 2024WebRTC and SIP not just audio and video @ OpenSIPS 2024
WebRTC and SIP not just audio and video @ OpenSIPS 2024Lorenzo Miniero
 
Event-Driven Architecture Masterclass: Challenges in Stream Processing
Event-Driven Architecture Masterclass: Challenges in Stream ProcessingEvent-Driven Architecture Masterclass: Challenges in Stream Processing
Event-Driven Architecture Masterclass: Challenges in Stream ProcessingScyllaDB
 
Where to Learn More About FDO _ Richard at FIDO Alliance.pdf
Where to Learn More About FDO _ Richard at FIDO Alliance.pdfWhere to Learn More About FDO _ Richard at FIDO Alliance.pdf
Where to Learn More About FDO _ Richard at FIDO Alliance.pdfFIDO Alliance
 
Tales from a Passkey Provider Progress from Awareness to Implementation.pptx
Tales from a Passkey Provider  Progress from Awareness to Implementation.pptxTales from a Passkey Provider  Progress from Awareness to Implementation.pptx
Tales from a Passkey Provider Progress from Awareness to Implementation.pptxFIDO Alliance
 
Introduction to FDO and How It works Applications _ Richard at FIDO Alliance.pdf
Introduction to FDO and How It works Applications _ Richard at FIDO Alliance.pdfIntroduction to FDO and How It works Applications _ Richard at FIDO Alliance.pdf
Introduction to FDO and How It works Applications _ Richard at FIDO Alliance.pdfFIDO Alliance
 
1111 ChatGPT Prompts PDF Free Download - Prompts for ChatGPT
1111 ChatGPT Prompts PDF Free Download - Prompts for ChatGPT1111 ChatGPT Prompts PDF Free Download - Prompts for ChatGPT
1111 ChatGPT Prompts PDF Free Download - Prompts for ChatGPTiSEO AI
 

Último (20)

Microsoft CSP Briefing Pre-Engagement - Questionnaire
Microsoft CSP Briefing Pre-Engagement - QuestionnaireMicrosoft CSP Briefing Pre-Engagement - Questionnaire
Microsoft CSP Briefing Pre-Engagement - Questionnaire
 
Harnessing Passkeys in the Battle Against AI-Powered Cyber Threats.pptx
Harnessing Passkeys in the Battle Against AI-Powered Cyber Threats.pptxHarnessing Passkeys in the Battle Against AI-Powered Cyber Threats.pptx
Harnessing Passkeys in the Battle Against AI-Powered Cyber Threats.pptx
 
Linux Foundation Edge _ Overview of FDO Software Components _ Randy at Intel.pdf
Linux Foundation Edge _ Overview of FDO Software Components _ Randy at Intel.pdfLinux Foundation Edge _ Overview of FDO Software Components _ Randy at Intel.pdf
Linux Foundation Edge _ Overview of FDO Software Components _ Randy at Intel.pdf
 
Easier, Faster, and More Powerful – Notes Document Properties Reimagined
Easier, Faster, and More Powerful – Notes Document Properties ReimaginedEasier, Faster, and More Powerful – Notes Document Properties Reimagined
Easier, Faster, and More Powerful – Notes Document Properties Reimagined
 
(Explainable) Data-Centric AI: what are you explaininhg, and to whom?
(Explainable) Data-Centric AI: what are you explaininhg, and to whom?(Explainable) Data-Centric AI: what are you explaininhg, and to whom?
(Explainable) Data-Centric AI: what are you explaininhg, and to whom?
 
The Value of Certifying Products for FDO _ Paul at FIDO Alliance.pdf
The Value of Certifying Products for FDO _ Paul at FIDO Alliance.pdfThe Value of Certifying Products for FDO _ Paul at FIDO Alliance.pdf
The Value of Certifying Products for FDO _ Paul at FIDO Alliance.pdf
 
Intro in Product Management - Коротко про професію продакт менеджера
Intro in Product Management - Коротко про професію продакт менеджераIntro in Product Management - Коротко про професію продакт менеджера
Intro in Product Management - Коротко про професію продакт менеджера
 
ASRock Industrial FDO Solutions in Action for Industrial Edge AI _ Kenny at A...
ASRock Industrial FDO Solutions in Action for Industrial Edge AI _ Kenny at A...ASRock Industrial FDO Solutions in Action for Industrial Edge AI _ Kenny at A...
ASRock Industrial FDO Solutions in Action for Industrial Edge AI _ Kenny at A...
 
Event-Driven Architecture Masterclass: Integrating Distributed Data Stores Ac...
Event-Driven Architecture Masterclass: Integrating Distributed Data Stores Ac...Event-Driven Architecture Masterclass: Integrating Distributed Data Stores Ac...
Event-Driven Architecture Masterclass: Integrating Distributed Data Stores Ac...
 
Portal Kombat : extension du réseau de propagande russe
Portal Kombat : extension du réseau de propagande russePortal Kombat : extension du réseau de propagande russe
Portal Kombat : extension du réseau de propagande russe
 
Choosing the Right FDO Deployment Model for Your Application _ Geoffrey at In...
Choosing the Right FDO Deployment Model for Your Application _ Geoffrey at In...Choosing the Right FDO Deployment Model for Your Application _ Geoffrey at In...
Choosing the Right FDO Deployment Model for Your Application _ Geoffrey at In...
 
Working together SRE & Platform Engineering
Working together SRE & Platform EngineeringWorking together SRE & Platform Engineering
Working together SRE & Platform Engineering
 
State of the Smart Building Startup Landscape 2024!
State of the Smart Building Startup Landscape 2024!State of the Smart Building Startup Landscape 2024!
State of the Smart Building Startup Landscape 2024!
 
AI mind or machine power point presentation
AI mind or machine power point presentationAI mind or machine power point presentation
AI mind or machine power point presentation
 
WebRTC and SIP not just audio and video @ OpenSIPS 2024
WebRTC and SIP not just audio and video @ OpenSIPS 2024WebRTC and SIP not just audio and video @ OpenSIPS 2024
WebRTC and SIP not just audio and video @ OpenSIPS 2024
 
Event-Driven Architecture Masterclass: Challenges in Stream Processing
Event-Driven Architecture Masterclass: Challenges in Stream ProcessingEvent-Driven Architecture Masterclass: Challenges in Stream Processing
Event-Driven Architecture Masterclass: Challenges in Stream Processing
 
Where to Learn More About FDO _ Richard at FIDO Alliance.pdf
Where to Learn More About FDO _ Richard at FIDO Alliance.pdfWhere to Learn More About FDO _ Richard at FIDO Alliance.pdf
Where to Learn More About FDO _ Richard at FIDO Alliance.pdf
 
Tales from a Passkey Provider Progress from Awareness to Implementation.pptx
Tales from a Passkey Provider  Progress from Awareness to Implementation.pptxTales from a Passkey Provider  Progress from Awareness to Implementation.pptx
Tales from a Passkey Provider Progress from Awareness to Implementation.pptx
 
Introduction to FDO and How It works Applications _ Richard at FIDO Alliance.pdf
Introduction to FDO and How It works Applications _ Richard at FIDO Alliance.pdfIntroduction to FDO and How It works Applications _ Richard at FIDO Alliance.pdf
Introduction to FDO and How It works Applications _ Richard at FIDO Alliance.pdf
 
1111 ChatGPT Prompts PDF Free Download - Prompts for ChatGPT
1111 ChatGPT Prompts PDF Free Download - Prompts for ChatGPT1111 ChatGPT Prompts PDF Free Download - Prompts for ChatGPT
1111 ChatGPT Prompts PDF Free Download - Prompts for ChatGPT
 

PuppetConf 2016: Moving from Exec to Types and Providers – Martin Alfke, example42 GmbH

  • 1. Moving from Exec to Types and Providers This is not a talk, more a story.
  • 2. Moving from Exec to Types and providers - Martin Alfke © example42 GmbH 2016 example42 GmbH - Berlin / Germany Martin Alfke CEO & Co-Founder 2
  • 3. The Story begins ... Part #1 - Puppet Module using Exec CLI 3
  • 4. Moving from Exec to Types and providers - Martin Alfke © example42 GmbH 2016 Puppet Module for VM management system 4 OpenNebula config concept - Image taken from opennebula.org
  • 5. Solution 1 - Exec Resource Type Run the CLI tools 5
  • 6. Moving from Exec to Types and providers - Martin Alfke © example42 GmbH 2016 Exec Resource Type 6
  • 7. Moving from Exec to Types and providers - Martin Alfke © example42 GmbH 2016 Exec Resource Type ● one-time commands ● does not deal well with changes (yes, you can use refreshonly => true) ● was only capable of managing all artefacts of a configuration 7
  • 8. Moving from Exec to Types and providers - Martin Alfke © example42 GmbH 2016 Exec Resource Type ● root Shell with empty environment ● “Emergency Exit” (Luke Kanies - Berlin - Q4/2015) 8
  • 9. Moving from Exec to Types and providers - Martin Alfke © example42 GmbH 2016 Exec Resource Type 9
  • 10. The Story continues ... Part #2 - Puppet Module using Defined Resource Types 10
  • 11. Solution 2 - Defined Resource Type File - Service Pattern 11
  • 12. Moving from Exec to Types and providers - Martin Alfke © example42 GmbH 2016 Defined Resource Type ● (Package) - File - Service pattern ● self defined resource type as wrapper ● config artefact per title (data from hash) 12
  • 13. Moving from Exec to Types and providers - Martin Alfke © example42 GmbH 2016 Defined Resource Type 13
  • 14. Moving from Exec to Types and providers - Martin Alfke © example42 GmbH 2016 Defined Resource Type ● Service Resource ● Always check hasrestart, hasstatus options ● Possibility to manage individual config artefacts ● Difficulty when changing parameters of an existing config artefact -> restart = stop, start ● Wrapper shell script -> Exec replacement 14
  • 15. The Story continues ... Part #3 - Puppet Module using Custom Resource Types 15
  • 16. Solution 3 - Custom Resource Type Idempotent, non-breaking, prefetch capable configuration 16
  • 17. Moving from Exec to Types and providers - Martin Alfke © example42 GmbH 2016 Custom Resource Type 17
  • 18. Moving from Exec to Types and providers - Martin Alfke © example42 GmbH 2016 Custom Resource Type 18
  • 20. Moving from Exec to Types and providers - Martin Alfke © example42 GmbH 2016 Types and Providers ● Are CLI tools / API’s available ? ● Can output be rendered in structured data ? 20
  • 22. Moving from Exec to Types and providers - Martin Alfke © example42 GmbH 2016 Type - Beginning 22 <module>/lib/puppet/type/my_file.rb
  • 23. Moving from Exec to Types and providers - Martin Alfke © example42 GmbH 2016 Type - Properties and Parameters ● Properties ● everything you can set or modify (e.g. UID) ● Parameters ● change the way how the provider works (e.g. managehome) 23
  • 24. Moving from Exec to Types and providers - Martin Alfke © example42 GmbH 2016 Type - Properties and Parameters 24
  • 25. Moving from Exec to Types and providers - Martin Alfke © example42 GmbH 2016 Type - DSL 25
  • 27. Moving from Exec to Types and providers - Martin Alfke © example42 GmbH 2016 Provider - Beginning 27 <module>/lib/puppet/provider/my_file/ruby.rb
  • 28. Moving from Exec to Types and providers - Martin Alfke © example42 GmbH 2016 Provider - Running commands 28
  • 29. Moving from Exec to Types and providers - Martin Alfke © example42 GmbH 2016 Provider - Properties and Parameters ● Getter ● read the existing state of an attribute ● Setter ● set the desired state of an attribute ● Idempotency 29
  • 30. Moving from Exec to Types and providers - Martin Alfke © example42 GmbH 2016 Provider - Getters and Setters 30
  • 31. Moving from Exec to Types and providers - Martin Alfke © example42 GmbH 2016 Provider - Create and Destroy 31
  • 32. Types and Providers Part #4 - Do’s and don’t’s 32
  • 33. Dont’s What you don’t want to do - please. 33
  • 34. Moving from Exec to Types and providers - Martin Alfke © example42 GmbH 2016 Types and Providers ● exec in custom Providers ● running %x(...) or exec(...) ● use of restricted words 34
  • 35. Do What you want to do. 35
  • 36. Moving from Exec to Types and providers - Martin Alfke © example42 GmbH 2016 Types and Providers ● one type ● one or more providers ● What do you want to manage? ● What may be changed ? ● What can be set on creation only ? 36
  • 37. Moving from Exec to Types and providers - Martin Alfke © example42 GmbH 2016 Types and Providers ● Multiple providers will allow you to react on ● New SW version with new CLI format or new commands ● Different SW usage on different OS 37
  • 38. Why Types and Providers Manage an Enterprise Application 38
  • 39. Moving from Exec to Types and providers - Martin Alfke © example42 GmbH 2016 Types and Providers ● Vendor forbids to edit config files ● Vendor insists in using CLI tools ● e.g. IBM WebSphere 39
  • 40. Moving from Exec to Types and providers - Martin Alfke © example42 GmbH 2016 Dear Enterprise Software producers ● give us code for our CfgMgmt tool ● we want one tool to manage everything ● we want to still have your support for your software 40
  • 41. Types and Providers Part #5 - How to start 41
  • 43. Moving from Exec to Types and providers - Martin Alfke © example42 GmbH 2016 Ruby - Version and Tools ● Don’t mess your system Ruby ● RVM / rbenv ● Gems ● bundler ● wirble ● pry 43
  • 44. Moving from Exec to Types and providers - Martin Alfke © example42 GmbH 2016 Ruby - ~/.irbrc 44
  • 46. Moving from Exec to Types and providers - Martin Alfke © example42 GmbH 2016 Types & Providers - Examples ● Books ● https://www.amazon.com/Puppet-Types-Providers-Dan-Bode/ dp/1449339328 ● Blogs ● http://garylarizza.com/blog/2013/11/25/fun-with-providers/ ● https://www.enterprisemodules.com/blog/2014/01/puppet- custom-types-the-easy-way/ ● http://www.datacentred.co.uk/blog/puppet-custom-types/ 46
  • 47. Moving from Exec to Types and providers - Martin Alfke © example42 GmbH 2016 Types & Providers - Examples ● Docs ● https://docs.puppet.com/guides/custom_types.html ● https://docs.puppet.com/guides/provider_development.html ● https://docs.puppet.com/puppet/latest/reference/ lang_reserved.html ● Talks ● http://www.slideshare.net/TimCinel/writing-custom-puppet- types-and-providers-to-manage-webbased-applications 47
  • 48. Types and Providers Part #6 - Summary 48
  • 49. Moving from Exec to Types and providers - Martin Alfke © example42 GmbH 2016 Moving from Exec to Types and Providers - Summary ● Exec is for one time commands only - it is an emergency exit ● Types and Providers are not difficult ● Types have the Puppet DSL syntax, Providers have Logic and Commands 49
  • 50. Moving from Exec to Types and providers - Martin Alfke © example42 GmbH 2016 Moving from Exec to Types and Providers - Summary ● Ruby is easy to learn ● Start with IRB + Wirble ● Use Pry Gem for debugging ● Start doing configuration the right way ● Use Puppet’s power for Extensions 50