Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Configuration Management Anti-Patterns
Search
Sam Kottler
June 20, 2013
Programming
2
1.2k
Configuration Management Anti-Patterns
Sam Kottler
June 20, 2013
Tweet
Share
More Decks by Sam Kottler
See All by Sam Kottler
This is your database on Linux
skottler
0
280
How to Debug Anything - DevOpsDay PGH
skottler
1
1.2k
Containerization primatives
skottler
0
150
Icinga at DigitalOcean
skottler
1
1k
PuppetConf '14
skottler
0
230
Other Decks in Programming
See All in Programming
ソフトウェア品質を数字で捉える技術。事業成長を支えるシステム品質の マネジメント
takuya542
2
15k
生成AI時代のコンポーネントライブラリの作り方
touyou
1
290
レベル1の開発生産性向上に取り組む − 日々の作業の効率化・自動化を通じた改善活動
kesoji
1
320
バイブコーディング超えてバイブデプロイ〜CloudflareMCPで実現する、未来のアプリケーションデリバリー〜
azukiazusa1
2
630
MySQL9でベクトルカラム登場!PHP×AWSでのAI/類似検索はこう変わる
suguruooki
1
160
TypeScriptでDXを上げろ! Hono編
yusukebe
3
820
チームで開発し事業を加速するための"良い"設計の考え方 @ サポーターズCoLab 2025-07-08
agatan
1
480
バイブスあるコーディングで ~PHP~ 便利ツールをつくるプラクティス
uzulla
1
160
Claude Code + Container Use と Cursor で作る ローカル並列開発環境のススメ / ccc local dev
kaelaela
12
7.2k
Git Sync を超える!OSS で実現する CDK Pull 型デプロイ / Deploying CDK with PipeCD in Pull-style
tkikuc
4
390
Model Pollution
hschwentner
1
160
Claude Code で Astro blog を Pages から Workers へ移行してみた
codehex
0
120
Featured
See All Featured
Git: the NoSQL Database
bkeepers
PRO
431
65k
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
3.9k
Gamification - CAS2011
davidbonilla
81
5.4k
Building Adaptive Systems
keathley
43
2.7k
A Modern Web Designer's Workflow
chriscoyier
695
190k
Embracing the Ebb and Flow
colly
86
4.8k
How STYLIGHT went responsive
nonsquared
100
5.6k
Bootstrapping a Software Product
garrettdimon
PRO
307
110k
For a Future-Friendly Web
brad_frost
179
9.8k
Build The Right Thing And Hit Your Dates
maggiecrowley
37
2.8k
Writing Fast Ruby
sferik
628
62k
Art, The Web, and Tiny UX
lynnandtonic
300
21k
Transcript
Configuration Management Anti-Patterns Sam Kottler @samkottler Thursday, June 20, 13
Hi, I’m Sam Thursday, June 20, 13
Hi, I’m Sam Thursday, June 20, 13
Configuration management is great. Thursday, June 20, 13
I don’t really care which system you’re using. This talk
will feature Puppet & Chef Thursday, June 20, 13
Predictability Thursday, June 20, 13
Scalability Thursday, June 20, 13
Auditing Thursday, June 20, 13
Opinions lie within Thursday, June 20, 13
Thursday, June 20, 13
Build packages. Seriously, it’s worth it. Thursday, June 20, 13
/usr/bin/fpm -s gem -t rpm -n freight -v $VERSION -C
$TMP_DIR \ -d "dpkg" usr/local Thursday, June 20, 13
A quick diversion... Thursday, June 20, 13
rpmbuild -ba foo.spec mock foo-3.4.0-1.src.rpm Thursday, June 20, 13
dh_make git-buildpackage debuild-pbuilder Thursday, June 20, 13
Thursday, June 20, 13
And put them into repos. Thursday, June 20, 13
Use PPA’s or COPR’s. Thursday, June 20, 13
This is actually really easy to automate. Thursday, June 20,
13
Koji is your friend. Thursday, June 20, 13
I’m working on an OS agnostic solution. Talk to me
after if you want to help. Thursday, June 20, 13
Inline logic that includes parameters Thursday, June 20, 13
Thursday, June 20, 13
Thursday, June 20, 13
Thursday, June 20, 13
Thursday, June 20, 13
Lack of parameterization Thursday, June 20, 13
“Why would I ever want to change this?” Thursday, June
20, 13
Parameterized classes, hiera, and attributes Thursday, June 20, 13
Thursday, June 20, 13
Thursday, June 20, 13
Thursday, June 20, 13
Just look at the Opscode cookbooks And give Joshua Timberman
a hug. Thursday, June 20, 13
Storing plain-text secrets in your config management repos. Thursday, June
20, 13
Encrypted databags Thursday, June 20, 13
hiera-gpg Thursday, June 20, 13
Role decisions based on inventory values Thursday, June 20, 13
Thursday, June 20, 13
Thursday, June 20, 13
Thursday, June 20, 13
Thursday, June 20, 13
Thursday, June 20, 13
$ FACTER_physicalprocesscount=2 puppet agent -t $ chef-client -j “{ processors:
2 }” Thursday, June 20, 13
Don’t fear wrapper cookbooks or modules. Thursday, June 20, 13
Thursday, June 20, 13
Remember all those awesome abstractions? Thursday, June 20, 13
Stop putting upstream modules and cookbooks into your repos. Thursday,
June 20, 13
librarian-chef berkshelf Thursday, June 20, 13
Thursday, June 20, 13
Thursday, June 20, 13
librarian-puppet Thursday, June 20, 13
Don’t deploy with your configuration management tool Thursday, June 20,
13
Thursday, June 20, 13
Rollbacks? Revision management? Thursday, June 20, 13
Consistency? Phased rollouts? Thursday, June 20, 13
Thursday, June 20, 13
It’s a bug if you can’t run end-to-end provisioning in
a single run. Thursday, June 20, 13
Use a build system to run each type of machine
in an isolated environment LXC or schroot are great for doing this Thursday, June 20, 13
Deploy your configuration management tools just like production Thursday, June
20, 13
Questions? @samkottler
[email protected]
https://github.com/skottler Thursday, June 20, 13