SlideShare uma empresa Scribd logo
1 de 51
Baixar para ler offline
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 Provides

Mais conteúdo relacionado

Mais procurados

What's New in Plug-in Development (Galileo)
What's New in Plug-in Development (Galileo)What's New in Plug-in Development (Galileo)
What's New in Plug-in Development (Galileo)Chris Aniszczyk
 
Tycho Tutorial (EclipseCon 2012)
Tycho Tutorial (EclipseCon 2012)Tycho Tutorial (EclipseCon 2012)
Tycho Tutorial (EclipseCon 2012)jsievers
 
distage: Purely Functional Staged Dependency Injection; bonus: Faking Kind Po...
distage: Purely Functional Staged Dependency Injection; bonus: Faking Kind Po...distage: Purely Functional Staged Dependency Injection; bonus: Faking Kind Po...
distage: Purely Functional Staged Dependency Injection; bonus: Faking Kind Po...7mind
 
What is Puppet? | How Puppet Works? | Puppet Tutorial For Beginners | DevOps ...
What is Puppet? | How Puppet Works? | Puppet Tutorial For Beginners | DevOps ...What is Puppet? | How Puppet Works? | Puppet Tutorial For Beginners | DevOps ...
What is Puppet? | How Puppet Works? | Puppet Tutorial For Beginners | DevOps ...Simplilearn
 
Plugin for other browsers - webRTC Conference and Expo June 2014 @ atlanta
Plugin for other browsers - webRTC Conference and Expo June 2014 @ atlantaPlugin for other browsers - webRTC Conference and Expo June 2014 @ atlanta
Plugin for other browsers - webRTC Conference and Expo June 2014 @ atlantaAlexandre Gouaillard
 
FAST for SharePoint Deep Dive
FAST for SharePoint Deep DiveFAST for SharePoint Deep Dive
FAST for SharePoint Deep Diveneil_richards
 
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
 
Building Eclipse Plugins and RCP applications with Tycho
Building Eclipse Plugins and RCP applications with TychoBuilding Eclipse Plugins and RCP applications with Tycho
Building Eclipse Plugins and RCP applications with Tychojsievers
 
10 things you need to know to deliver a successful Alfresco project
10 things you need to know to deliver a successful Alfresco project10 things you need to know to deliver a successful Alfresco project
10 things you need to know to deliver a successful Alfresco projectSymphony Software Foundation
 
2015 11-04 HEADS at EclipseCon: Modelling Things for IoT
2015 11-04 HEADS at EclipseCon: Modelling Things for IoT2015 11-04 HEADS at EclipseCon: Modelling Things for IoT
2015 11-04 HEADS at EclipseCon: Modelling Things for IoTUdoHafermann
 
Migrating from PDE to Tycho builds
Migrating from PDE to Tycho buildsMigrating from PDE to Tycho builds
Migrating from PDE to Tycho buildsTeodor Madan
 
Wuff: Building Eclipse Applications and Plugins with Gradle
Wuff: Building Eclipse Applications and Plugins with GradleWuff: Building Eclipse Applications and Plugins with Gradle
Wuff: Building Eclipse Applications and Plugins with GradleAndrey Hihlovsky
 
Anatomy of a Build Pipeline
Anatomy of a Build PipelineAnatomy of a Build Pipeline
Anatomy of a Build PipelineSamuel Brown
 
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
 
Drupal Continuous Integration and devops - Beyond Jenkins
Drupal Continuous Integration and devops - Beyond JenkinsDrupal Continuous Integration and devops - Beyond Jenkins
Drupal Continuous Integration and devops - Beyond JenkinsPromet Source
 
Foundations for the perfect technology stream
Foundations for the perfect technology streamFoundations for the perfect technology stream
Foundations for the perfect technology streamBernd Alter
 
2014-11-11 Multiple Approaches to Managing Puppet Modules @ Puppet Camp Seattle
2014-11-11 Multiple Approaches to Managing Puppet Modules @ Puppet Camp Seattle2014-11-11 Multiple Approaches to Managing Puppet Modules @ Puppet Camp Seattle
2014-11-11 Multiple Approaches to Managing Puppet Modules @ Puppet Camp Seattlegarrett honeycutt
 
Turnkey Continuous Delivery
Turnkey Continuous DeliveryTurnkey Continuous Delivery
Turnkey Continuous DeliveryGianni Bombelli
 

Mais procurados (20)

What's New in Plug-in Development (Galileo)
What's New in Plug-in Development (Galileo)What's New in Plug-in Development (Galileo)
What's New in Plug-in Development (Galileo)
 
Tycho Tutorial (EclipseCon 2012)
Tycho Tutorial (EclipseCon 2012)Tycho Tutorial (EclipseCon 2012)
Tycho Tutorial (EclipseCon 2012)
 
Maven 3 / Tycho
Maven 3 / TychoMaven 3 / Tycho
Maven 3 / Tycho
 
distage: Purely Functional Staged Dependency Injection; bonus: Faking Kind Po...
distage: Purely Functional Staged Dependency Injection; bonus: Faking Kind Po...distage: Purely Functional Staged Dependency Injection; bonus: Faking Kind Po...
distage: Purely Functional Staged Dependency Injection; bonus: Faking Kind Po...
 
What is Puppet? | How Puppet Works? | Puppet Tutorial For Beginners | DevOps ...
What is Puppet? | How Puppet Works? | Puppet Tutorial For Beginners | DevOps ...What is Puppet? | How Puppet Works? | Puppet Tutorial For Beginners | DevOps ...
What is Puppet? | How Puppet Works? | Puppet Tutorial For Beginners | DevOps ...
 
Plugin for other browsers - webRTC Conference and Expo June 2014 @ atlanta
Plugin for other browsers - webRTC Conference and Expo June 2014 @ atlantaPlugin for other browsers - webRTC Conference and Expo June 2014 @ atlanta
Plugin for other browsers - webRTC Conference and Expo June 2014 @ atlanta
 
FAST for SharePoint Deep Dive
FAST for SharePoint Deep DiveFAST for SharePoint Deep Dive
FAST for SharePoint Deep Dive
 
Using Docker in CI process
Using Docker in CI processUsing Docker in CI process
Using Docker in CI process
 
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
 
Building Eclipse Plugins and RCP applications with Tycho
Building Eclipse Plugins and RCP applications with TychoBuilding Eclipse Plugins and RCP applications with Tycho
Building Eclipse Plugins and RCP applications with Tycho
 
10 things you need to know to deliver a successful Alfresco project
10 things you need to know to deliver a successful Alfresco project10 things you need to know to deliver a successful Alfresco project
10 things you need to know to deliver a successful Alfresco project
 
2015 11-04 HEADS at EclipseCon: Modelling Things for IoT
2015 11-04 HEADS at EclipseCon: Modelling Things for IoT2015 11-04 HEADS at EclipseCon: Modelling Things for IoT
2015 11-04 HEADS at EclipseCon: Modelling Things for IoT
 
Migrating from PDE to Tycho builds
Migrating from PDE to Tycho buildsMigrating from PDE to Tycho builds
Migrating from PDE to Tycho builds
 
Wuff: Building Eclipse Applications and Plugins with Gradle
Wuff: Building Eclipse Applications and Plugins with GradleWuff: Building Eclipse Applications and Plugins with Gradle
Wuff: Building Eclipse Applications and Plugins with Gradle
 
Anatomy of a Build Pipeline
Anatomy of a Build PipelineAnatomy of a Build Pipeline
Anatomy of a Build Pipeline
 
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
 
Drupal Continuous Integration and devops - Beyond Jenkins
Drupal Continuous Integration and devops - Beyond JenkinsDrupal Continuous Integration and devops - Beyond Jenkins
Drupal Continuous Integration and devops - Beyond Jenkins
 
Foundations for the perfect technology stream
Foundations for the perfect technology streamFoundations for the perfect technology stream
Foundations for the perfect technology stream
 
2014-11-11 Multiple Approaches to Managing Puppet Modules @ Puppet Camp Seattle
2014-11-11 Multiple Approaches to Managing Puppet Modules @ Puppet Camp Seattle2014-11-11 Multiple Approaches to Managing Puppet Modules @ Puppet Camp Seattle
2014-11-11 Multiple Approaches to Managing Puppet Modules @ Puppet Camp Seattle
 
Turnkey Continuous Delivery
Turnkey Continuous DeliveryTurnkey Continuous Delivery
Turnkey Continuous Delivery
 

Semelhante a PuppetConf 2016 Moving from Exec to Types and Provides

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
 
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 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
 
What's New in Primavera 15.2 Webcast
What's New in Primavera 15.2 WebcastWhat's New in Primavera 15.2 Webcast
What's New in Primavera 15.2 Webcastp6academy
 
An intuitive guide to combining free monad and free applicative
An intuitive guide to combining free monad and free applicativeAn intuitive guide to combining free monad and free applicative
An intuitive guide to combining free monad and free applicativeCameron Joannidis
 

Semelhante a PuppetConf 2016 Moving from Exec to Types and Provides (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
 
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 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
 
What's New in Primavera 15.2 Webcast
What's New in Primavera 15.2 WebcastWhat's New in Primavera 15.2 Webcast
What's New in Primavera 15.2 Webcast
 
An intuitive guide to combining free monad and free applicative
An intuitive guide to combining free monad and free applicativeAn intuitive guide to combining free monad and free applicative
An intuitive guide to combining free monad and free applicative
 

Mais de Martin Alfke

CfgMgmtCamp 2023 - Puppet is YAML.pdf
CfgMgmtCamp 2023 - Puppet is YAML.pdfCfgMgmtCamp 2023 - Puppet is YAML.pdf
CfgMgmtCamp 2023 - Puppet is YAML.pdfMartin Alfke
 
HashiTalksDACH-Terraform-Managing training instances in the Cloud
HashiTalksDACH-Terraform-Managing training instances in the CloudHashiTalksDACH-Terraform-Managing training instances in the Cloud
HashiTalksDACH-Terraform-Managing training instances in the CloudMartin Alfke
 
PuppetCamp2021-Testing Modules and ControlRepo.pdf
PuppetCamp2021-Testing Modules and ControlRepo.pdfPuppetCamp2021-Testing Modules and ControlRepo.pdf
PuppetCamp2021-Testing Modules and ControlRepo.pdfMartin Alfke
 
OpenRheinRuhr 2018 - Ops hates containers! Why?
OpenRheinRuhr 2018 - Ops hates containers! Why?OpenRheinRuhr 2018 - Ops hates containers! Why?
OpenRheinRuhr 2018 - Ops hates containers! Why?Martin Alfke
 
Puppet Camp Paris 2016 Data in Modules
Puppet Camp Paris 2016 Data in ModulesPuppet Camp Paris 2016 Data in Modules
Puppet Camp Paris 2016 Data in ModulesMartin Alfke
 
Can you upgrade to Puppet 4.x?
Can you upgrade to Puppet 4.x?Can you upgrade to Puppet 4.x?
Can you upgrade to Puppet 4.x?Martin Alfke
 
Upgrading Puppet CommitterConf Essen 2014
Upgrading Puppet CommitterConf Essen 2014Upgrading Puppet CommitterConf Essen 2014
Upgrading Puppet CommitterConf Essen 2014Martin Alfke
 
GUUG Hamburg OpenNebula
GUUG Hamburg OpenNebulaGUUG Hamburg OpenNebula
GUUG Hamburg OpenNebulaMartin Alfke
 
Puppet camp london-modulerewritingsmartway
Puppet camp london-modulerewritingsmartwayPuppet camp london-modulerewritingsmartway
Puppet camp london-modulerewritingsmartwayMartin Alfke
 
Puppet future parser
Puppet future parserPuppet future parser
Puppet future parserMartin Alfke
 
developing sysadmin, sysadmining developersGuug devops puppet
developing sysadmin, sysadmining developersGuug devops puppetdeveloping sysadmin, sysadmining developersGuug devops puppet
developing sysadmin, sysadmining developersGuug devops puppetMartin Alfke
 
Gluster fs buero20_presentation
Gluster fs buero20_presentationGluster fs buero20_presentation
Gluster fs buero20_presentationMartin Alfke
 
Puppet buero20 presentation
Puppet buero20 presentationPuppet buero20 presentation
Puppet buero20 presentationMartin Alfke
 

Mais de Martin Alfke (15)

CfgMgmtCamp 2023 - Puppet is YAML.pdf
CfgMgmtCamp 2023 - Puppet is YAML.pdfCfgMgmtCamp 2023 - Puppet is YAML.pdf
CfgMgmtCamp 2023 - Puppet is YAML.pdf
 
HashiTalksDACH-Terraform-Managing training instances in the Cloud
HashiTalksDACH-Terraform-Managing training instances in the CloudHashiTalksDACH-Terraform-Managing training instances in the Cloud
HashiTalksDACH-Terraform-Managing training instances in the Cloud
 
PuppetCamp2021-Testing Modules and ControlRepo.pdf
PuppetCamp2021-Testing Modules and ControlRepo.pdfPuppetCamp2021-Testing Modules and ControlRepo.pdf
PuppetCamp2021-Testing Modules and ControlRepo.pdf
 
OpenRheinRuhr 2018 - Ops hates containers! Why?
OpenRheinRuhr 2018 - Ops hates containers! Why?OpenRheinRuhr 2018 - Ops hates containers! Why?
OpenRheinRuhr 2018 - Ops hates containers! Why?
 
Puppet Camp Paris 2016 Data in Modules
Puppet Camp Paris 2016 Data in ModulesPuppet Camp Paris 2016 Data in Modules
Puppet Camp Paris 2016 Data in Modules
 
Power of Puppet 4
Power of Puppet 4Power of Puppet 4
Power of Puppet 4
 
Can you upgrade to Puppet 4.x?
Can you upgrade to Puppet 4.x?Can you upgrade to Puppet 4.x?
Can you upgrade to Puppet 4.x?
 
Upgrading Puppet CommitterConf Essen 2014
Upgrading Puppet CommitterConf Essen 2014Upgrading Puppet CommitterConf Essen 2014
Upgrading Puppet CommitterConf Essen 2014
 
GUUG Hamburg OpenNebula
GUUG Hamburg OpenNebulaGUUG Hamburg OpenNebula
GUUG Hamburg OpenNebula
 
Puppet camp london-modulerewritingsmartway
Puppet camp london-modulerewritingsmartwayPuppet camp london-modulerewritingsmartway
Puppet camp london-modulerewritingsmartway
 
One
OneOne
One
 
Puppet future parser
Puppet future parserPuppet future parser
Puppet future parser
 
developing sysadmin, sysadmining developersGuug devops puppet
developing sysadmin, sysadmining developersGuug devops puppetdeveloping sysadmin, sysadmining developersGuug devops puppet
developing sysadmin, sysadmining developersGuug devops puppet
 
Gluster fs buero20_presentation
Gluster fs buero20_presentationGluster fs buero20_presentation
Gluster fs buero20_presentation
 
Puppet buero20 presentation
Puppet buero20 presentationPuppet buero20 presentation
Puppet buero20 presentation
 

Último

20240510 QFM016 Irresponsible AI Reading List April 2024.pdf
20240510 QFM016 Irresponsible AI Reading List April 2024.pdf20240510 QFM016 Irresponsible AI Reading List April 2024.pdf
20240510 QFM016 Irresponsible AI Reading List April 2024.pdfMatthew Sinclair
 
Trump Diapers Over Dems t shirts Sweatshirt
Trump Diapers Over Dems t shirts SweatshirtTrump Diapers Over Dems t shirts Sweatshirt
Trump Diapers Over Dems t shirts Sweatshirtrahman018755
 
Russian Call girls in Abu Dhabi 0508644382 Abu Dhabi Call girls
Russian Call girls in Abu Dhabi 0508644382 Abu Dhabi Call girlsRussian Call girls in Abu Dhabi 0508644382 Abu Dhabi Call girls
Russian Call girls in Abu Dhabi 0508644382 Abu Dhabi Call girlsMonica Sydney
 
APNIC Updates presented by Paul Wilson at ARIN 53
APNIC Updates presented by Paul Wilson at ARIN 53APNIC Updates presented by Paul Wilson at ARIN 53
APNIC Updates presented by Paul Wilson at ARIN 53APNIC
 
Indian Escort in Abu DHabi 0508644382 Abu Dhabi Escorts
Indian Escort in Abu DHabi 0508644382 Abu Dhabi EscortsIndian Escort in Abu DHabi 0508644382 Abu Dhabi Escorts
Indian Escort in Abu DHabi 0508644382 Abu Dhabi EscortsMonica Sydney
 
Local Call Girls in Seoni 9332606886 HOT & SEXY Models beautiful and charmin...
Local Call Girls in Seoni  9332606886 HOT & SEXY Models beautiful and charmin...Local Call Girls in Seoni  9332606886 HOT & SEXY Models beautiful and charmin...
Local Call Girls in Seoni 9332606886 HOT & SEXY Models beautiful and charmin...kumargunjan9515
 
2nd Solid Symposium: Solid Pods vs Personal Knowledge Graphs
2nd Solid Symposium: Solid Pods vs Personal Knowledge Graphs2nd Solid Symposium: Solid Pods vs Personal Knowledge Graphs
2nd Solid Symposium: Solid Pods vs Personal Knowledge GraphsEleniIlkou
 
Real Men Wear Diapers T Shirts sweatshirt
Real Men Wear Diapers T Shirts sweatshirtReal Men Wear Diapers T Shirts sweatshirt
Real Men Wear Diapers T Shirts sweatshirtrahman018755
 
Story Board.pptxrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr
Story Board.pptxrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrStory Board.pptxrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr
Story Board.pptxrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrHenryBriggs2
 
原版制作美国爱荷华大学毕业证(iowa毕业证书)学位证网上存档可查
原版制作美国爱荷华大学毕业证(iowa毕业证书)学位证网上存档可查原版制作美国爱荷华大学毕业证(iowa毕业证书)学位证网上存档可查
原版制作美国爱荷华大学毕业证(iowa毕业证书)学位证网上存档可查ydyuyu
 
Vip Firozabad Phone 8250092165 Escorts Service At 6k To 30k Along With Ac Room
Vip Firozabad Phone 8250092165 Escorts Service At 6k To 30k Along With Ac RoomVip Firozabad Phone 8250092165 Escorts Service At 6k To 30k Along With Ac Room
Vip Firozabad Phone 8250092165 Escorts Service At 6k To 30k Along With Ac Roommeghakumariji156
 
pdfcoffee.com_business-ethics-q3m7-pdf-free.pdf
pdfcoffee.com_business-ethics-q3m7-pdf-free.pdfpdfcoffee.com_business-ethics-q3m7-pdf-free.pdf
pdfcoffee.com_business-ethics-q3m7-pdf-free.pdfJOHNBEBONYAP1
 
Ballia Escorts Service Girl ^ 9332606886, WhatsApp Anytime Ballia
Ballia Escorts Service Girl ^ 9332606886, WhatsApp Anytime BalliaBallia Escorts Service Girl ^ 9332606886, WhatsApp Anytime Ballia
Ballia Escorts Service Girl ^ 9332606886, WhatsApp Anytime Balliameghakumariji156
 
在线制作约克大学毕业证(yu毕业证)在读证明认证可查
在线制作约克大学毕业证(yu毕业证)在读证明认证可查在线制作约克大学毕业证(yu毕业证)在读证明认证可查
在线制作约克大学毕业证(yu毕业证)在读证明认证可查ydyuyu
 
20240509 QFM015 Engineering Leadership Reading List April 2024.pdf
20240509 QFM015 Engineering Leadership Reading List April 2024.pdf20240509 QFM015 Engineering Leadership Reading List April 2024.pdf
20240509 QFM015 Engineering Leadership Reading List April 2024.pdfMatthew Sinclair
 
Call girls Service in Ajman 0505086370 Ajman call girls
Call girls Service in Ajman 0505086370 Ajman call girlsCall girls Service in Ajman 0505086370 Ajman call girls
Call girls Service in Ajman 0505086370 Ajman call girlsMonica Sydney
 
一比一原版(Flinders毕业证书)弗林德斯大学毕业证原件一模一样
一比一原版(Flinders毕业证书)弗林德斯大学毕业证原件一模一样一比一原版(Flinders毕业证书)弗林德斯大学毕业证原件一模一样
一比一原版(Flinders毕业证书)弗林德斯大学毕业证原件一模一样ayvbos
 
一比一原版奥兹学院毕业证如何办理
一比一原版奥兹学院毕业证如何办理一比一原版奥兹学院毕业证如何办理
一比一原版奥兹学院毕业证如何办理F
 
Meaning of On page SEO & its process in detail.
Meaning of On page SEO & its process in detail.Meaning of On page SEO & its process in detail.
Meaning of On page SEO & its process in detail.krishnachandrapal52
 
Russian Escort Abu Dhabi 0503464457 Abu DHabi Escorts
Russian Escort Abu Dhabi 0503464457 Abu DHabi EscortsRussian Escort Abu Dhabi 0503464457 Abu DHabi Escorts
Russian Escort Abu Dhabi 0503464457 Abu DHabi EscortsMonica Sydney
 

Último (20)

20240510 QFM016 Irresponsible AI Reading List April 2024.pdf
20240510 QFM016 Irresponsible AI Reading List April 2024.pdf20240510 QFM016 Irresponsible AI Reading List April 2024.pdf
20240510 QFM016 Irresponsible AI Reading List April 2024.pdf
 
Trump Diapers Over Dems t shirts Sweatshirt
Trump Diapers Over Dems t shirts SweatshirtTrump Diapers Over Dems t shirts Sweatshirt
Trump Diapers Over Dems t shirts Sweatshirt
 
Russian Call girls in Abu Dhabi 0508644382 Abu Dhabi Call girls
Russian Call girls in Abu Dhabi 0508644382 Abu Dhabi Call girlsRussian Call girls in Abu Dhabi 0508644382 Abu Dhabi Call girls
Russian Call girls in Abu Dhabi 0508644382 Abu Dhabi Call girls
 
APNIC Updates presented by Paul Wilson at ARIN 53
APNIC Updates presented by Paul Wilson at ARIN 53APNIC Updates presented by Paul Wilson at ARIN 53
APNIC Updates presented by Paul Wilson at ARIN 53
 
Indian Escort in Abu DHabi 0508644382 Abu Dhabi Escorts
Indian Escort in Abu DHabi 0508644382 Abu Dhabi EscortsIndian Escort in Abu DHabi 0508644382 Abu Dhabi Escorts
Indian Escort in Abu DHabi 0508644382 Abu Dhabi Escorts
 
Local Call Girls in Seoni 9332606886 HOT & SEXY Models beautiful and charmin...
Local Call Girls in Seoni  9332606886 HOT & SEXY Models beautiful and charmin...Local Call Girls in Seoni  9332606886 HOT & SEXY Models beautiful and charmin...
Local Call Girls in Seoni 9332606886 HOT & SEXY Models beautiful and charmin...
 
2nd Solid Symposium: Solid Pods vs Personal Knowledge Graphs
2nd Solid Symposium: Solid Pods vs Personal Knowledge Graphs2nd Solid Symposium: Solid Pods vs Personal Knowledge Graphs
2nd Solid Symposium: Solid Pods vs Personal Knowledge Graphs
 
Real Men Wear Diapers T Shirts sweatshirt
Real Men Wear Diapers T Shirts sweatshirtReal Men Wear Diapers T Shirts sweatshirt
Real Men Wear Diapers T Shirts sweatshirt
 
Story Board.pptxrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr
Story Board.pptxrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrStory Board.pptxrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr
Story Board.pptxrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr
 
原版制作美国爱荷华大学毕业证(iowa毕业证书)学位证网上存档可查
原版制作美国爱荷华大学毕业证(iowa毕业证书)学位证网上存档可查原版制作美国爱荷华大学毕业证(iowa毕业证书)学位证网上存档可查
原版制作美国爱荷华大学毕业证(iowa毕业证书)学位证网上存档可查
 
Vip Firozabad Phone 8250092165 Escorts Service At 6k To 30k Along With Ac Room
Vip Firozabad Phone 8250092165 Escorts Service At 6k To 30k Along With Ac RoomVip Firozabad Phone 8250092165 Escorts Service At 6k To 30k Along With Ac Room
Vip Firozabad Phone 8250092165 Escorts Service At 6k To 30k Along With Ac Room
 
pdfcoffee.com_business-ethics-q3m7-pdf-free.pdf
pdfcoffee.com_business-ethics-q3m7-pdf-free.pdfpdfcoffee.com_business-ethics-q3m7-pdf-free.pdf
pdfcoffee.com_business-ethics-q3m7-pdf-free.pdf
 
Ballia Escorts Service Girl ^ 9332606886, WhatsApp Anytime Ballia
Ballia Escorts Service Girl ^ 9332606886, WhatsApp Anytime BalliaBallia Escorts Service Girl ^ 9332606886, WhatsApp Anytime Ballia
Ballia Escorts Service Girl ^ 9332606886, WhatsApp Anytime Ballia
 
在线制作约克大学毕业证(yu毕业证)在读证明认证可查
在线制作约克大学毕业证(yu毕业证)在读证明认证可查在线制作约克大学毕业证(yu毕业证)在读证明认证可查
在线制作约克大学毕业证(yu毕业证)在读证明认证可查
 
20240509 QFM015 Engineering Leadership Reading List April 2024.pdf
20240509 QFM015 Engineering Leadership Reading List April 2024.pdf20240509 QFM015 Engineering Leadership Reading List April 2024.pdf
20240509 QFM015 Engineering Leadership Reading List April 2024.pdf
 
Call girls Service in Ajman 0505086370 Ajman call girls
Call girls Service in Ajman 0505086370 Ajman call girlsCall girls Service in Ajman 0505086370 Ajman call girls
Call girls Service in Ajman 0505086370 Ajman call girls
 
一比一原版(Flinders毕业证书)弗林德斯大学毕业证原件一模一样
一比一原版(Flinders毕业证书)弗林德斯大学毕业证原件一模一样一比一原版(Flinders毕业证书)弗林德斯大学毕业证原件一模一样
一比一原版(Flinders毕业证书)弗林德斯大学毕业证原件一模一样
 
一比一原版奥兹学院毕业证如何办理
一比一原版奥兹学院毕业证如何办理一比一原版奥兹学院毕业证如何办理
一比一原版奥兹学院毕业证如何办理
 
Meaning of On page SEO & its process in detail.
Meaning of On page SEO & its process in detail.Meaning of On page SEO & its process in detail.
Meaning of On page SEO & its process in detail.
 
Russian Escort Abu Dhabi 0503464457 Abu DHabi Escorts
Russian Escort Abu Dhabi 0503464457 Abu DHabi EscortsRussian Escort Abu Dhabi 0503464457 Abu DHabi Escorts
Russian Escort Abu Dhabi 0503464457 Abu DHabi Escorts
 

PuppetConf 2016 Moving from Exec to Types and Provides

  • 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