![Page 1: Continuous Delivery of Puppet-Based Infrastructure - PuppetConf 2014](https://reader033.vdocuments.site/reader033/viewer/2022060117/55874165d8b42aae5d8b45ca/html5/thumbnails/1.jpg)
Continuously deploying
infrastructure with Puppet
Sam Kottler @samkottler
https://github.com/skottler [email protected]
![Page 2: Continuous Delivery of Puppet-Based Infrastructure - PuppetConf 2014](https://reader033.vdocuments.site/reader033/viewer/2022060117/55874165d8b42aae5d8b45ca/html5/thumbnails/2.jpg)
![Page 3: Continuous Delivery of Puppet-Based Infrastructure - PuppetConf 2014](https://reader033.vdocuments.site/reader033/viewer/2022060117/55874165d8b42aae5d8b45ca/html5/thumbnails/3.jpg)
Why do all (suddenly) seem to Care about
this thing?
![Page 4: Continuous Delivery of Puppet-Based Infrastructure - PuppetConf 2014](https://reader033.vdocuments.site/reader033/viewer/2022060117/55874165d8b42aae5d8b45ca/html5/thumbnails/4.jpg)
Deliverability
![Page 5: Continuous Delivery of Puppet-Based Infrastructure - PuppetConf 2014](https://reader033.vdocuments.site/reader033/viewer/2022060117/55874165d8b42aae5d8b45ca/html5/thumbnails/5.jpg)
“Changeability”
![Page 6: Continuous Delivery of Puppet-Based Infrastructure - PuppetConf 2014](https://reader033.vdocuments.site/reader033/viewer/2022060117/55874165d8b42aae5d8b45ca/html5/thumbnails/6.jpg)
Immutability for stateless services
!(more on that later)
![Page 7: Continuous Delivery of Puppet-Based Infrastructure - PuppetConf 2014](https://reader033.vdocuments.site/reader033/viewer/2022060117/55874165d8b42aae5d8b45ca/html5/thumbnails/7.jpg)
The “what” is just a subset of the “How”
![Page 8: Continuous Delivery of Puppet-Based Infrastructure - PuppetConf 2014](https://reader033.vdocuments.site/reader033/viewer/2022060117/55874165d8b42aae5d8b45ca/html5/thumbnails/8.jpg)
Images
![Page 9: Continuous Delivery of Puppet-Based Infrastructure - PuppetConf 2014](https://reader033.vdocuments.site/reader033/viewer/2022060117/55874165d8b42aae5d8b45ca/html5/thumbnails/9.jpg)
Packages
![Page 10: Continuous Delivery of Puppet-Based Infrastructure - PuppetConf 2014](https://reader033.vdocuments.site/reader033/viewer/2022060117/55874165d8b42aae5d8b45ca/html5/thumbnails/10.jpg)
appliances
![Page 11: Continuous Delivery of Puppet-Based Infrastructure - PuppetConf 2014](https://reader033.vdocuments.site/reader033/viewer/2022060117/55874165d8b42aae5d8b45ca/html5/thumbnails/11.jpg)
Environments
![Page 12: Continuous Delivery of Puppet-Based Infrastructure - PuppetConf 2014](https://reader033.vdocuments.site/reader033/viewer/2022060117/55874165d8b42aae5d8b45ca/html5/thumbnails/12.jpg)
Configuration is the heart of the
build process
![Page 13: Continuous Delivery of Puppet-Based Infrastructure - PuppetConf 2014](https://reader033.vdocuments.site/reader033/viewer/2022060117/55874165d8b42aae5d8b45ca/html5/thumbnails/13.jpg)
Immutability
![Page 14: Continuous Delivery of Puppet-Based Infrastructure - PuppetConf 2014](https://reader033.vdocuments.site/reader033/viewer/2022060117/55874165d8b42aae5d8b45ca/html5/thumbnails/14.jpg)
Stateless systems often do hold some
form of state
![Page 15: Continuous Delivery of Puppet-Based Infrastructure - PuppetConf 2014](https://reader033.vdocuments.site/reader033/viewer/2022060117/55874165d8b42aae5d8b45ca/html5/thumbnails/15.jpg)
There are still (lots of) unsolved problems around
orchestration
![Page 16: Continuous Delivery of Puppet-Based Infrastructure - PuppetConf 2014](https://reader033.vdocuments.site/reader033/viewer/2022060117/55874165d8b42aae5d8b45ca/html5/thumbnails/16.jpg)
The result is sometimes Binary
![Page 17: Continuous Delivery of Puppet-Based Infrastructure - PuppetConf 2014](https://reader033.vdocuments.site/reader033/viewer/2022060117/55874165d8b42aae5d8b45ca/html5/thumbnails/17.jpg)
Single Node convergence
![Page 18: Continuous Delivery of Puppet-Based Infrastructure - PuppetConf 2014](https://reader033.vdocuments.site/reader033/viewer/2022060117/55874165d8b42aae5d8b45ca/html5/thumbnails/18.jpg)
Production is generally Composed of many different
roles
![Page 19: Continuous Delivery of Puppet-Based Infrastructure - PuppetConf 2014](https://reader033.vdocuments.site/reader033/viewer/2022060117/55874165d8b42aae5d8b45ca/html5/thumbnails/19.jpg)
The pinnacle of infrastructure
integration is multi-node orchestration
![Page 20: Continuous Delivery of Puppet-Based Infrastructure - PuppetConf 2014](https://reader033.vdocuments.site/reader033/viewer/2022060117/55874165d8b42aae5d8b45ca/html5/thumbnails/20.jpg)
![Page 21: Continuous Delivery of Puppet-Based Infrastructure - PuppetConf 2014](https://reader033.vdocuments.site/reader033/viewer/2022060117/55874165d8b42aae5d8b45ca/html5/thumbnails/21.jpg)
![Page 22: Continuous Delivery of Puppet-Based Infrastructure - PuppetConf 2014](https://reader033.vdocuments.site/reader033/viewer/2022060117/55874165d8b42aae5d8b45ca/html5/thumbnails/22.jpg)
But what about isolation?
![Page 23: Continuous Delivery of Puppet-Based Infrastructure - PuppetConf 2014](https://reader033.vdocuments.site/reader033/viewer/2022060117/55874165d8b42aae5d8b45ca/html5/thumbnails/23.jpg)
Deliverables
![Page 24: Continuous Delivery of Puppet-Based Infrastructure - PuppetConf 2014](https://reader033.vdocuments.site/reader033/viewer/2022060117/55874165d8b42aae5d8b45ca/html5/thumbnails/24.jpg)
Humans are bad at repetitive tasks
![Page 25: Continuous Delivery of Puppet-Based Infrastructure - PuppetConf 2014](https://reader033.vdocuments.site/reader033/viewer/2022060117/55874165d8b42aae5d8b45ca/html5/thumbnails/25.jpg)
Does it work?
![Page 26: Continuous Delivery of Puppet-Based Infrastructure - PuppetConf 2014](https://reader033.vdocuments.site/reader033/viewer/2022060117/55874165d8b42aae5d8b45ca/html5/thumbnails/26.jpg)
rspec-puppet
![Page 27: Continuous Delivery of Puppet-Based Infrastructure - PuppetConf 2014](https://reader033.vdocuments.site/reader033/viewer/2022060117/55874165d8b42aae5d8b45ca/html5/thumbnails/27.jpg)
Beaker
![Page 28: Continuous Delivery of Puppet-Based Infrastructure - PuppetConf 2014](https://reader033.vdocuments.site/reader033/viewer/2022060117/55874165d8b42aae5d8b45ca/html5/thumbnails/28.jpg)
puppet agent -t
![Page 29: Continuous Delivery of Puppet-Based Infrastructure - PuppetConf 2014](https://reader033.vdocuments.site/reader033/viewer/2022060117/55874165d8b42aae5d8b45ca/html5/thumbnails/29.jpg)
How do we get it live?
![Page 30: Continuous Delivery of Puppet-Based Infrastructure - PuppetConf 2014](https://reader033.vdocuments.site/reader033/viewer/2022060117/55874165d8b42aae5d8b45ca/html5/thumbnails/30.jpg)
Capistrano
![Page 31: Continuous Delivery of Puppet-Based Infrastructure - PuppetConf 2014](https://reader033.vdocuments.site/reader033/viewer/2022060117/55874165d8b42aae5d8b45ca/html5/thumbnails/31.jpg)
r10k
![Page 32: Continuous Delivery of Puppet-Based Infrastructure - PuppetConf 2014](https://reader033.vdocuments.site/reader033/viewer/2022060117/55874165d8b42aae5d8b45ca/html5/thumbnails/32.jpg)
Kafo
![Page 33: Continuous Delivery of Puppet-Based Infrastructure - PuppetConf 2014](https://reader033.vdocuments.site/reader033/viewer/2022060117/55874165d8b42aae5d8b45ca/html5/thumbnails/33.jpg)
…In production
Does it Work?
![Page 34: Continuous Delivery of Puppet-Based Infrastructure - PuppetConf 2014](https://reader033.vdocuments.site/reader033/viewer/2022060117/55874165d8b42aae5d8b45ca/html5/thumbnails/34.jpg)
Run puppet via monitoring systems
![Page 35: Continuous Delivery of Puppet-Based Infrastructure - PuppetConf 2014](https://reader033.vdocuments.site/reader033/viewer/2022060117/55874165d8b42aae5d8b45ca/html5/thumbnails/35.jpg)
is it Proper?
![Page 36: Continuous Delivery of Puppet-Based Infrastructure - PuppetConf 2014](https://reader033.vdocuments.site/reader033/viewer/2022060117/55874165d8b42aae5d8b45ca/html5/thumbnails/36.jpg)
puppet-lint
![Page 37: Continuous Delivery of Puppet-Based Infrastructure - PuppetConf 2014](https://reader033.vdocuments.site/reader033/viewer/2022060117/55874165d8b42aae5d8b45ca/html5/thumbnails/37.jpg)
Recap!
![Page 38: Continuous Delivery of Puppet-Based Infrastructure - PuppetConf 2014](https://reader033.vdocuments.site/reader033/viewer/2022060117/55874165d8b42aae5d8b45ca/html5/thumbnails/38.jpg)
Integrate!
![Page 39: Continuous Delivery of Puppet-Based Infrastructure - PuppetConf 2014](https://reader033.vdocuments.site/reader033/viewer/2022060117/55874165d8b42aae5d8b45ca/html5/thumbnails/39.jpg)
Validate!
![Page 40: Continuous Delivery of Puppet-Based Infrastructure - PuppetConf 2014](https://reader033.vdocuments.site/reader033/viewer/2022060117/55874165d8b42aae5d8b45ca/html5/thumbnails/40.jpg)
deliver it!