1. Getting it right from the start with Puppet
Modern Infrastructure
From Scratch
2. Senior DevOps Engineer at Ecetera
simon.kp@ecetera.com.au
eskp almost everywhere else
Who am I
3. Overview
● Define, model and provision new infrastructure
● Establish an efficient development workflow
● Get familiar with some of the Puppet concepts
7. The code
Two repositories:
● Vagrant repo https://github.com/Ecetera/puppet-vagrant
● Control repo https://github.com/Ecetera/puppet-control
8. Puppet Roles & Profiles
Resources > Classes > Modules > Profiles > Role > Node
Allow the business to manage how the infrastructure
looks without defining what it is
Data is abstracted by Hiera
15. Look for modules
● Puppet Labs approved and supported
● Lots of downloads
● No weird dependencies
● Documentation
● Source is on Github
16. Module Deployment
r10k - manages modules defined in Puppetfile
Deploys Puppet’s dynamic directory environments
based on puppet-control repo’s git branches
Does not resolve modules dependencies
17. Puppetfile
mod ‘puppetlabs/ntp’, ‘3.2.1’
mod ‘rabbitmq’,
:git => https://github.com/puppetlabs/puppetlabs-rabbitmq.git,
:commit => '15e2421048a3495e60482837910441a1248bf6f0'
...
18. Demonstration
http://puppet.eskp.net:5000 Puppetboard view of Puppet
infrastructure
http://control.eskp.net:9090 Jenkins
http://log.eskp.net Kibana dashboard for centralised logs access
http://mon.eskp.net:3000 Uchiwa dashboard overview of Sensu
19. Todo
● Write infrastructure tests
● Address scale
● Provision with puppetlabs-aws module
● Upgrade to Puppet 4