46
Expanded Introduction to Puppet for DevOps Days 2011-08-28 Bangalore, India Garrett Honeycutt Professional Services Consultant [email protected] http://linkedin.com/in/garretthoneycutt

Slides from DevOps Days 2011 - Garret Honneycutt

Embed Size (px)

Citation preview

Page 1: Slides from DevOps Days 2011 - Garret Honneycutt

Expanded Introduction to Puppet

for DevOps Days2011-08-28

Bangalore, India

Garrett HoneycuttProfessional Services Consultant

[email protected]://linkedin.com/in/garretthoneycutt

Page 2: Slides from DevOps Days 2011 - Garret Honneycutt

The one-off myth

Your systems are not beautiful snowflakes

photo from http://beesknees67.deviantart.com/

Page 3: Slides from DevOps Days 2011 - Garret Honneycutt

The one-off myth

• Only temporary

Page 4: Slides from DevOps Days 2011 - Garret Honneycutt

The one-off myth

• Only temporary

• Replicas for pre-production environments

Page 5: Slides from DevOps Days 2011 - Garret Honneycutt

The one-off myth

• Only temporary

• Replicas for pre-production environments

• Disaster recovery

Page 6: Slides from DevOps Days 2011 - Garret Honneycutt

Why?

Page 7: Slides from DevOps Days 2011 - Garret Honneycutt

Why?

• reduce entropy

Page 8: Slides from DevOps Days 2011 - Garret Honneycutt

Why?

• reduce entropy• disaster recovery

Page 9: Slides from DevOps Days 2011 - Garret Honneycutt

Why?

• reduce entropy• disaster recovery• change management

Page 10: Slides from DevOps Days 2011 - Garret Honneycutt

Why?

• reduce entropy• disaster recovery• change management• infrastructure as code

Page 11: Slides from DevOps Days 2011 - Garret Honneycutt

Puppet Open Source Ecosystem

3,000 person mailing list 2,000 messages a month

300 people at all times in IRC (#puppet on freenode.net)

Puppet DistributionBundled with major OS !

100+ people contributing to documentation

and code

Puppet Community Active participation !

Puppet Contributors Framework enhancements !

100+ modules contributed to Puppet Module

Forge

Page 12: Slides from DevOps Days 2011 - Garret Honneycutt

Operating System Support

Linux Red Hat Fedora CentOS Ubuntu Debian SuSE

Unix Solaris OS X AIX

HP-UX OpenBSD

Other

Windows (2011)

Page 13: Slides from DevOps Days 2011 - Garret Honneycutt

Puppet EnterpriseWhat it is:• Puppet and related components packaged and

integrated in one install:• Puppet• Puppet Master• Dashboard• Facter• Ruby• Apache• Passenger, etc.

Page 14: Slides from DevOps Days 2011 - Garret Honneycutt

Puppet Enterprise

• Fully QA’d stack of Puppet and dependencies• Simplified installation• Ease of maintenance• Pre-configured for scalability and performance• Predictable enhancement delivery• Enhanced enterprise class Support

Page 15: Slides from DevOps Days 2011 - Garret Honneycutt

Puppet Enterprise

What you can expect in the future:• Pre-loaded set of commonly used modules• Direct integration with public module-forge• Support for additional platforms• Integration with MCollective

Page 16: Slides from DevOps Days 2011 - Garret Honneycutt

Financial

TechnologyEntertainmentWeb

Defense

Puppet is Pervasive

Page 17: Slides from DevOps Days 2011 - Garret Honneycutt

How Puppet Works

Define: !"#$%&'(()#*+%,)-./0/#"1)%% ./23'/3)%45'%,)+"32%/%30/($%56%0)./#"52+$"(+%7)#8))2%0)+5'0-)+%8"#$"2%0)'+/7.)%95,'.)+:%;$)+)%95,'.)+%,)6"2)%45'0%"260/+#0'-#'0)%"2%"#+%,)+"0),%+#/#):

1

Simulate:%!"#$%#$"+%0)+5'0-)%% 30/($<%&'(()#%"+%'2"=')%"2%"#+%/7"."#4%#5%+"9'./#)%,)(.549)2#+<%)2/7."23%45'%#5%#)+#%-$/23)+%8"#$5'#%,"+0'(#"52%#5%45'0%"260/+#0'-#'0):

2

% Enforce:%&'(()#%-59(/0)+%45'0%% +4+#)9%#5%#$)%,)+"0),%+#/#)%/+%45'%,)6"2)%"#<%/2,%/'#59/#"-/..4%)2650-)+%"#%#5%#$)%,)+"0),%+#/#)%)2+'0"23%45'0%+4+#)9%"+%"2%-59(."/2-):

3

% Report: &'(()#%>/+$75/0,%0)(50#+%% #0/-?%0)./#"52+$"(+%7)#8))2%-59(52)2#+%/2,%/..%-$/23)+<%/..58"23%45'%#5%?))(%'(%8"#$%+)-'0"#4%/2,%-59(."/2-)%9/2,/#)+:%@2,%8"#$%#$)%5()2%@&A%45'%-/2%"2#)30/#)%&'(()#%8"#$%#$"0,%(/0#4%952"#50"23%#55.+:

4

>BCADB>C;@;B

EFDDBG;C;@;B

A;BD@;B%@G>%AGEDB@

CB%EHIBD@

JB

Page 18: Slides from DevOps Days 2011 - Garret Honneycutt

Multi Node

Use Puppet to create composable configurations and manage the enterprise infrastructure

Define Your Resources in Modules. ! "#$%!&'(()$*!+,'!-).#/)!+,'0!1,-'2)3!4+!/,-)!52633#.#56$#,/3*!3'5%!63!")4!7)08)0!,0!96$6463)*!622,:#/;!+,'!$,!-).#/)!0)26$#,/3%#(3!4)$:))/!0)3,'05)3!6/-!5,/.#;'0)!$%,'36/-3!,.!3)08)03!6$!,/5)<!

1

Assign resource relationships automatically.!! =,'!56/!$%)/!633#;/!6/-!-)(2,+!5,/.#;'06$#,/3!8#6!&'(()$!963%4,60-*!,0!:#$%!+,'0!,:/!5'3$,1#>)-!?@9A!$,,23<

Via Puppet Dashboard

CustomExternal Source

(CMDB, LDAP, etc.)

2

Reusable, composable configurations. !! "#$%!&'(()$!+,'!56/!0)B'3)!1,-'2)3!650,33!1'2$#(2)!/,-)3*!#/!:%6$)8)0!5,14#/6$#,/!+,'!/))-*!0)-'5#/;!0)()$#$#8)!$63C3!6/-!)2#1#/6$#/;!)00,0B(0,/)!350#($3<!

3

"DA!7DEFDE7 9GHGAG7D!7DEFDE7 G&&IJ?GHJKL!7DEFDE7

LK9D

LK9D LK9D

LK9D LK9D

LK9D

9GHGAG7D "DA!7DEFDE G&&!7DEFDE 7D?MEJH=Mod

ules

Page 19: Slides from DevOps Days 2011 - Garret Honneycutt

Puppet Assigns and Maintains a Node’s Desired Role

Page 20: Slides from DevOps Days 2011 - Garret Honneycutt

Managing Configuration Drift

Page 21: Slides from DevOps Days 2011 - Garret Honneycutt

How Puppet Manages Data Flow for Individual Nodes

Facts!"#$%&'#$(#%'($%&)*+,-.#'$'+/+$+0&1/$-/(#,2$/&$/"#$3144#/$5+(/#)6

1

Catalog3144#/$1(#($/"#$7+8/($/&8&*4-,#$+$9+/+,&:$/"+/(4#8-2-#($"&;$/"#$%&'#("&1,'$0#$8&%2-:1)#'6

2

Report8+%$+,(&$(#%'$'+/+$/&$/"-)'$4+)/<$/&&,(6

4

Report!"#$%&'#$)#4&)/($0+8=$/&$3144#/$-%'-8+/-%:$/"#$8&%2-:1)+/-&%$-($8&*4,#/#>$;"-8"$-($?-(-0,#$-%$/"#$3144#/$@+("0&+)'6

3

Report CollectorA3144#/$&)$B)'$4+)/<$/&&,C

Node

PuppetMaster

SSL secure encryption on all data transport

Page 22: Slides from DevOps Days 2011 - Garret Honneycutt

Facts

Automatically Maintained Asset

Inventory

Page 23: Slides from DevOps Days 2011 - Garret Honneycutt

domain => localfacterversion => 1.5.8fqdn => sliver.localhardwaremodel => i386hostname => sliverinterfaces => lo0,gif0,stf0,en0,en1,fw0,vmnet1,vboxnet0ipaddress => 192.168.174.1ipaddress_lo0 => 127.0.0.1ipaddress_vmnet1 => 192.168.174.1kernel => Darwinkernelmajversion => 10.6kernelrelease => 10.6.0macosx_productname => Mac OS Xmacosx_productversion => 10.6.6netmask => 255.255.255.0netmask_lo0 => 255.0.0.0netmask_vmnet1 => 255.255.255.0network_lo0 => 127.0.0.0network_vmnet1 => 192.168.174.0operatingsystem => Darwinoperatingsystemrelease => 10.6.0path => /opt/local/bin:/opt/local/sbin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin:/Users/gh/bin:/Users/gh/.gem/ruby/1.8/bin/ps => ps auxwwwpuppetversion => 2.6.4rubysitedir => /opt/local/lib/ruby/site_ruby/1.8timezone => PSTuptime => 1 dayrubyversion => 1.8.7sp_bus_speed => 1.07 GHz

Page 24: Slides from DevOps Days 2011 - Garret Honneycutt

Custom Facts

Page 25: Slides from DevOps Days 2011 - Garret Honneycutt

How Puppet Manages Data Flow for Individual Nodes

Facts!"#$%&'#$(#%'($%&)*+,-.#'$'+/+$+0&1/$-/(#,2$/&$/"#$3144#/$5+(/#)6

1

Catalog3144#/$1(#($/"#$7+8/($/&8&*4-,#$+$9+/+,&:$/"+/(4#8-2-#($"&;$/"#$%&'#("&1,'$0#$8&%2-:1)#'6

2

Report8+%$+,(&$(#%'$'+/+$/&$/"-)'$4+)/<$/&&,(6

4

Report!"#$%&'#$)#4&)/($0+8=$/&$3144#/$-%'-8+/-%:$/"#$8&%2-:1)+/-&%$-($8&*4,#/#>$;"-8"$-($?-(-0,#$-%$/"#$3144#/$@+("0&+)'6

3

Report CollectorA3144#/$&)$B)'$4+)/<$/&&,C

Node

PuppetMaster

SSL secure encryption on all data transport

Page 26: Slides from DevOps Days 2011 - Garret Honneycutt

Catalog

• Automatically maintained comprehensive resource list

• Easily validated against compliance requirements prior to client configuration

Page 27: Slides from DevOps Days 2011 - Garret Honneycutt

How Puppet Manages Data Flow for Individual Nodes

Facts!"#$%&'#$(#%'($%&)*+,-.#'$'+/+$+0&1/$-/(#,2$/&$/"#$3144#/$5+(/#)6

1

Catalog3144#/$1(#($/"#$7+8/($/&8&*4-,#$+$9+/+,&:$/"+/(4#8-2-#($"&;$/"#$%&'#("&1,'$0#$8&%2-:1)#'6

2

Report8+%$+,(&$(#%'$'+/+$/&$/"-)'$4+)/<$/&&,(6

4

Report!"#$%&'#$)#4&)/($0+8=$/&$3144#/$-%'-8+/-%:$/"#$8&%2-:1)+/-&%$-($8&*4,#/#>$;"-8"$-($?-(-0,#$-%$/"#$3144#/$@+("0&+)'6

3

Report CollectorA3144#/$&)$B)'$4+)/<$/&&,C

Node

PuppetMaster

SSL secure encryption on all data transport

Page 28: Slides from DevOps Days 2011 - Garret Honneycutt

Report

• Comprehensive report of every change ever made, correlated to every resource being managed

• Easily validated against compliance requirements after reach run

Page 29: Slides from DevOps Days 2011 - Garret Honneycutt

Report

•http•log•store•tagmail

Page 30: Slides from DevOps Days 2011 - Garret Honneycutt

Report

Page 31: Slides from DevOps Days 2011 - Garret Honneycutt

What not How

Page 32: Slides from DevOps Days 2011 - Garret Honneycutt

What not how

Page 33: Slides from DevOps Days 2011 - Garret Honneycutt

Example Resource Types• cron

• exec

• file

• group

• host

• zfs

• mount

• package

• service

• sshkey

• user

Page 34: Slides from DevOps Days 2011 - Garret Honneycutt

Package-File-Service

Page 35: Slides from DevOps Days 2011 - Garret Honneycutt

File Serving

Page 36: Slides from DevOps Days 2011 - Garret Honneycutt

Templates

Page 37: Slides from DevOps Days 2011 - Garret Honneycutt

Templates - Advanced

Page 38: Slides from DevOps Days 2011 - Garret Honneycutt

Syntax Checking

Page 39: Slides from DevOps Days 2011 - Garret Honneycutt

Storeconfigs Ability to pass data between nodes, via a database acting as a proxy

Page 40: Slides from DevOps Days 2011 - Garret Honneycutt

Storeconfigs Ability to pass data between nodes, via a database acting as a proxy

• MySQL• SQLite3• PostgreSQL• Oracle

Page 41: Slides from DevOps Days 2011 - Garret Honneycutt

Storeconfigs

Page 42: Slides from DevOps Days 2011 - Garret Honneycutt

External Node Classifier

•Puppet Dashboard

•Your own CMDB

Page 43: Slides from DevOps Days 2011 - Garret Honneycutt

External Node Classifier

A script that takes $certname as an argument and outputs YAML to STDOUT

Page 44: Slides from DevOps Days 2011 - Garret Honneycutt

External Node Classifier

Page 45: Slides from DevOps Days 2011 - Garret Honneycutt

External Node Classifier

Page 46: Slides from DevOps Days 2011 - Garret Honneycutt

Expanded Introduction to Puppet

for DevOps Days2011-08-28

Bangalore, India

Garrett HoneycuttProfessional Services Consultant

[email protected]://linkedin.com/in/garretthoneycutt