SlideShare a Scribd company logo
1 of 84
Download to read offline
What’s with all the bad art?
War of the Roses
War of the Roses
But, it’s a people problem!
It never gets that bad, right?
Story Time!
It gets darker…
We’ll take care of the
technical debt next quarter.
A team of forced polyglots
What code did I just push?
So flexible, yet so breakable.
Hey, at least the Puppet was good.
So many things to remember.
I’m here to solve problems, not
complain that I didn’t get a perfect one.
To rewrite, or
not rewrite.
To rewrite, or
not rewrite.
“Making the single worst strategic mistake
that any software company can make: They
decided to rewrite the code from scratch” -
Joel Spolsky
“Making the single worst strategic mistake
that any software company can make: They
decided to rewrite the code from scratch” -
Joel Spolsky
“A good estimate is an
estimate that provides a clear
enough view of project reality
to allow the project leadership
to make good decisions about
how to control the project to
hit its targets…”
“A good estimate is an
estimate that provides a clear
enough view of project reality
to allow the project leadership
to make good decisions about
how to control the project to
hit its targets…”
Where did you get this stuff?
Why bother if it’s going
to be wrong anyway?
Always forgetting something.
Go visit:
x.co/overlook
Go visit:
x.co/overlook
Go visit:
x.co/overlook
The usual constraints.
Making it work for me.
1. Business Value
2. Maintenance Need
3. Code Quality
4. Functionality
5. Manifest Equivalent
6. Module Equivalent
1. Business Value
2. Maintenance Need
3. Code Quality
4. Functionality
5. Manifest Equivalent
6. Module Equivalent
What if my time allocated to
improve tooling this quarter is
approximately 0 hours?
What if my time allocated to
improve tooling this quarter is
approximately 0 hours?
Compare not Compete
A very bad translation
Puppet Ansible Salt Chef
Node,	Agent Nodes Minion Node,	Client
Environment N/A Environment Environment
Resource Module	Methods id,	state	declarations,	module	
methods
resource
Attribute Play Function	declaration Resource	attribute
Hiera Group	vars,	host	
vars,	defaults,	role	
defaults
Grains,	pillars Data	bags,	
attributes
Hiera	Hierarchy Top-to-bottom,	
vars	files
Top	file	merging	strategy Attribute	
precedence
Puppet Ansible Salt Chef
Node,	Agent Nodes Minion Node,	Client
Environment N/A Environment Environment
Resource Module	Methods id,	state	declarations,	module	
methods
resource
Attribute Play Function	declaration Resource	attribute
Hiera Group	vars,	host	
vars,	defaults,	role	
defaults
Grains,	pillars Data	bags,	
attributes
Hiera	Hierarchy Top-to-bottom,	
vars	files
Top	file	merging	strategy Attribute	
precedence
Puppet Ansible Salt Chef
Node,	Agent Nodes Minion Node,	Client
Environment N/A Environment Environment
Resource Module	Methods id,	state	declarations,	module	
methods
resource
Attribute Play Function	declaration Resource	attribute
Hiera Group	vars,	host	
vars,	defaults,	role	
defaults
Grains,	pillars Data	bags,	
attributes
Hiera	Hierarchy Top-to-bottom,	
vars	files
Top	file	merging	strategy Attribute	
precedence
Puppet Ansible Salt Chef
Node,	Agent Nodes Minion Node,	Client
Environment N/A Environment Environment
Resource Module	Methods id,	state	declarations,	module	
methods
resource
Attribute Play Function	declaration Resource	attribute
Hiera Group	vars,	host	
vars,	defaults,	role	
defaults
Grains,	pillars Data	bags,	
attributes
Hiera	Hierarchy Top-to-bottom,	
vars	files
Top	file	merging	strategy Attribute	
precedence
Puppet Ansible Salt Chef
Node,	Agent Nodes Minion Node,	Client
Environment N/A Environment Environment
Resource Module	Methods id,	state	declarations,	module	
methods
resource
Attribute Play Function	declaration Resource	attribute
Hiera Group	vars,	host	
vars,	defaults,	role	
defaults
Grains,	pillars Data	bags,	
attributes
Hiera	Hierarchy Top-to-bottom,	
vars	files
Top	file	merging	strategy Attribute	
precedence
Puppet Ansible Salt Chef
Facter Facts,	Setup Pillar Ohai
Manifest Playbook State	File Recipe
Module Playbook Formula	(Not	modules) Cookbook
Role Multiple	Roles Top	file,	nodegroups,	hostname	
regex
Run-list,	policyfile
Profiles Roles Top	files Roles
Puppet Ansible Salt Chef
Facter Facts,	Setup Pillar Ohai
Manifest Playbook State	File Recipe
Module Playbook Formula	(Not	modules) Cookbook
Role Multiple	Roles Top	file,	nodegroups,	hostname	
regex
Run-list,	policyfile
Profiles Roles Top	files Roles
Puppet Ansible Salt Chef
Facter Facts,	Setup Pillar Ohai
Manifest Playbook State	File Recipe
Module Playbook Formula	(Not	modules) Cookbook
Role Multiple	Roles Top	file,	nodegroups,	hostname	
regex
Run-list,	policyfile
Profiles Roles Top	files Roles
Puppet Ansible Salt Chef
Facter Facts,	Setup Pillar Ohai
Manifest Playbook State	File Recipe
Module Playbook Formula	(Not	modules) Cookbook
Role Multiple	Roles Top	file,	nodegroups,	hostname	
regex
Run-list,	policyfile
Profiles Roles Top	files Roles
Puppet Ansible Salt Chef
Facter Facts,	Setup Pillar Ohai
Manifest Playbook State	File Recipe
Module Playbook Formula	(Not	modules) Cookbook
Role Multiple	Roles Top	file,	nodegroups,	hostname	
regex
Run-list,	policyfile
Profiles Roles Top	files Roles
Puppet Ansible Salt Chef
Puppet	Master Your	local	
workstation
Salt	Master Chef	Server
Masterless	Puppet Ansible	CLI Masterless	Salt-Minion Chef	Zero
Hiera-EYAML Ansible	Vault Encrypted	Pillars Chef	Vault
Librarian-Puppet,	
R10k
Git Salt	Package	Manager Berkshelf
Beaker Kitchen-Ansible Kitchen-Salt Kitchen
Puppet-Lint Ansible-Lint salt-Lint Foodcritic,	Cookstyle
MCollective Ansible	CLI salt	cmd-run,	salt-cloud Knife
Puppet	Forge Ansible	Galaxy Github.com/saltstack-formulas Chef	Supermarket
Puppet Ansible Salt Chef
Puppet	Master Your	local	
workstation
Salt	Master Chef	Server
Masterless	Puppet Ansible	CLI Masterless	Salt-Minion Chef	Zero
Hiera-EYAML Ansible	Vault Encrypted	Pillars Chef	Vault
Librarian-Puppet,	
R10k
Git Salt	Package	Manager Berkshelf
Beaker Kitchen-Ansible Kitchen-Salt Kitchen
Puppet-Lint Ansible-Lint salt-Lint Foodcritic,	Cookstyle
MCollective Ansible	CLI salt	cmd-run,	salt-cloud Knife
Puppet	Forge Ansible	Galaxy Github.com/saltstack-formulas Chef	Supermarket
Puppet Ansible Salt Chef
Puppet	Master Your	local	
workstation
Salt	Master Chef	Server
Masterless	Puppet Ansible	CLI Masterless	Salt-Minion Chef	Zero
Hiera-EYAML Ansible	Vault Encrypted	Pillars Chef	Vault
Librarian-Puppet,	
R10k
Git Salt	Package	Manager Berkshelf
Beaker Kitchen-Ansible Kitchen-Salt Kitchen
Puppet-Lint Ansible-Lint salt-Lint Foodcritic,	Cookstyle
MCollective Ansible	CLI salt	cmd-run,	salt-cloud Knife
Puppet	Forge Ansible	Galaxy Github.com/saltstack-formulas Chef	Supermarket
Puppet Ansible Salt Chef
Puppet	Master Your	local	
workstation
Salt	Master Chef	Server
Masterless	Puppet Ansible	CLI Masterless	Salt-Minion Chef	Zero
Hiera-EYAML Ansible	Vault Encrypted	Pillars Chef	Vault
Librarian-Puppet,	
R10k
Git Salt	Package	Manager Berkshelf
Beaker Kitchen-Ansible Kitchen-Salt Kitchen
Puppet-Lint Ansible-Lint salt-Lint Foodcritic,	Cookstyle
MCollective Ansible	CLI salt	cmd-run,	salt-cloud Knife
Puppet	Forge Ansible	Galaxy Github.com/saltstack-formulas Chef	Supermarket
Puppet Ansible Salt Chef
Puppet	Master Your	local	
workstation
Salt	Master Chef	Server
Masterless	Puppet Ansible	CLI Masterless	Salt-Minion Chef	Zero
Hiera-EYAML Ansible	Vault Encrypted	Pillars Chef	Vault
Librarian-Puppet,	
R10k
Git Salt	Package	Manager Berkshelf
Beaker Kitchen-Ansible Kitchen-Salt Kitchen
Puppet-Lint Ansible-Lint salt-Lint Foodcritic,	Cookstyle
MCollective Ansible	CLI salt	cmd-run,	salt-cloud Knife
Puppet	Forge Ansible	Galaxy Github.com/saltstack-formulas Chef	Supermarket
Puppet Ansible Salt Chef
Puppet	Apply Ansible-
playbook
Salt-call	state.apply chef-apply
Noop Check,	diff	
check,	diff
test why-run
Puppet	Agent Ansible-
playbook
salt	state.highstate chef-client
R10k Inventory,	
groups	vars,	host	
vars
GitFS Berkshelf,	
environments,	policy	
groups
Puppet Ansible Salt Chef
Puppet	Apply Ansible-
playbook
Salt-call	state.apply chef-apply
Noop Check,	diff	
check,	diff
test why-run
Puppet	Agent Ansible-
playbook
salt	state.highstate chef-client
R10k Inventory,	
groups	vars,	host	
vars
GitFS Berkshelf,	
environments,	policy	
groups
Puppet Ansible Salt Chef
Puppet	Apply Ansible-
playbook
Salt-call	state.apply chef-apply
Noop Check,	diff	
check,	diff
test why-run
Puppet	Agent Ansible-
playbook
salt	state.highstate chef-client
R10k Inventory,	
groups	vars,	host	
vars
GitFS Berkshelf,	
environments,	policy	
groups
“I know Kung Fu.”
Manual Remote Executor
Configuration Management
Provisioning/Orchestration/Automated
Execution
Host/Role/Service Management
Manual Remote Executor
Configuration Management
Provisioning/Orchestration/Automated
Execution
Host/Role/Service Management
Manual Remote Executor
Configuration Management
Provisioning/Orchestration/Automated
Execution
Host/Role/Service Management
Agree	upon	language	roles	and	boundaries
Another great book you should read.
Multiple tools means you need CI/CD.
It’s OK, One step at a time.
Requivalencies between languages for
translation
Story
Requivalencies between languages for
translation
Story
Requivalencies between languages for
translation
Story
Requivalencies between languages for
translation
Story
Requivalencies between languages for
translation
Story
Requivalencies between languages for
translation
Story
Requivalencies between languages for
translation
Story
Requivalencies between languages for
translation
Story
Requivalencies between languages for
translation
Story
Requivalencies between languages for
translation
Story
Don’t do it, but if you do…
In Summary.
Questions?
Questions?

More Related Content

Similar to ManagingPuppetConf 2017: Multiple Configuration Management Tools- Sally Lehman, AddThis

Be a library developer!
Be a library developer!Be a library developer!
Be a library developer!Kouhei Sutou
 
Ansible Configuration Management Tool 소개 및 활용
Ansible Configuration Management Tool 소개 및 활용 Ansible Configuration Management Tool 소개 및 활용
Ansible Configuration Management Tool 소개 및 활용 Steven Shim
 
My 'Phoenix Project'—One Developer's Evolutionary Journey
My 'Phoenix Project'—One Developer's Evolutionary JourneyMy 'Phoenix Project'—One Developer's Evolutionary Journey
My 'Phoenix Project'—One Developer's Evolutionary JourneyBurr Sutter
 
Breaking the oracle tie
Breaking the oracle tieBreaking the oracle tie
Breaking the oracle tieagiamas
 
Puppet for dummies - ZendCon 2011 Edition
Puppet for dummies - ZendCon 2011 EditionPuppet for dummies - ZendCon 2011 Edition
Puppet for dummies - ZendCon 2011 EditionJoshua Thijssen
 
Spring, CDI, Jakarta EE good parts
Spring, CDI, Jakarta EE good partsSpring, CDI, Jakarta EE good parts
Spring, CDI, Jakarta EE good partsJarek Ratajski
 
Open source-secret-sauce-rit-2010
Open source-secret-sauce-rit-2010Open source-secret-sauce-rit-2010
Open source-secret-sauce-rit-2010Ted Husted
 
Prophet - Beijing Perl Workshop
Prophet - Beijing Perl WorkshopProphet - Beijing Perl Workshop
Prophet - Beijing Perl WorkshopJesse Vincent
 
Games for the Masses (Jax)
Games for the Masses (Jax)Games for the Masses (Jax)
Games for the Masses (Jax)Wooga
 
Double the Collaboration Value of Confluence - Ben Mackie
Double the Collaboration Value of Confluence - Ben MackieDouble the Collaboration Value of Confluence - Ben Mackie
Double the Collaboration Value of Confluence - Ben MackieAtlassian
 
A Tale of Two Workflows - ChefConf 2014
A Tale of Two Workflows - ChefConf 2014A Tale of Two Workflows - ChefConf 2014
A Tale of Two Workflows - ChefConf 2014Pete Cheslock
 
Libraries Frameworks And Cms
Libraries Frameworks And CmsLibraries Frameworks And Cms
Libraries Frameworks And CmsMark Casias
 
Paris Web - Javascript as a programming language
Paris Web - Javascript as a programming languageParis Web - Javascript as a programming language
Paris Web - Javascript as a programming languageMarco Cedaro
 
Let's Make the PAIN Visible!
Let's Make the PAIN Visible!Let's Make the PAIN Visible!
Let's Make the PAIN Visible!Arty Starr
 
Escaping the Jungle - Migrating to Cloud Native CI/CD
Escaping the Jungle - Migrating to Cloud Native CI/CDEscaping the Jungle - Migrating to Cloud Native CI/CD
Escaping the Jungle - Migrating to Cloud Native CI/CDAnton Weiss
 
Testing with Docker
Testing with DockerTesting with Docker
Testing with Dockertoffermann
 
What is Kephra about?
What is Kephra about?What is Kephra about?
What is Kephra about?lichtkind
 

Similar to ManagingPuppetConf 2017: Multiple Configuration Management Tools- Sally Lehman, AddThis (20)

Be a library developer!
Be a library developer!Be a library developer!
Be a library developer!
 
Ansible Configuration Management Tool 소개 및 활용
Ansible Configuration Management Tool 소개 및 활용 Ansible Configuration Management Tool 소개 및 활용
Ansible Configuration Management Tool 소개 및 활용
 
My 'Phoenix Project'—One Developer's Evolutionary Journey
My 'Phoenix Project'—One Developer's Evolutionary JourneyMy 'Phoenix Project'—One Developer's Evolutionary Journey
My 'Phoenix Project'—One Developer's Evolutionary Journey
 
Breaking the oracle tie
Breaking the oracle tieBreaking the oracle tie
Breaking the oracle tie
 
Puppet for dummies - ZendCon 2011 Edition
Puppet for dummies - ZendCon 2011 EditionPuppet for dummies - ZendCon 2011 Edition
Puppet for dummies - ZendCon 2011 Edition
 
Spring, CDI, Jakarta EE good parts
Spring, CDI, Jakarta EE good partsSpring, CDI, Jakarta EE good parts
Spring, CDI, Jakarta EE good parts
 
Big Data and Hadoop in the Cloud
Big Data and Hadoop in the CloudBig Data and Hadoop in the Cloud
Big Data and Hadoop in the Cloud
 
Open source-secret-sauce-rit-2010
Open source-secret-sauce-rit-2010Open source-secret-sauce-rit-2010
Open source-secret-sauce-rit-2010
 
Pinto+Stratopan+Love
Pinto+Stratopan+LovePinto+Stratopan+Love
Pinto+Stratopan+Love
 
Prophet - Beijing Perl Workshop
Prophet - Beijing Perl WorkshopProphet - Beijing Perl Workshop
Prophet - Beijing Perl Workshop
 
Games for the Masses (Jax)
Games for the Masses (Jax)Games for the Masses (Jax)
Games for the Masses (Jax)
 
Double the Collaboration Value of Confluence - Ben Mackie
Double the Collaboration Value of Confluence - Ben MackieDouble the Collaboration Value of Confluence - Ben Mackie
Double the Collaboration Value of Confluence - Ben Mackie
 
Cucumbered
CucumberedCucumbered
Cucumbered
 
A Tale of Two Workflows - ChefConf 2014
A Tale of Two Workflows - ChefConf 2014A Tale of Two Workflows - ChefConf 2014
A Tale of Two Workflows - ChefConf 2014
 
Libraries Frameworks And Cms
Libraries Frameworks And CmsLibraries Frameworks And Cms
Libraries Frameworks And Cms
 
Paris Web - Javascript as a programming language
Paris Web - Javascript as a programming languageParis Web - Javascript as a programming language
Paris Web - Javascript as a programming language
 
Let's Make the PAIN Visible!
Let's Make the PAIN Visible!Let's Make the PAIN Visible!
Let's Make the PAIN Visible!
 
Escaping the Jungle - Migrating to Cloud Native CI/CD
Escaping the Jungle - Migrating to Cloud Native CI/CDEscaping the Jungle - Migrating to Cloud Native CI/CD
Escaping the Jungle - Migrating to Cloud Native CI/CD
 
Testing with Docker
Testing with DockerTesting with Docker
Testing with Docker
 
What is Kephra about?
What is Kephra about?What is Kephra about?
What is Kephra about?
 

More from 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
 
Modules of the twenties
Modules of the twentiesModules of the twenties
Modules of the twentiesPuppet
 
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
 

More from 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
 
Modules of the twenties
Modules of the twentiesModules of the twenties
Modules of the twenties
 
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
 

Recently uploaded

Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clashcharlottematthew16
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxNavinnSomaal
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piececharlottematthew16
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Wonjun Hwang
 
APIForce Zurich 5 April Automation LPDG
APIForce Zurich 5 April  Automation LPDGAPIForce Zurich 5 April  Automation LPDG
APIForce Zurich 5 April Automation LPDGMarianaLemus7
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxhariprasad279825
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 

Recently uploaded (20)

Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clash
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piece
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
 
APIForce Zurich 5 April Automation LPDG
APIForce Zurich 5 April  Automation LPDGAPIForce Zurich 5 April  Automation LPDG
APIForce Zurich 5 April Automation LPDG
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptx
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 

ManagingPuppetConf 2017: Multiple Configuration Management Tools- Sally Lehman, AddThis

  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6. What’s with all the bad art?
  • 7. War of the Roses
  • 8. War of the Roses
  • 9. But, it’s a people problem!
  • 10. It never gets that bad, right?
  • 13. We’ll take care of the technical debt next quarter.
  • 14. A team of forced polyglots
  • 15. What code did I just push?
  • 16. So flexible, yet so breakable.
  • 17. Hey, at least the Puppet was good.
  • 18. So many things to remember.
  • 19. I’m here to solve problems, not complain that I didn’t get a perfect one.
  • 20.
  • 21. To rewrite, or not rewrite.
  • 22. To rewrite, or not rewrite.
  • 23. “Making the single worst strategic mistake that any software company can make: They decided to rewrite the code from scratch” - Joel Spolsky
  • 24. “Making the single worst strategic mistake that any software company can make: They decided to rewrite the code from scratch” - Joel Spolsky
  • 25. “A good estimate is an estimate that provides a clear enough view of project reality to allow the project leadership to make good decisions about how to control the project to hit its targets…”
  • 26. “A good estimate is an estimate that provides a clear enough view of project reality to allow the project leadership to make good decisions about how to control the project to hit its targets…”
  • 27. Where did you get this stuff?
  • 28. Why bother if it’s going to be wrong anyway?
  • 34. Making it work for me.
  • 35. 1. Business Value 2. Maintenance Need 3. Code Quality 4. Functionality 5. Manifest Equivalent 6. Module Equivalent
  • 36. 1. Business Value 2. Maintenance Need 3. Code Quality 4. Functionality 5. Manifest Equivalent 6. Module Equivalent
  • 37. What if my time allocated to improve tooling this quarter is approximately 0 hours?
  • 38. What if my time allocated to improve tooling this quarter is approximately 0 hours?
  • 40. A very bad translation
  • 41. Puppet Ansible Salt Chef Node, Agent Nodes Minion Node, Client Environment N/A Environment Environment Resource Module Methods id, state declarations, module methods resource Attribute Play Function declaration Resource attribute Hiera Group vars, host vars, defaults, role defaults Grains, pillars Data bags, attributes Hiera Hierarchy Top-to-bottom, vars files Top file merging strategy Attribute precedence
  • 42. Puppet Ansible Salt Chef Node, Agent Nodes Minion Node, Client Environment N/A Environment Environment Resource Module Methods id, state declarations, module methods resource Attribute Play Function declaration Resource attribute Hiera Group vars, host vars, defaults, role defaults Grains, pillars Data bags, attributes Hiera Hierarchy Top-to-bottom, vars files Top file merging strategy Attribute precedence
  • 43. Puppet Ansible Salt Chef Node, Agent Nodes Minion Node, Client Environment N/A Environment Environment Resource Module Methods id, state declarations, module methods resource Attribute Play Function declaration Resource attribute Hiera Group vars, host vars, defaults, role defaults Grains, pillars Data bags, attributes Hiera Hierarchy Top-to-bottom, vars files Top file merging strategy Attribute precedence
  • 44. Puppet Ansible Salt Chef Node, Agent Nodes Minion Node, Client Environment N/A Environment Environment Resource Module Methods id, state declarations, module methods resource Attribute Play Function declaration Resource attribute Hiera Group vars, host vars, defaults, role defaults Grains, pillars Data bags, attributes Hiera Hierarchy Top-to-bottom, vars files Top file merging strategy Attribute precedence
  • 45. Puppet Ansible Salt Chef Node, Agent Nodes Minion Node, Client Environment N/A Environment Environment Resource Module Methods id, state declarations, module methods resource Attribute Play Function declaration Resource attribute Hiera Group vars, host vars, defaults, role defaults Grains, pillars Data bags, attributes Hiera Hierarchy Top-to-bottom, vars files Top file merging strategy Attribute precedence
  • 46. Puppet Ansible Salt Chef Facter Facts, Setup Pillar Ohai Manifest Playbook State File Recipe Module Playbook Formula (Not modules) Cookbook Role Multiple Roles Top file, nodegroups, hostname regex Run-list, policyfile Profiles Roles Top files Roles
  • 47. Puppet Ansible Salt Chef Facter Facts, Setup Pillar Ohai Manifest Playbook State File Recipe Module Playbook Formula (Not modules) Cookbook Role Multiple Roles Top file, nodegroups, hostname regex Run-list, policyfile Profiles Roles Top files Roles
  • 48. Puppet Ansible Salt Chef Facter Facts, Setup Pillar Ohai Manifest Playbook State File Recipe Module Playbook Formula (Not modules) Cookbook Role Multiple Roles Top file, nodegroups, hostname regex Run-list, policyfile Profiles Roles Top files Roles
  • 49. Puppet Ansible Salt Chef Facter Facts, Setup Pillar Ohai Manifest Playbook State File Recipe Module Playbook Formula (Not modules) Cookbook Role Multiple Roles Top file, nodegroups, hostname regex Run-list, policyfile Profiles Roles Top files Roles
  • 50. Puppet Ansible Salt Chef Facter Facts, Setup Pillar Ohai Manifest Playbook State File Recipe Module Playbook Formula (Not modules) Cookbook Role Multiple Roles Top file, nodegroups, hostname regex Run-list, policyfile Profiles Roles Top files Roles
  • 51. Puppet Ansible Salt Chef Puppet Master Your local workstation Salt Master Chef Server Masterless Puppet Ansible CLI Masterless Salt-Minion Chef Zero Hiera-EYAML Ansible Vault Encrypted Pillars Chef Vault Librarian-Puppet, R10k Git Salt Package Manager Berkshelf Beaker Kitchen-Ansible Kitchen-Salt Kitchen Puppet-Lint Ansible-Lint salt-Lint Foodcritic, Cookstyle MCollective Ansible CLI salt cmd-run, salt-cloud Knife Puppet Forge Ansible Galaxy Github.com/saltstack-formulas Chef Supermarket
  • 52. Puppet Ansible Salt Chef Puppet Master Your local workstation Salt Master Chef Server Masterless Puppet Ansible CLI Masterless Salt-Minion Chef Zero Hiera-EYAML Ansible Vault Encrypted Pillars Chef Vault Librarian-Puppet, R10k Git Salt Package Manager Berkshelf Beaker Kitchen-Ansible Kitchen-Salt Kitchen Puppet-Lint Ansible-Lint salt-Lint Foodcritic, Cookstyle MCollective Ansible CLI salt cmd-run, salt-cloud Knife Puppet Forge Ansible Galaxy Github.com/saltstack-formulas Chef Supermarket
  • 53. Puppet Ansible Salt Chef Puppet Master Your local workstation Salt Master Chef Server Masterless Puppet Ansible CLI Masterless Salt-Minion Chef Zero Hiera-EYAML Ansible Vault Encrypted Pillars Chef Vault Librarian-Puppet, R10k Git Salt Package Manager Berkshelf Beaker Kitchen-Ansible Kitchen-Salt Kitchen Puppet-Lint Ansible-Lint salt-Lint Foodcritic, Cookstyle MCollective Ansible CLI salt cmd-run, salt-cloud Knife Puppet Forge Ansible Galaxy Github.com/saltstack-formulas Chef Supermarket
  • 54. Puppet Ansible Salt Chef Puppet Master Your local workstation Salt Master Chef Server Masterless Puppet Ansible CLI Masterless Salt-Minion Chef Zero Hiera-EYAML Ansible Vault Encrypted Pillars Chef Vault Librarian-Puppet, R10k Git Salt Package Manager Berkshelf Beaker Kitchen-Ansible Kitchen-Salt Kitchen Puppet-Lint Ansible-Lint salt-Lint Foodcritic, Cookstyle MCollective Ansible CLI salt cmd-run, salt-cloud Knife Puppet Forge Ansible Galaxy Github.com/saltstack-formulas Chef Supermarket
  • 55. Puppet Ansible Salt Chef Puppet Master Your local workstation Salt Master Chef Server Masterless Puppet Ansible CLI Masterless Salt-Minion Chef Zero Hiera-EYAML Ansible Vault Encrypted Pillars Chef Vault Librarian-Puppet, R10k Git Salt Package Manager Berkshelf Beaker Kitchen-Ansible Kitchen-Salt Kitchen Puppet-Lint Ansible-Lint salt-Lint Foodcritic, Cookstyle MCollective Ansible CLI salt cmd-run, salt-cloud Knife Puppet Forge Ansible Galaxy Github.com/saltstack-formulas Chef Supermarket
  • 56. Puppet Ansible Salt Chef Puppet Apply Ansible- playbook Salt-call state.apply chef-apply Noop Check, diff check, diff test why-run Puppet Agent Ansible- playbook salt state.highstate chef-client R10k Inventory, groups vars, host vars GitFS Berkshelf, environments, policy groups
  • 57. Puppet Ansible Salt Chef Puppet Apply Ansible- playbook Salt-call state.apply chef-apply Noop Check, diff check, diff test why-run Puppet Agent Ansible- playbook salt state.highstate chef-client R10k Inventory, groups vars, host vars GitFS Berkshelf, environments, policy groups
  • 58. Puppet Ansible Salt Chef Puppet Apply Ansible- playbook Salt-call state.apply chef-apply Noop Check, diff check, diff test why-run Puppet Agent Ansible- playbook salt state.highstate chef-client R10k Inventory, groups vars, host vars GitFS Berkshelf, environments, policy groups
  • 59. “I know Kung Fu.”
  • 60.
  • 61.
  • 62.
  • 63. Manual Remote Executor Configuration Management Provisioning/Orchestration/Automated Execution Host/Role/Service Management
  • 64. Manual Remote Executor Configuration Management Provisioning/Orchestration/Automated Execution Host/Role/Service Management
  • 65. Manual Remote Executor Configuration Management Provisioning/Orchestration/Automated Execution Host/Role/Service Management
  • 67. Multiple tools means you need CI/CD.
  • 68. It’s OK, One step at a time.
  • 69. Requivalencies between languages for translation Story
  • 70. Requivalencies between languages for translation Story
  • 71. Requivalencies between languages for translation Story
  • 72. Requivalencies between languages for translation Story
  • 73. Requivalencies between languages for translation Story
  • 74. Requivalencies between languages for translation Story
  • 75. Requivalencies between languages for translation Story
  • 76. Requivalencies between languages for translation Story
  • 77. Requivalencies between languages for translation Story
  • 78. Requivalencies between languages for translation Story
  • 79. Don’t do it, but if you do…
  • 81.
  • 82.
  • 83.