10 things i wish i'd known when i started using puppet

28
10 Things I Wish I’d Known When I Started Using Puppet Paul Anderson [email protected]

Upload: paul-anderson

Post on 13-Apr-2017

198 views

Category:

Software


0 download

TRANSCRIPT

Page 1: 10 Things I Wish I'd Known When I Started Using Puppet

10 ThingsI Wish I’d Known When I Started Using Puppet

Paul Anderson [email protected]

Page 2: 10 Things I Wish I'd Known When I Started Using Puppet

% facter paul

Alliteration => “Affirmative” }

Top500 => “7 systems”,

SME => [ “HPC”, “Supercomputing” ],

Puppet_employee => “9 months”,Puppet_user => “2 years”,

Consultant => “10 years”,{ Admin => “21 years”,

Page 3: 10 Things I Wish I'd Known When I Started Using Puppet

1. Puppet Projects, POCs and Pilots get Pressed into Production

Page 4: 10 Things I Wish I'd Known When I Started Using Puppet

Plan for Production

Page 5: 10 Things I Wish I'd Known When I Started Using Puppet

2. Puppet Code is Powerful“With great power comes great responsibility”

- Uncle Ben Parker

Page 6: 10 Things I Wish I'd Known When I Started Using Puppet

6

With Puppet You Get:

Beware the siren call of the exec resource!

Desired State Model

Fact-based Configuration Management

System State Information

Reporting & Audit Trails

Catalog Idempotency

Consistent Additive Improvement

Page 7: 10 Things I Wish I'd Known When I Started Using Puppet

3. No Obfuscated Puppet CodeBrilliant Puppet code is easy to read, not indecipherable…Don’t get stuck maintaining your codebase forever

Page 8: 10 Things I Wish I'd Known When I Started Using Puppet
Page 9: 10 Things I Wish I'd Known When I Started Using Puppet
Page 10: 10 Things I Wish I'd Known When I Started Using Puppet

CONFIDENTIAL – IF NOT, DELETE THIS LINE

4. Start with focus on timeFree yourself up to tackle bigger challenges

Page 11: 10 Things I Wish I'd Known When I Started Using Puppet

1. Quick ROI2. Free up time3. Build Trust

(Then comes Oracle, Websphere, etc.)

Page 12: 10 Things I Wish I'd Known When I Started Using Puppet

5. Start with what you knowDon’t learn puppet at the same time you’re learning new tech

Page 13: 10 Things I Wish I'd Known When I Started Using Puppet

case $equus {

‘horse’: { include puppet }

‘zebra’: { include admin }

}

Page 14: 10 Things I Wish I'd Known When I Started Using Puppet

14

6. Use Abstraction WellArchitect your codebase so it scales and is maintainable

Page 15: 10 Things I Wish I'd Known When I Started Using Puppet

Roles and Profiles

Server = $$$

Role Module

Profile Module

Component Module

Class

Resources

Page 16: 10 Things I Wish I'd Known When I Started Using Puppet

16

7. Facts Steer the Catalog(and sometimes the other way around)

Page 17: 10 Things I Wish I'd Known When I Started Using Puppet

Facts Steer the Catalog

Page 18: 10 Things I Wish I'd Known When I Started Using Puppet

Facts Steer the Catalog

Agent (Facts) Master (Catalog)

Custom facts:java_version => “1.7.0_60”

if versioncmp($java_version, ‘1.8.0’) < 0 {include java_updater

}

class java_updater {installers, execs, purges, hardening, etc.}

Page 19: 10 Things I Wish I'd Known When I Started Using Puppet

8. Put a Version on it!

Page 20: 10 Things I Wish I'd Known When I Started Using Puppet

Put a Version on it!Check everything into VCS

Work with Packages

Use r10k with Control Repo and Env.

Tarballs – jordansissel/fpmWindows – good ol’ choco?

Clear, predictable workflowAdd process/people to scale

Promotes Transparency and Trust

Page 21: 10 Things I Wish I'd Known When I Started Using Puppet

21

9. Organizational Change is Difficult

Page 22: 10 Things I Wish I'd Known When I Started Using Puppet

22

“There’s no better way to overpower a trickle of doubt than with a flood of naked truth”

- Frank Underwood

Page 23: 10 Things I Wish I'd Known When I Started Using Puppet

23

Simulate

Communicate

Enable

Page 24: 10 Things I Wish I'd Known When I Started Using Puppet

CONFIDENTIAL – IF NOT, DELETE THIS LINE

10. You’re not alone!The community and Puppet team have your back!

Page 25: 10 Things I Wish I'd Known When I Started Using Puppet

• Look left, look right, 3/3 of you are interested in Puppet

• Ask.puppet.com

• Learn.puppet.com (self-paced training)

• Forge.puppet.com

• #puppet on freenode

• https://www.youtube.com/user/PuppetLabsInc

• @puppetize

• Voxpupuli.org

• https://groups.google.com/forum/#!forum/puppet-users

• https://puppetcommunity.slack.com/

Page 26: 10 Things I Wish I'd Known When I Started Using Puppet

26

Questions?

Page 27: 10 Things I Wish I'd Known When I Started Using Puppet
Page 28: 10 Things I Wish I'd Known When I Started Using Puppet

root@localhost:/etc/sysctl.d# facter networking.interfaces.eth0{ bindings => [ { address => "10.0.2.15", netmask => "255.255.255.0", network => "10.0.2.0" } ], bindings6 => [ { … } ], dhcp => "10.0.2.2", ip => "10.0.2.15",…}

Facter: networking.interfaces.eth0.ipPP: ${::facts[networking][interfaces][eth0][ip]}ERB: <%= @facts['networking']['interfaces']['eth0']['ip'] %>