Lock in $30 Savings on PRO—Offer Ends Soon! ⏳
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Docker Docker Docker Chef
Search
someara
February 02, 2016
Technology
0
480
Docker Docker Docker Chef
Configuration Management Camp
Ghent Belgium
February 2016
someara
February 02, 2016
Tweet
Share
More Decks by someara
See All by someara
Hand Crafted Artisinal Chef Resources
someara
0
590
Configuration Management Camp 2015
someara
1
550
Cookbook Reusability
someara
0
720
TDI with ChefDK 0.0.1
someara
2
870
Configuration Management 101 @ Scale12x
someara
2
870
Configuration Management 101
someara
3
770
Introduction to Chef - Scale 10x
someara
2
450
Introduction to Chef - NYLUG Jan 2012
someara
2
290
Introduction to Chef - LISA11
someara
10
6.1k
Other Decks in Technology
See All in Technology
Authlete で実装する MCP OAuth 認可サーバー #CIMD の実装を添えて
watahani
0
160
Building Serverless AI Memory with Mastra × AWS
vvatanabe
0
500
Oracle Database@Google Cloud:サービス概要のご紹介
oracle4engineer
PRO
1
760
20251222_サンフランシスコサバイバル術
ponponmikankan
2
140
AI時代のワークフロー設計〜Durable Functions / Step Functions / Strands Agents を添えて〜
yakumo
3
2.1k
Introduce marp-ai-slide-generator
itarutomy
0
110
ハッカソンから社内プロダクトへ AIエージェント ko☆shi 開発で学んだ4つの重要要素
leveragestech
0
120
「もしもデータ基盤開発で『強くてニューゲーム』ができたなら今の僕はどんなデータ基盤を作っただろう」
aeonpeople
0
240
re:Invent2025 3つの Frontier Agents を紹介 / introducing-3-frontier-agents
tomoki10
0
400
たまに起きる外部サービスの障害に備えたり備えなかったりする話
egmc
0
400
Microsoft Agent Frameworkの可観測性
tomokusaba
1
110
AIエージェント開発と活用を加速するワークフロー自動生成への挑戦
shibuiwilliam
4
840
Featured
See All Featured
Heart Work Chapter 1 - Part 1
lfama
PRO
3
35k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
128
55k
Taking LLMs out of the black box: A practical guide to human-in-the-loop distillation
inesmontani
PRO
3
2k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
141
34k
How to audit for AI Accessibility on your Front & Back End
davetheseo
0
120
JAMstack: Web Apps at Ludicrous Speed - All Things Open 2022
reverentgeek
1
290
Dominate Local Search Results - an insider guide to GBP, reviews, and Local SEO
greggifford
PRO
0
17
Organizational Design Perspectives: An Ontology of Organizational Design Elements
kimpetersen
PRO
0
44
Effective software design: The role of men in debugging patriarchy in IT @ Voxxed Days AMS
baasie
0
170
Primal Persuasion: How to Engage the Brain for Learning That Lasts
tmiket
0
190
Unsuck your backbone
ammeep
671
58k
svc-hook: hooking system calls on ARM64 by binary rewriting
retrage
1
27
Transcript
Docker Docker Docker Chef
Config Management Camp Ghent, Belgium February 2016
Sean OMeara
[email protected]
@someara
whoami
Part 1
Remember the time
Remember that time we didn’t need configuration management because we
had packaging?
Remember that time the cloud came out and we didn’t
need sysadmins?
Remember that time when we didn’t need schemas because we
had MongoDB?
Repeat after me
CONFIGURATION MANAGEMENT AND IMMUTABLE INFRASTRUCTURE ARE NOT MUTUALLY EXCLUSIVE
Say it again
CONFIGURATION MANAGEMENT AND IMMUTABLE INFRASTRUCTURE ARE NOT MUTUALLY EXCLUSIVE
We good?
The Docker cookbook
Configuration Management is not restricted to files, directories, packages and
services
Configuration Management tests and repairs any programmable noun
Images are nouns
Containers are nouns
hello world
https://flic.kr/p/br26Cb Setup v0.0.1
Install ChefDK
git clone https:// github.com/someara/chef- docker-tutorial
kitchen test
git checkout v0.0.1 git checkout v0.1.0 git checkout v0.1.1 git
checkout v0.2.0 git checkout v0.2.1 git checkout v0.3.0 git checkout v0.3.1
https://flic.kr/p/s684tk Feature v0.1.0
metadata.rb
.kitchen.yml
recipes/hello.rb
kitchen converge hello kitchen login hello docker images docker ps
-a docker logs hello-world
git add . git commit -a -m “v0.1.0 - hello”
git tag v0.1.0
https://flic.kr/p/53stX2 Patch v0.1.1
Bug report: “hello is not idempotent”
kitchen converge hello kitchen converge hello
kitchen login hello docker ps -a docker logs hello-world
hello-world exits after every run
This is expected!
http://gliderlabs.com/
recipes/hello.rb
rubocop \ && rspec \ && kitchen test hello
metadata.rb
git add . git commit -a -m “v0.1.1 - hello”
git tag v0.1.1
an echo server https://flic.kr/p/6WtX6X
https://flic.kr/p/s684tk Feature v0.2.0
Recipe work Kitchen work Behavior testing Unit Final Acceptance Commit
.kitchen.yml
recipes/echo.rb
Docker Containers have 40+ (and growing) runtime API options
None
kitchen converge echo kitchen converge echo kitchen login echo docker
images docker ps -a docker logs an_echo_server docker inspect an_echo_server echo "hi" | nc localhost 7
test/integration/echo/inspec/run_spec.rb
rubocop \ && rspec \ && kitchen test echo
metadata.rb
git add . git commit -a -m “v0.2.0 - echo”
git tag v0.2.0
https://flic.kr/p/dRGr3t Patch v0.2.1
Security team recommends a change… Service should listen on explicitly
defined interfaces
kitchen converge echo kitchen login echo netstat -anp
Listening on :::7 Let’s fix that.
recipes/echo.rb
test/integration/echo/inspec/run_spec.rb
rubocop \ && rspec \ && kitchen test echo
metadata.rb
git add . git commit -a -m “v0.2.1 - echo
patch” git tag v0.2.1
https://flic.kr/p/ayDujN notifications and subscriptions
https://flic.kr/p/cNdyo Feature v0.3.0
recipes/web.rb
recipes/web.rb
kitchen converge web kitchen converge web kitchen login web docker
images docker ps -a curl localhost docker logs bob
test/integration/web/inspec/run_spec.rb
rubocop \ && rspec \ && kitchen test web
metadata.rb
git add . git commit -a -m “v0.3.0 - web”
git tag v0.3.0
https://flic.kr/p/o9c2G3 Patch v0.3.1
Marketing team recommends a change… Bob wasn’t there.
kitchen converge web kitchen login web curl localhost
Bob was here. Let’s fix that.
recipes/web.rb
test/integration/echo/inspec/run_spec.rb
rubocop \ && rspec \ && kitchen test web
metadata.rb
git add . git commit -a -m “v0.3.1 - echo
patch” git tag v0.3.1
Part 2
kitchen-dokken http://on.mtv.com/1ls5SRc
Experimental status Soon to be renamed something less clever
Removes bootstrap overhead Uses Docker volumes Chef not baked into
images Works on Travis
https://github.com/someara/ kitchen-dokken/
Install ChefDK chef gem install kitchen-dokken
git clone https://github.com/ someara/hello_dokken
kitchen list docker ps -a
None
kitchen create docker ps -a
Chef container Data container Runner container
docker run \ —volumes-from chef \ —volumes-from data \ imagename
\ chef-client
docker diff suitename
https://travis-ci.org/ someara/etcd-cookbook
fin
None