Continuously 
deploying 
infrastructure with 
Puppet 
Sam Kottler 
@samkottler 
https://github.com/skottler 
shk@linux.com
Why do all (suddenly) 
seem to Care about 
this thing?
Deliverability
“Changeability”
Immutability for 
stateless services 
! 
(more on that later)
The “what” is just a 
subset of the “How”
Images
Packages
appliances
Environments
Configuration is 
the heart of the 
build process
Immutability
Stateless systems 
often do hold some 
form of state
There are still 
(lots of) unsolved 
problems around 
orchestration
The result is 
sometimes Binary
Single Node 
convergence
Production is 
generally Composed 
of many different 
roles
The pinnacle of 
infrastructure 
integration is multi-node 
orchestration
But what about 
isolation?
Deliverables
Humans are bad at 
repetitive tasks
Does it work?
rspec-puppet
Beaker
puppet agent -t
How do we get it live?
Capistrano
r10k
Kafo
Does it Work? 
…In production
Run puppet via 
monitoring systems
is it Proper?
puppet-lint
Recap!
Integrate!
Validate!
deliver it!
Thanks! 
Sam Kottler 
@samkottler 
shk@linux.com 
https://github.com/skottler

Continuous Delivery of Puppet-Based Infrastructure - PuppetConf 2014