rake puppetexpert:create - puppet camp silicon valley 2014
DESCRIPTION
Slides for the 'rake puppetexpert:create' presentation at Puppet Camp SiliconValley 2014TRANSCRIPT
rake puppetexpert:create
Nathan Valent ine
Professional Services Engineer - Puppet Labs
nathan@puppet labs.com
@nrvale0
Why am I here?
Managing Windows with Puppet?
Spooky action at a distance withMCollective!
Awesome sauce with Puppet + Docker?
Argh! Let me go to my corner and playwith my toys!
Let's play a game...
Easy"What is Puppet?" with basic examples
clever things others have done with Puppet
How to DevOps-ify your organization with Puppet as a core tool
More DifficultBeyond the basics, how do I become a Puppet expert?
Tons of resources! What's the progression?
Meta-learning
Meta-learningDeconstruction: "...minimum learnable units, the LEGO blocks..."
Selection: "Which 20% of the blocks?"
Sequencing: "In what order?"
** shamelessly stolen from Wikipedia and T4HC
Selection and Sequencing are important!
Let's focus onReview of available resources
Selection & Sequencing
BTW, this presentation linked from Twitter later today:
@nrvale0
Getting Started
The Usual Suspectspuppet-users mailing list:
http://goo.gl/dgvApa"Whoa, Nelly! That's a lot of email!"
#puppet on irc.freenode.net
Puppet Labs Learning Management Systemhttp://puppetlabs.com/learn
Puppet Enterprise Learning VMhttp://info.puppetlabs.com/download-learning-puppet-VM.html
Puppet Enterprise Traininghttp://puppetlabs.com/services/training
Pro Puppet, Second Editionhttp://goo.gl/SEjW6N
http://ask.puppetlabs.com
http://puppetlabs.com/blog
Twitter: @PuppetLabs
Oh, also...real people in The Real World!PuppetConf 2014 in San Francisco, CA!
PuppetCamps ( You must have figured this one out on your own. ;) )
Meetups
Puppet DSL Style
Validate Your Code$ ( cd mymodule && puppet parser validate `find ./ -name '*.pp'` )
very basic sanity check ( brackets, commas, etc)
doesn't check for valid attributes for the type
Style Guide Check$ sudo gem install puppet-lint && puppet-lint --with-filename ./mymodule
http://puppet-lint.com
very basic sanity check ( brackets, commas, quotes, etc )
doesn't check for valid attributes for the type
Puppet Style ProTipImplement logic which rejects submission of Puppet code code to your centralgit/SVN/etc repositories unless the code passes both 'puppet parser' and puppet-lint runs.
Online Puppet Lintpuppet-lint As A Service?
http://www.puppetlinter.com
And did you know it has a GitHub Post-Receive Hook?
http://www.puppetlinter.com/github
Roles and Profileshigher and higher levels of abstraction for Puppet code
first publicly proposed by Craig Dunn in:http://www.craigdunn.org/2012/05/239/
now taught as part of Puppet Labs training
roles composed of profiles
profiles composed of component modules (puppetlabs/apache)
Let's see some code...
Hierasource Puppet top-scopes and class parameters from multiple backends
YAML backend is most popular. Also JSON.
other backends allow non-coders to fiddle with data fed to pre-writtenmodules
CouchDB, MySQL, LDAP, etc - lots of Hiera backends in the community
Tooling (and retooling)
GitFor better or worse (Hg lovers), Git dominates in the Puppet community.
GitHub : enough said
BitBucket : http://bitbucket.orgfree private repos
'The Git Book' : http://git-scm.com/book
'Learn Git Branching' : http://pcottle.github.io/learnGitBranching/
New title: "First, learn Vagrant."
http://vagrantup.com
VagrantDisposable repeatable VMs with:
VirtualBox
VMWare
LXC
Docker
etc
Let's see some Vagrant magic!
Google these when you get home!librarian-puppet (cool) : https://github.com/rodjek/librarian-puppet
r10k (way cool) : https://github.com/adrienthebo/r10k
Google these too!vagrant-pe_build : https://github.com/adrienthebo/vagrant-pe_build
vagrant-oscar : https://github.com/adrienthebo/oscar
Thanks for listening! Feed back [email protected]