Puppet<br />AutomagicallyManageYour<br />Configuration<br />12/04/2010<br />Carla Souza<br />DevOps 2010 Brazil © Carla So...
12/04/2010<br />DevOps 2010 Brazil © Carla Souza<br />
12/04/2010<br />DevOps 2010 Brazil © Carla Souza<br />
12/04/2010<br />DevOps 2010 Brazil © Carla Souza<br />
Typical Sysadmin Job<br />Repetitive<br />Manual<br />Tedious<br />12/04/2010<br />DevOps 2010 Brazil © Carla Souza<br />
Typical Sysadmin Job<br />Installation<br />12/04/2010<br />DevOps 2010 Brazil © Carla Souza<br />
Typical Sysadmin Job<br />Installation<br />Configuration<br />12/04/2010<br />DevOps 2010 Brazil © Carla Souza<br />
Typical Sysadmin Job<br />Installation<br />Updates<br />Fixes<br />Audits<br />Configuration<br />12/04/2010<br />DevOps ...
Typical Sysadmin Job<br />Installation<br />Updates<br />Fixes<br />Audits<br />Configuration<br />12/04/2010<br />DevOps ...
After Configuration...<br />Whatwas itconfigured?<br />How?<br />Why?<br />12/04/2010<br />DevOps 2010 Brazil © Carla Souz...
After Configuration...<br />Whatwas itconfigured?<br />How?<br />Why?<br />WeneedDocumentation!<br />12/04/2010<br />DevOp...
Documentation<br />Whenwas it configured?<br />Who configured it?<br />What were the configuration's objectives?<br />12/0...
Documentation<br />Whenwas itconfigured?<br />Who configured it?<br />What were the configuration's objectives?<br />Becon...
After configuration...<br />Is it wellconfigured?<br />12/04/2010<br />DevOps 2010 Brazil © Carla Souza<br />
After configuration...<br />Is it wellconfigured?<br />Badconfiguration is worsethan no configuration<br />12/04/2010<br /...
After configuration...<br />Is it wellconfigured?<br />Badconfiguration is worsethen no configuration<br />Wemakemistakes!...
After configuration...<br />Is it wellconfigured?<br />Badconfiguration is worsethen no configuration<br />Wemakemistakes!...
Tests<br />Is the configuration correct?<br />Is it correctlyconfigured?<br />12/04/2010<br />DevOps 2010 Brazil © Carla S...
After Configuration...<br />How to ensurethat it willstayconfiguredcorrectly over time?<br />12/04/2010<br />DevOps 2010 B...
After Configuration...<br />How to ensure that it will stay configured correctly over time?<br />We need Maintenance!<br /...
Maintenance<br />Repetitive work<br />Every time yourepeatonejob, youwaste time<br />12/04/2010<br />DevOps 2010 Brazil © ...
Maintenance<br />Repetitive work<br />Every time you repeat onejob, you waste time<br />MONEY<br />12/04/2010<br />DevOps ...
Documentation + Tests + Maintenance<br />12/04/2010<br />DevOps 2010 Brazil © Carla Souza<br />
Documentation + Tests + Maintenance<br />=<br />Spend more time then you think<br />12/04/2010<br />DevOps 2010 Brazil © C...
Documentation + Tests + Maintenance<br />=<br />Spend more time then you think<br />=<br />Less time for real important wo...
The more applications I have<br />12/04/2010<br />DevOps 2010 Brazil © Carla Souza<br />
The more applications I have<br />=<br />More Risks<br />12/04/2010<br />DevOps 2010 Brazil © Carla Souza<br />
The more applications I have<br />=<br />More Risks<br />+<br />More need for documentation<br />12/04/2010<br />DevOps 20...
Cumulative Effect<br />The time left will be only for fire fighting<br />12/04/2010<br />DevOps 2010 Brazil © Carla Souza<...
Cumulative Effect<br />The time left will be only for fire fighting<br />Important  tasks will be left behind<br />12/04/2...
Cumulative Effect<br />The time left will be only for fire fighting<br />Important  tasks will be left behind<br />Backups...
Automation<br />Good admins write their own tools<br />12/04/2010<br />DevOps 2010 Brazil © Carla Souza<br />
Automation<br />Good admins write their own tools<br />Install:<br />Kickstart, jumpstart, imaging<br />Configuration + ma...
Automation tools<br />Great for ad-hoc or one time only tasks<br />Can be pushed out via cron<br />12/04/2010<br />DevOps ...
Automation tools<br />But do you always write scripts that are:<br />12/04/2010<br />DevOps 2010 Brazil © Carla Souza<br />
Automation tools<br />But do you always write scripts that are:<br />Concurrent safe?<br />Testable?<br />Reversible?<br /...
Wish list<br />Simple solutions<br />12/04/2010<br />DevOps 2010 Brazil © Carla Souza<br />
Wish list<br />Simplesolutions<br />ElegantDomainSpecificLanguage (DSL)<br />Manageyourserversbywritingcode, notrunningcom...
Wish list<br />Simplesolutions<br />Easy to extend<br />Selfdocumenting<br />Commercial support and trainning<br />Open so...
Puppet<br />A Puppet Labs product<br />Since 2005<br />Written in Ruby<br />Extensible by modules<br />Client-server archi...
Puppet<br />File server<br />SSL Certificates<br />Very active and helpful community<br />Mailing lists, #puppet @ freenod...
Puppet<br />12/04/2010<br />DevOps 2010 Brazil © Carla Souza<br />
Puppet<br />Installation<br />Updates<br />Fixes<br />Audits<br />Configuration<br />12/04/2010<br />DevOps 2010 Brazil © ...
Components<br />puppetmaster<br />Server daemon<br />Run as ‘puppet’ user<br />12/04/2010<br />DevOps 2010 Brazil © Carla ...
Components<br />puppetmaster<br />Server daemon<br />Run as ‘puppet’ user<br />puppetd<br />Client daemon<br />Run as root...
Components<br />puppetca<br />Puppet’s Certificate Authority<br />12/04/2010<br />DevOps 2010 Brazil © Carla Souza<br />
Components<br />puppetca<br />Puppet’s Certificate Authority<br />Facter<br />Gathers basic information about node’s hardw...
Elements<br />Types<br />A type is a particular element that Puppet knows how to configure<br />12/04/2010<br />DevOps 201...
Elements<br />Types<br />A type is a particular element that Puppet knows how to configure<br />Classes<br />A named colle...
Elements<br />Providers<br />Specific implementation of a given resource type<br />12/04/2010<br />DevOps 2010 Brazil © Ca...
Elements<br />Providers<br />Specific implementation of a given resource type<br />type: package<br />12/04/2010<br />DevO...
Elements<br />Providers<br />Specific implementation of a given resource type<br />type: package<br />providers: yum, dpkg...
Puppet’s installation<br />yum install puppet-server puppet<br />apt-get install puppetmaster puppet<br />gem install pupp...
Sample CodeInstall, Configure and Start Apache<br />12/04/2010<br />DevOps 2010 Brazil © Carla Souza<br />package {“httpd”...
Sample CodeResource Types<br />12/04/2010<br />DevOps 2010 Brazil © Carla Souza<br />package {“httpd”:<br />	ensure => pre...
Sample CodeResource Titles<br />12/04/2010<br />DevOps 2010 Brazil © Carla Souza<br />package {“httpd”:<br />	ensure => pr...
Sample CodeResources Parameters<br />12/04/2010<br />DevOps 2010 Brazil © Carla Souza<br />package {“httpd”:<br />ensure =...
Sample CodeResources Parameters<br />12/04/2010<br />DevOps 2010 Brazil © Carla Souza<br />package {“httpd”:<br />	ensure ...
Sample CodeResponding to change<br />12/04/2010<br />DevOps 2010 Brazil © Carla Souza<br />file{“/etc/httpd/conf/httpd.con...
Sample CodeResource collections<br />class apache {<br />	include apache::install<br />	include apache::config<br />	inclu...
Sample CodeResource collections<br />class apache {<br />	include apache::install<br />include apache::config<br />	includ...
Sample CodeResource collections<br />class apache {<br />	include apache::install<br />	include apache::config<br />includ...
Elements<br />Nodes<br />A configuration block matching a client<br />12/04/2010<br />DevOps 2010 Brazil © Carla Souza<br />
Sample CodeNodes configuration<br />node “web1.your.com” {<br />include apache<br />}<br />12/04/2010<br />DevOps 2010 Bra...
Elements<br />Templates<br />Apply code and variable substitution<br />Uses ERB<br />12/04/2010<br />DevOps 2010 Brazil © ...
Sample CodeTemplates<br />file{“/etc/httpd/conf.d/servertag.conf”:<br />	.<br />	.<br />	content => template(“apache/serve...
Sample CodeFile Source Selection<br />file{“/etc/httpd/conf/httpd.conf”:<br />	source  =>	[“puppet:///apache/httpd.conf.${...
Puppet<br />puppetlabs.com<br />github.com/puppetlabs<br />Follow me:<br />github.com/carlasouza<br />carla.asouza@gmail.c...
Thank you!<br />12/04/2010<br />DevOps 2010 Brazil © Carla Souza<br />
Upcoming SlideShare
Loading in …5
×

Puppet - Automagically Manage your Configuration

3,001 views

Published on

Puppet's presentation at DevOps Days Brasil
Dec 2010 @ São Paulo - SP

Published in: Technology
0 Comments
4 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
3,001
On SlideShare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
141
Comments
0
Likes
4
Embeds 0
No embeds

No notes for slide

Puppet - Automagically Manage your Configuration

  1. 1. Puppet<br />AutomagicallyManageYour<br />Configuration<br />12/04/2010<br />Carla Souza<br />DevOps 2010 Brazil © Carla Souza<br />
  2. 2. 12/04/2010<br />DevOps 2010 Brazil © Carla Souza<br />
  3. 3. 12/04/2010<br />DevOps 2010 Brazil © Carla Souza<br />
  4. 4. 12/04/2010<br />DevOps 2010 Brazil © Carla Souza<br />
  5. 5. Typical Sysadmin Job<br />Repetitive<br />Manual<br />Tedious<br />12/04/2010<br />DevOps 2010 Brazil © Carla Souza<br />
  6. 6. Typical Sysadmin Job<br />Installation<br />12/04/2010<br />DevOps 2010 Brazil © Carla Souza<br />
  7. 7. Typical Sysadmin Job<br />Installation<br />Configuration<br />12/04/2010<br />DevOps 2010 Brazil © Carla Souza<br />
  8. 8. Typical Sysadmin Job<br />Installation<br />Updates<br />Fixes<br />Audits<br />Configuration<br />12/04/2010<br />DevOps 2010 Brazil © Carla Souza<br />
  9. 9. Typical Sysadmin Job<br />Installation<br />Updates<br />Fixes<br />Audits<br />Configuration<br />12/04/2010<br />DevOps 2010 Brazil © Carla Souza<br />
  10. 10. After Configuration...<br />Whatwas itconfigured?<br />How?<br />Why?<br />12/04/2010<br />DevOps 2010 Brazil © Carla Souza<br />
  11. 11. After Configuration...<br />Whatwas itconfigured?<br />How?<br />Why?<br />WeneedDocumentation!<br />12/04/2010<br />DevOps 2010 Brazil © Carla Souza<br />
  12. 12. Documentation<br />Whenwas it configured?<br />Who configured it?<br />What were the configuration's objectives?<br />12/04/2010<br />DevOps 2010 Brazil © Carla Souza<br />
  13. 13. Documentation<br />Whenwas itconfigured?<br />Who configured it?<br />What were the configuration's objectives?<br />Beconsistent<br />12/04/2010<br />DevOps 2010 Brazil © Carla Souza<br />
  14. 14. After configuration...<br />Is it wellconfigured?<br />12/04/2010<br />DevOps 2010 Brazil © Carla Souza<br />
  15. 15. After configuration...<br />Is it wellconfigured?<br />Badconfiguration is worsethan no configuration<br />12/04/2010<br />DevOps 2010 Brazil © Carla Souza<br />
  16. 16. After configuration...<br />Is it wellconfigured?<br />Badconfiguration is worsethen no configuration<br />Wemakemistakes!<br />12/04/2010<br />DevOps 2010 Brazil © Carla Souza<br />
  17. 17. After configuration...<br />Is it wellconfigured?<br />Badconfiguration is worsethen no configuration<br />Wemakemistakes!<br />WeneedTests!<br />12/04/2010<br />DevOps 2010 Brazil © Carla Souza<br />
  18. 18. Tests<br />Is the configuration correct?<br />Is it correctlyconfigured?<br />12/04/2010<br />DevOps 2010 Brazil © Carla Souza<br />
  19. 19. After Configuration...<br />How to ensurethat it willstayconfiguredcorrectly over time?<br />12/04/2010<br />DevOps 2010 Brazil © Carla Souza<br />
  20. 20. After Configuration...<br />How to ensure that it will stay configured correctly over time?<br />We need Maintenance!<br />12/04/2010<br />DevOps 2010 Brazil © Carla Souza<br />
  21. 21. Maintenance<br />Repetitive work<br />Every time yourepeatonejob, youwaste time<br />12/04/2010<br />DevOps 2010 Brazil © Carla Souza<br />
  22. 22. Maintenance<br />Repetitive work<br />Every time you repeat onejob, you waste time<br />MONEY<br />12/04/2010<br />DevOps 2010 Brazil © Carla Souza<br />
  23. 23. Documentation + Tests + Maintenance<br />12/04/2010<br />DevOps 2010 Brazil © Carla Souza<br />
  24. 24. Documentation + Tests + Maintenance<br />=<br />Spend more time then you think<br />12/04/2010<br />DevOps 2010 Brazil © Carla Souza<br />
  25. 25. Documentation + Tests + Maintenance<br />=<br />Spend more time then you think<br />=<br />Less time for real important work<br />12/04/2010<br />DevOps 2010 Brazil © Carla Souza<br />
  26. 26. The more applications I have<br />12/04/2010<br />DevOps 2010 Brazil © Carla Souza<br />
  27. 27. The more applications I have<br />=<br />More Risks<br />12/04/2010<br />DevOps 2010 Brazil © Carla Souza<br />
  28. 28. The more applications I have<br />=<br />More Risks<br />+<br />More need for documentation<br />12/04/2010<br />DevOps 2010 Brazil © Carla Souza<br />
  29. 29. Cumulative Effect<br />The time left will be only for fire fighting<br />12/04/2010<br />DevOps 2010 Brazil © Carla Souza<br />
  30. 30. Cumulative Effect<br />The time left will be only for fire fighting<br />Important tasks will be left behind<br />12/04/2010<br />DevOps 2010 Brazil © Carla Souza<br />
  31. 31. Cumulative Effect<br />The time left will be only for fire fighting<br />Important tasks will be left behind<br />Backups<br />Documentation update<br />User’s tickets<br />12/04/2010<br />DevOps 2010 Brazil © Carla Souza<br />
  32. 32. Automation<br />Good admins write their own tools<br />12/04/2010<br />DevOps 2010 Brazil © Carla Souza<br />
  33. 33. Automation<br />Good admins write their own tools<br />Install:<br />Kickstart, jumpstart, imaging<br />Configuration + maintenance:<br />SSH in a for loop<br />Ssh keys distributed over the network = lack of secutiry<br />12/04/2010<br />DevOps 2010 Brazil © Carla Souza<br />
  34. 34. Automation tools<br />Great for ad-hoc or one time only tasks<br />Can be pushed out via cron<br />12/04/2010<br />DevOps 2010 Brazil © Carla Souza<br />
  35. 35. Automation tools<br />But do you always write scripts that are:<br />12/04/2010<br />DevOps 2010 Brazil © Carla Souza<br />
  36. 36. Automation tools<br />But do you always write scripts that are:<br />Concurrent safe?<br />Testable?<br />Reversible?<br />Legible?<br />Full of good logging?<br />Portable?<br />12/04/2010<br />DevOps 2010 Brazil © Carla Souza<br />
  37. 37. Wish list<br />Simple solutions<br />12/04/2010<br />DevOps 2010 Brazil © Carla Souza<br />
  38. 38. Wish list<br />Simplesolutions<br />ElegantDomainSpecificLanguage (DSL)<br />Manageyourserversbywritingcode, notrunningcommands<br />Platformindependent<br />Centralized<br />Version Controlled<br />12/04/2010<br />DevOps 2010 Brazil © Carla Souza<br />
  39. 39. Wish list<br />Simplesolutions<br />Easy to extend<br />Selfdocumenting<br />Commercial support and trainning<br />Open source<br />12/04/2010<br />DevOps 2010 Brazil © Carla Souza<br />
  40. 40. Puppet<br />A Puppet Labs product<br />Since 2005<br />Written in Ruby<br />Extensible by modules<br />Client-server architecture (client pull)<br />12/04/2010<br />DevOps 2010 Brazil © Carla Souza<br />
  41. 41. Puppet<br />File server<br />SSL Certificates<br />Very active and helpful community<br />Mailing lists, #puppet @ freenode<br />Open Source hosted on Github (GPL)<br />https://github.com/puppetlabs<br />Book<br />12/04/2010<br />DevOps 2010 Brazil © Carla Souza<br />
  42. 42. Puppet<br />12/04/2010<br />DevOps 2010 Brazil © Carla Souza<br />
  43. 43. Puppet<br />Installation<br />Updates<br />Fixes<br />Audits<br />Configuration<br />12/04/2010<br />DevOps 2010 Brazil © Carla Souza<br />
  44. 44. Components<br />puppetmaster<br />Server daemon<br />Run as ‘puppet’ user<br />12/04/2010<br />DevOps 2010 Brazil © Carla Souza<br />
  45. 45. Components<br />puppetmaster<br />Server daemon<br />Run as ‘puppet’ user<br />puppetd<br />Client daemon<br />Run as root<br />Pulling every 30min (default value)<br />12/04/2010<br />DevOps 2010 Brazil © Carla Souza<br />
  46. 46. Components<br />puppetca<br />Puppet’s Certificate Authority<br />12/04/2010<br />DevOps 2010 Brazil © Carla Souza<br />
  47. 47. Components<br />puppetca<br />Puppet’s Certificate Authority<br />Facter<br />Gathers basic information about node’s hardware and operation system<br />12/04/2010<br />DevOps 2010 Brazil © Carla Souza<br />
  48. 48. Elements<br />Types<br />A type is a particular element that Puppet knows how to configure<br />12/04/2010<br />DevOps 2010 Brazil © Carla Souza<br />
  49. 49. Elements<br />Types<br />A type is a particular element that Puppet knows how to configure<br />Classes<br />A named collection of type objects<br />12/04/2010<br />DevOps 2010 Brazil © Carla Souza<br />
  50. 50. Elements<br />Providers<br />Specific implementation of a given resource type<br />12/04/2010<br />DevOps 2010 Brazil © Carla Souza<br />
  51. 51. Elements<br />Providers<br />Specific implementation of a given resource type<br />type: package<br />12/04/2010<br />DevOps 2010 Brazil © Carla Souza<br />
  52. 52. Elements<br />Providers<br />Specific implementation of a given resource type<br />type: package<br />providers: yum, dpkg, aptitude, apple, rpm, gem, freebsd<br />12/04/2010<br />DevOps 2010 Brazil © Carla Souza<br />
  53. 53. Puppet’s installation<br />yum install puppet-server puppet<br />apt-get install puppetmaster puppet<br />gem install puppet-2.6.4.gem<br />12/04/2010<br />DevOps 2010 Brazil © Carla Souza<br />
  54. 54. Sample CodeInstall, Configure and Start Apache<br />12/04/2010<br />DevOps 2010 Brazil © Carla Souza<br />package {“httpd”:<br /> ensure => present,<br />}<br />file {“/etc/httpd/conf/httpd.conf”:<br /> owner => root, group => root, mode => 644,<br /> source => puppet:///modules/apache/httpd.conf,<br />}<br />service {“httpd”:<br /> ensure => running,<br /> enable => true,<br />}<br />
  55. 55. Sample CodeResource Types<br />12/04/2010<br />DevOps 2010 Brazil © Carla Souza<br />package {“httpd”:<br /> ensure => present,<br />}<br />file {“/etc/httpd/conf/httpd.conf”:<br /> owner => root, group => root, mode => 644,<br /> source => puppet:///modules/apache/httpd.conf,<br />}<br />service {“httpd”:<br /> ensure => running,<br /> enable => true,<br />}<br />
  56. 56. Sample CodeResource Titles<br />12/04/2010<br />DevOps 2010 Brazil © Carla Souza<br />package {“httpd”:<br /> ensure => present,<br />}<br />file {“/etc/httpd/conf/httpd.conf”:<br /> owner => root, group => root, mode => 644,<br /> source => puppet:///modules/apache/httpd.conf,<br />}<br />service {“httpd”:<br /> ensure => running,<br /> enable => true,<br />}<br />
  57. 57. Sample CodeResources Parameters<br />12/04/2010<br />DevOps 2010 Brazil © Carla Souza<br />package {“httpd”:<br />ensure => present,<br />}<br />file {“/etc/httpd/conf/httpd.conf”:<br />owner => root, group => root, mode => 644,<br />source => puppet:///modules/apache/httpd.conf,<br />}<br />service {“httpd”:<br />ensure => running,<br />enable => true,<br />}<br />
  58. 58. Sample CodeResources Parameters<br />12/04/2010<br />DevOps 2010 Brazil © Carla Souza<br />package {“httpd”:<br /> ensure => present,<br />}<br />file {“/etc/httpd/conf/httpd.conf”:<br /> owner => root, group => root, mode => 644,<br /> source => puppet:///modules/apache/httpd.conf,<br /> require => Package[“httpd”]<br />}<br />service {“httpd”:<br /> ensure => running,<br /> enable => true,<br /> require => File[“/etc/httpd/conf/httpd.conf”]<br />}<br />
  59. 59. Sample CodeResponding to change<br />12/04/2010<br />DevOps 2010 Brazil © Carla Souza<br />file{“/etc/httpd/conf/httpd.conf”:<br /> .<br /> .<br /> notify => Service[“httpd”]<br />}<br />OR<br />service{“httpd”:<br /> .<br /> .<br /> subscribe => File[“/etc/httpd/conf/httpd.conf”]<br />}<br />
  60. 60. Sample CodeResource collections<br />class apache {<br /> include apache::install<br /> include apache::config<br /> include apache::service<br />}<br />class apache::install {<br /> package{.....}, package{.....}<br />}<br />class apache::config {<br /> file{.....<br /> require => Class[“apache::install”],<br /> notify => Class[“apache::service”],<br /> }<br />}<br />class apache::service {<br /> service{.....<br /> require => Class[“apache::config”]<br /> }<br />}<br />12/04/2010<br />DevOps 2010 Brazil © Carla Souza<br />
  61. 61. Sample CodeResource collections<br />class apache {<br /> include apache::install<br />include apache::config<br /> include apache::service<br />}<br />class apache::install {<br /> package{.....}, package{.....}<br />}<br />class apache::config {<br /> file{.....<br /> require => Class[“apache::install”],<br /> notify => Class[“apache::service”],<br /> }<br />}<br />class apache::service {<br /> service{.....<br /> require => Class[“apache::config”]<br /> }<br />}<br />12/04/2010<br />DevOps 2010 Brazil © Carla Souza<br />
  62. 62. Sample CodeResource collections<br />class apache {<br /> include apache::install<br /> include apache::config<br />include apache::service<br />}<br />class apache::install {<br /> package{.....}, package{.....}<br />}<br />class apache::config {<br /> file{.....<br /> require => Class[“apache::install”],<br /> notify => Class[“apache::service”],<br /> }<br />}<br />class apache::service {<br /> service{.....<br /> require => Class[“apache::config”]<br /> }<br />}<br />12/04/2010<br />DevOps 2010 Brazil © Carla Souza<br />
  63. 63. Elements<br />Nodes<br />A configuration block matching a client<br />12/04/2010<br />DevOps 2010 Brazil © Carla Souza<br />
  64. 64. Sample CodeNodes configuration<br />node “web1.your.com” {<br />include apache<br />}<br />12/04/2010<br />DevOps 2010 Brazil © Carla Souza<br />
  65. 65. Elements<br />Templates<br />Apply code and variable substitution<br />Uses ERB<br />12/04/2010<br />DevOps 2010 Brazil © Carla Souza<br />
  66. 66. Sample CodeTemplates<br />file{“/etc/httpd/conf.d/servertag.conf”:<br /> .<br /> .<br /> content => template(“apache/servertag.erb”)<br />}<br />servertag.erb:<br />Header set X-httpd<%= hostname %><br />12/04/2010<br />DevOps 2010 Brazil © Carla Souza<br />
  67. 67. Sample CodeFile Source Selection<br />file{“/etc/httpd/conf/httpd.conf”:<br /> source => [“puppet:///apache/httpd.conf.${fqdn}”,<br /> “puppet:///apache/httpd.conf.${domain}”,<br /> “puppet:///apache/httpd.conf”]<br />}<br />12/04/2010<br />DevOps 2010 Brazil © Carla Souza<br />
  68. 68. Puppet<br />puppetlabs.com<br />github.com/puppetlabs<br />Follow me:<br />github.com/carlasouza<br />carla.asouza@gmail.com<br />12/04/2010<br />DevOps 2010 Brazil © Carla Souza<br />
  69. 69. Thank you!<br />12/04/2010<br />DevOps 2010 Brazil © Carla Souza<br />

×