I’m currently planning a puppet workshop for my colleagues to introduce them into the world of puppet and code driven infrastructure.
Here is my current agenda:
- Why do I want configuration mangement, why do I want puppet?
- puppet (Configuration Management)
- puppet DSL
- puppet agent / master / server / db / forge /enterprise / collections / CA
- what is a resource (puppet resource user bla / puppet describe package)
- puppet as a unified initsystem and packagemanager
- puppetdb frontends ( 1, 2, 3)
- masterless vs cluster vs standalone
- communication between master und agent
- manifest vs class vs module
- defined resource
- exported resources
- params.pp pattern
- puppet module skeleton
- roles/profiles pattern
- environments
- r10k
- hiera
- jenkins-ci (1, 2, 3/) Puppet Community CI, travis CI or bamboo
- deploy pattern: okay => good => better => new tech => okay => good => better => repeat (expect the good and not the best, but repeat/iterate) (rnelson0)
- integration testing (different software versions)
- unit tests
- acceptance tests
- fast feedback is important (electrical)
- test the interface, not the code (at the bottom, by danzilio)
- 60% test code – 30% puppet code (Electrical – elasticsearch module)
- deploy changes at lunch time, kill a random node from time to time (köhntopp method)
- CD with r10k and hooks
- using PuppetDB in modules
- using PuppetDB via http
- Using PuppetDB via cli
- Using PuppetDB via irb/pry
- Live debugging with pry
generic useful links:
I’m currently fighting with the ordering of the topics. Also, did I miss anything important?
Pingback: Backing awesome Cookies (like a software engineer)! | the world needs more puppet!