Lock in $30 Savings on PRO—Offer Ends Soon! ⏳
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
290
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
240
Other Decks in Programming
See All in Programming
dnx で実行できるコマンド、作ってみました
tomohisa
0
140
FluorTracer / RayTracingCamp11
kugimasa
0
220
テストやOSS開発に役立つSetup PHP Action
matsuo_atsushi
0
150
生成AIを利用するだけでなく、投資できる組織へ
pospome
1
250
「コードは上から下へ読むのが一番」と思った時に、思い出してほしい話
panda728
PRO
38
25k
C-Shared Buildで突破するAI Agent バックテストの壁
po3rin
0
380
30分でDoctrineの仕組みと使い方を完全にマスターする / phpconkagawa 2025 Doctrine
ttskch
3
800
Full-Cycle Reactivity in Angular: SignalStore mit Signal Forms und Resources
manfredsteyer
PRO
0
200
ID管理機能開発の裏側 高速にSaaS連携を実現したチームのAI活用編
atzzcokek
0
210
全員アーキテクトで挑む、 巨大で高密度なドメインの紐解き方
agatan
8
20k
エディターってAIで操作できるんだぜ
kis9a
0
710
AIの誤りが許されない業務システムにおいて“信頼されるAI” を目指す / building-trusted-ai-systems
yuya4
6
2.6k
Featured
See All Featured
Writing Fast Ruby
sferik
630
62k
A designer walks into a library…
pauljervisheath
210
24k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
21
1.3k
Raft: Consensus for Rubyists
vanstee
141
7.2k
We Have a Design System, Now What?
morganepeng
54
7.9k
The World Runs on Bad Software
bkeepers
PRO
72
12k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
27k
How to Ace a Technical Interview
jacobian
280
24k
GitHub's CSS Performance
jonrohan
1032
470k
Code Review Best Practice
trishagee
74
19k
[RailsConf 2023] Rails as a piece of cake
palkan
58
6.1k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
141
34k
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