SlideShare a Scribd company logo
Growing Pains:
Avoiding Module
Hell
Chad Metcalf
@metcalfc
Saturday, August 24, 13
Saturday, August 24, 13
Saturday, August 24, 13
Saturday, August 24, 13
As do many stories,
it all begins with ...
Saturday, August 24, 13
$ sudo
Saturday, August 24, 13
Saturday, August 24, 13
Saturday, August 24, 13
sudo::conf { 'web':
source => 'puppet:///files/etc/sudoers.d/web',
}
sudo::conf { 'admins':
priority => 10,
content => "%admins ALL=(ALL) NOPASSWD: ALLn",
}
sudo::conf { 'joe':
priority => 60,
source => 'puppet:///files/etc/sudoers.d/users/joed',
}
Saturday, August 24, 13
sudo::rule { "extra_rule":
ensure => present,
who => 'bob',
commands => "/usr/sbin/systemctl",
nopass => false,
comment => "what ever you like",
}
Saturday, August 24, 13
Saturday, August 24, 13
Infrastructure as Code
Module as an API
Source Code Management
Verification andValidation
Release Management
Saturday, August 24, 13
Saturday, August 24, 13
Saturday, August 24, 13
Saturday, August 24, 13
Saturday, August 24, 13
Saturday, August 24, 13
Saturday, August 24, 13
Saturday, August 24, 13
Saturday, August 24, 13
Saturday, August 24, 13
Saturday, August 24, 13
Saturday, August 24, 13
semver.org
Saturday, August 24, 13
MAJOR.MINOR.PATC
H
Saturday, August 24, 13
MAJOR version when you
make incompatible API
changes
1.x.x
Saturday, August 24, 13
MINOR version when you add
functionality in a backwards-
compatible manner
x.0.x
Saturday, August 24, 13
PATCH version when you make
backwards-compatible bug
fixes
x.x.0
Saturday, August 24, 13
Its OK to
go:
1.0.
0
Saturday, August 24, 13
Saturday, August 24, 13
Easy to learn
Easy to use
Hard to
misuse
Easy to
Saturday, August 24, 13
Gather
requirements
Use cases
Don’t over specify
Private as possible
Saturday, August 24, 13
Saturday, August 24, 13
Saturday, August 24, 13
Saturday, August 24, 13
Saturday, August 24, 13
Nifty
Nifty::Firewall
Nifty::Monitoring
Nifty::Supervisor
iptables
Icinga
Monit
Firewall::Nifty
Monitoring::Nifty
Supervisor::Nifty
Saturday, August 24, 13
Nifty
Nifty::Firewall
Nifty::Monitoring
Nifty::Supervisor
pf
Sensu
Supervisord
Firewall::Nifty
Monitoring::Nifty
Supervisor::Nifty
Saturday, August 24, 13
Saturday, August 24, 13
Don’t Specify
ALL THE THINGS!!!
Saturday, August 24, 13
define apache::vhost (
$server_admin
$server_name = '',
$docroot = '',
$docroot_create = false,
$docroot_owner = 'root',
$docroot_group = 'root',
$port = '80',
$ssl = false,
$template = 'apache/virtualhost/vho
$priority = '50',
$serveraliases = '',
$env_variables = '',
$passenger = false,
$passenger_high_performance = true,
$passenger_max_pool_size = 12,
$passenger_pool_idle_time = 1200,
$passenger_max_requests = 0,
$passenger_stat_throttle_rate = 30,
$passenger_rack_auto_detect = true,
$passenger_rails_auto_detect = false,
$passenger_rails_env = '',
Saturday, August 24, 13
<property>
<name>mapred.map.output.compression.codec</name>
<value>org.apache.hadoop.io.compress.SnappyCodec</valu
</property>
<property>
<name>mapred.compress.map.output</name>
<value>true</value>
</property>
<property>
<name>io.sort.factor</name>
<value>64</value>
</property>
<property>
<name>io.sort.record.percent</name>
<value>0.05</value>
</property>
<property>
<name>io.sort.spill.percent</name>
<value>0.8</value>
</property>
<property>
<name>mapred.reduce.parallel.copies</name>
Saturday, August 24, 13
"foobar-cluster": {
"mapred-options": [
{
"name": "mapred.map.output.compression.codec",
"value": "org.apache.hadoop.io.compress.SnappyCode
},
{
"name": "mapred.compress.map.output",
"value": "true"
},
{
"name": "io.sort.factor",
"value": "64"
},
{
"name": "io.sort.record.percent",
"value": "0.05"
},
{
"name": "mapred.map.tasks.speculative.execution",
{
"name": "mapred.reduce.tasks.speculative.execution
Saturday, August 24, 13
Saturday, August 24, 13

More Related Content

PDF
Infrastructure as Data - PuppetConf 2013
PPS
Squidinstallation
PDF
Managing Windows Systems with Puppet - PuppetConf 2013
PDF
Vim Notes
ODP
Installing NS2.29 on Ubuntu 10.10
KEY
Javascript Stacktrace Ignite
PDF
Error handling in JavaScript
PPTX
Javascript Common Mistakes
Infrastructure as Data - PuppetConf 2013
Squidinstallation
Managing Windows Systems with Puppet - PuppetConf 2013
Vim Notes
Installing NS2.29 on Ubuntu 10.10
Javascript Stacktrace Ignite
Error handling in JavaScript
Javascript Common Mistakes

Similar to Growing Pains: Avoiding Module Hell (20)

PDF
Puppi. Puppet strings to the shell
PDF
Writing your own augeasproviders
PDF
DevSecCon Asia 2017: Guillaume Dedrie: A trip through the securitiy of devops...
PDF
Prototyping in the cloud
PDF
Bare Metal to OpenStack with Razor and Chef
PDF
How to export import a mysql database via ssh in aws lightsail wordpress rizw...
PDF
Writing and Publishing Puppet Modules - PuppetConf 2014
PDF
Script it
PDF
Cybersecurity Asia 2021 Conference: Learning from Honeypots
PDF
The Challenges of Container Configuration
PPT
OpenStack How To - PyLadies ATX
PDF
Twig & D8 - DrupalCamp Baltics 2013 - Tallinn
PDF
Steam Learn: Composer
PDF
InfoSec Taiwan 2023: APNIC Community Honeynet Project — Observations and Insi...
PDF
An Introduction to the Vert.x framework
PPTX
#OSATH Deploy OpenStack: DevStack
PDF
LinuxをインストールしてWebサーバーを立ち上げてみよう【OSC2018 Tokyo/Spring】
PDF
Puppet: Eclipsecon ALM 2013
PDF
Augeas @RMLL 2012
Puppi. Puppet strings to the shell
Writing your own augeasproviders
DevSecCon Asia 2017: Guillaume Dedrie: A trip through the securitiy of devops...
Prototyping in the cloud
Bare Metal to OpenStack with Razor and Chef
How to export import a mysql database via ssh in aws lightsail wordpress rizw...
Writing and Publishing Puppet Modules - PuppetConf 2014
Script it
Cybersecurity Asia 2021 Conference: Learning from Honeypots
The Challenges of Container Configuration
OpenStack How To - PyLadies ATX
Twig & D8 - DrupalCamp Baltics 2013 - Tallinn
Steam Learn: Composer
InfoSec Taiwan 2023: APNIC Community Honeynet Project — Observations and Insi...
An Introduction to the Vert.x framework
#OSATH Deploy OpenStack: DevStack
LinuxをインストールしてWebサーバーを立ち上げてみよう【OSC2018 Tokyo/Spring】
Puppet: Eclipsecon ALM 2013
Augeas @RMLL 2012
Ad

More from Puppet (20)

PPTX
Puppet Community Day: Planning the Future Together
PPTX
The Evolution of Puppet: Key Changes and Modernization Tips
PPTX
Can You Help Me Upgrade to Puppet 8? Tips, Tools & Best Practices for Your Up...
PPTX
Bolt Dynamic Inventory: Making Puppet Easier
PPTX
Customizing Reporting with the Puppet Report Processor
PPTX
Puppet at ConfigMgmtCamp 2025 Sponsor Deck
PPTX
The State of Puppet in 2025: A Presentation from Developer Relations Lead Dav...
PPTX
Let Red be Red and Green be Green: The Automated Workflow Restarter in GitHub...
PDF
Puppet camp2021 testing modules and controlrepo
PPTX
Puppetcamp r10kyaml
PDF
2021 04-15 operational verification (with notes)
PPTX
Puppet camp vscode
PDF
Modules of the twenties
PDF
Applying Roles and Profiles method to compliance code
PPTX
KGI compliance as-code approach
PDF
Enforce compliance policy with model-driven automation
PDF
Keynote: Puppet camp compliance
PPTX
Automating it management with Puppet + ServiceNow
PPTX
Puppet: The best way to harden Windows
PPTX
Simplified Patch Management with Puppet - Oct. 2020
Puppet Community Day: Planning the Future Together
The Evolution of Puppet: Key Changes and Modernization Tips
Can You Help Me Upgrade to Puppet 8? Tips, Tools & Best Practices for Your Up...
Bolt Dynamic Inventory: Making Puppet Easier
Customizing Reporting with the Puppet Report Processor
Puppet at ConfigMgmtCamp 2025 Sponsor Deck
The State of Puppet in 2025: A Presentation from Developer Relations Lead Dav...
Let Red be Red and Green be Green: The Automated Workflow Restarter in GitHub...
Puppet camp2021 testing modules and controlrepo
Puppetcamp r10kyaml
2021 04-15 operational verification (with notes)
Puppet camp vscode
Modules of the twenties
Applying Roles and Profiles method to compliance code
KGI compliance as-code approach
Enforce compliance policy with model-driven automation
Keynote: Puppet camp compliance
Automating it management with Puppet + ServiceNow
Puppet: The best way to harden Windows
Simplified Patch Management with Puppet - Oct. 2020
Ad

Recently uploaded (20)

PDF
Advanced methodologies resolving dimensionality complications for autism neur...
PDF
Per capita expenditure prediction using model stacking based on satellite ima...
PDF
Optimiser vos workloads AI/ML sur Amazon EC2 et AWS Graviton
PDF
Accuracy of neural networks in brain wave diagnosis of schizophrenia
PPTX
Machine Learning_overview_presentation.pptx
PDF
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
PDF
Spectral efficient network and resource selection model in 5G networks
PDF
The Rise and Fall of 3GPP – Time for a Sabbatical?
PPTX
Programs and apps: productivity, graphics, security and other tools
PPT
“AI and Expert System Decision Support & Business Intelligence Systems”
PDF
Getting Started with Data Integration: FME Form 101
PPTX
SOPHOS-XG Firewall Administrator PPT.pptx
PDF
A comparative analysis of optical character recognition models for extracting...
PPTX
Spectroscopy.pptx food analysis technology
PDF
Electronic commerce courselecture one. Pdf
PDF
Unlocking AI with Model Context Protocol (MCP)
PPTX
A Presentation on Artificial Intelligence
PDF
Agricultural_Statistics_at_a_Glance_2022_0.pdf
PPTX
20250228 LYD VKU AI Blended-Learning.pptx
PDF
Approach and Philosophy of On baking technology
Advanced methodologies resolving dimensionality complications for autism neur...
Per capita expenditure prediction using model stacking based on satellite ima...
Optimiser vos workloads AI/ML sur Amazon EC2 et AWS Graviton
Accuracy of neural networks in brain wave diagnosis of schizophrenia
Machine Learning_overview_presentation.pptx
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
Spectral efficient network and resource selection model in 5G networks
The Rise and Fall of 3GPP – Time for a Sabbatical?
Programs and apps: productivity, graphics, security and other tools
“AI and Expert System Decision Support & Business Intelligence Systems”
Getting Started with Data Integration: FME Form 101
SOPHOS-XG Firewall Administrator PPT.pptx
A comparative analysis of optical character recognition models for extracting...
Spectroscopy.pptx food analysis technology
Electronic commerce courselecture one. Pdf
Unlocking AI with Model Context Protocol (MCP)
A Presentation on Artificial Intelligence
Agricultural_Statistics_at_a_Glance_2022_0.pdf
20250228 LYD VKU AI Blended-Learning.pptx
Approach and Philosophy of On baking technology

Growing Pains: Avoiding Module Hell