Configuration Manager                 Puppet, Chef, Cfengine  Presented by  Jérémy MATHEVET
Topics1. Principle2. Comparison3. Puppet4. Chef5. Cfengine6. Migration advises
Principle
Principle• A client/server architecture.• The server has a reference configuration.• The client queries the server.• The c...
Principle 1. “Can you give my configuration model ?“ 2. “Ok, for you, thats it.” 3. “I make the necessary in order to fulf...
Principle
Why to do this ?• Centralized management• Automated management• Mass deployment• Configuration customization• Abstraction ...
What can we do ?• File transfer• Service management• Package management• Command launching
Comparison
Comparison 3 major solution : • Puppet • Chef • Cfengine Pretty similar possibilities. Some specificities.
Comparison                      Puppet            Chef           Cfengine      Pull              Yes              Yes     ...
Puppet
Puppet• Created in 2006 by Puppet Labs• The easiest solution• Proprietary declarative language• Modular configuration• Tem...
Puppet• Prerequisite :  • Configured DNS  • Ruby• Installation Sources :  • Debian Repositories  • RubyGem  • Sources
Puppet• Puppet server : Puppetmaster• Puppet client : Puppet (agent) Main steps once installed :  • Key exchange  • Puppet...
Puppet Vocabulary : • Node • Manifest • Module • Class • Template
Puppet
Puppet           Here is the read order.         • site.pp : global config         • nodes.pp : manage           hosts    ...
Puppet
Puppet• Facter : Give node facts.• Permit to have  customized  configuration node.• Possibility to create  your own facts.
PuppetTemplates• ERB• Customize configuration using Facts  Exemple :
PuppetPuppet Dashboard• WebUI• Still in development• Very buggy• Only for monitoring• Useless for the moment
Chef
Chef• Created in 2009 by Opscode• Sustained development• Configuration language : Ruby• Modular configuration• Template• A...
Chef• Prerequisite :  • Configured DNS  • Ruby• Installation Sources :  • Opscode Repositories  • RubyGem  • Sources
Chef• Chef server : chef-server• Chef client : chef-client Main steps once installed :  • Key exchange  • Chef-server conf...
Chef Vocabulary : • Recipes • Cookbook • Role • Node • Attributes • Knife • Chef Repository
Chef
Chef Chef Server is in fact several processes.•API Service   Used to interact with server for node configuration.•Manageme...
Chef• File indexer    Apache SOLR, a search engine.• Data store (CouchDB)    Used for store roles, nodes and data bag JSON...
Chef
Chef Cookbook
Chef Recipes
Chef Recipes Like in Cooking, one of the more interesting thing is to share our cookbooks and recipes. http://community.op...
Chef Ohai and templates A tree of node facts, which can be used as attributes. The same kind of customization as Puppet wi...
Chef Administration•Knife or Management Console•CLI or Web UI•Two powerful tools
Chef vs Puppet Chef Advantages • Cookbooks sharing • Stricter configuration rules • Ruby • Useful WebUI Disadvantages • A ...
Cfengine
Cfengine• Created in 1993 by Mark Burgess• The first configuration manager• Major update in 2009, Cfengine 3• Proprietary ...
Cfengine• Prerequisite :  • libc• Installation Sources :  • Debian Repositories  • Sources
Cfengine Cfengine has an atypical mechanism. There is neither cfengine-server nor cfengine-client package.
Cfengine Architecture
Cfengine Vocabulary • Promises • Body & bundle • Class
Cfengine Promises
Cfengine•Bundles and bodies
Cfengine•With Cfengine, you have to do configure everything. From the promises, to the host authorized, or the failsafe pr...
Cfengine vs Puppet vs Chef Cfengine is powerful. But... • Painful configuration • Have fun with log (excessively verbose.....
Migration advices
Migration advices• Migration have to be progressive.• Writing configurations take time.• Be extremely rigorous.• Dont forg...
Questions?Contact:Email : jeremy.mathevet@supinfo.comStatusNet : jeyg@status.jeyg.infoTwitter : @Jeyg                     ...
Configuration manager presentation
Configuration manager presentation
Upcoming SlideShare
Loading in...5
×

Configuration manager presentation

3,800

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
3,800
On Slideshare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
96
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Transcript of "Configuration manager presentation"

  1. 1. Configuration Manager Puppet, Chef, Cfengine Presented by Jérémy MATHEVET
  2. 2. Topics1. Principle2. Comparison3. Puppet4. Chef5. Cfengine6. Migration advises
  3. 3. Principle
  4. 4. Principle• A client/server architecture.• The server has a reference configuration.• The client queries the server.• The client makes change in order to match the reference configuration.
  5. 5. Principle 1. “Can you give my configuration model ?“ 2. “Ok, for you, thats it.” 3. “I make the necessary in order to fulfil it.” 4. (optional) “Thank you, Im ok, no error” or “I had a problem”.
  6. 6. Principle
  7. 7. Why to do this ?• Centralized management• Automated management• Mass deployment• Configuration customization• Abstraction Layer• Idempotence
  8. 8. What can we do ?• File transfer• Service management• Package management• Command launching
  9. 9. Comparison
  10. 10. Comparison 3 major solution : • Puppet • Chef • Cfengine Pretty similar possibilities. Some specificities.
  11. 11. Comparison Puppet Chef Cfengine Pull Yes Yes Yes Push No No No Idempotence Yes Yes Yes Config language Declarative Ruby Declarative Web UI Yes (limited) Yes No OS Support Linux/Unix – Linux/Unix – Linux Linux/Unix – Windows Windows Windows (experimental) (experimental) (experimental) Licence GPL v2 Apache GPL Company Puppet Labs OpsCode Cfengine Cloud Yes SaaS platform Yes
  12. 12. Puppet
  13. 13. Puppet• Created in 2006 by Puppet Labs• The easiest solution• Proprietary declarative language• Modular configuration• Template• Asymmetric Key Encryption
  14. 14. Puppet• Prerequisite : • Configured DNS • Ruby• Installation Sources : • Debian Repositories • RubyGem • Sources
  15. 15. Puppet• Puppet server : Puppetmaster• Puppet client : Puppet (agent) Main steps once installed : • Key exchange • Puppetmaster configuration • Puppet agent checks every 30 mn by default
  16. 16. Puppet Vocabulary : • Node • Manifest • Module • Class • Template
  17. 17. Puppet
  18. 18. Puppet Here is the read order. • site.pp : global config • nodes.pp : manage hosts • init.pp : module classes • Files : module files directory
  19. 19. Puppet
  20. 20. Puppet• Facter : Give node facts.• Permit to have customized configuration node.• Possibility to create your own facts.
  21. 21. PuppetTemplates• ERB• Customize configuration using Facts Exemple :
  22. 22. PuppetPuppet Dashboard• WebUI• Still in development• Very buggy• Only for monitoring• Useless for the moment
  23. 23. Chef
  24. 24. Chef• Created in 2009 by Opscode• Sustained development• Configuration language : Ruby• Modular configuration• Template• Asymmetric Key Encryption
  25. 25. Chef• Prerequisite : • Configured DNS • Ruby• Installation Sources : • Opscode Repositories • RubyGem • Sources
  26. 26. Chef• Chef server : chef-server• Chef client : chef-client Main steps once installed : • Key exchange • Chef-server configuration • Chef client checks every 30 mn by default
  27. 27. Chef Vocabulary : • Recipes • Cookbook • Role • Node • Attributes • Knife • Chef Repository
  28. 28. Chef
  29. 29. Chef Chef Server is in fact several processes.•API Service Used to interact with server for node configuration.•Management Console WebUI which permits to do administrative tasks.
  30. 30. Chef• File indexer Apache SOLR, a search engine.• Data store (CouchDB) Used for store roles, nodes and data bag JSON data. Sends it to SOLR, through AQMP queue.•AQMP Server Used by CouchDB as queue.
  31. 31. Chef
  32. 32. Chef Cookbook
  33. 33. Chef Recipes
  34. 34. Chef Recipes Like in Cooking, one of the more interesting thing is to share our cookbooks and recipes. http://community.opscode.com/cookbooks
  35. 35. Chef Ohai and templates A tree of node facts, which can be used as attributes. The same kind of customization as Puppet with Facter.
  36. 36. Chef Administration•Knife or Management Console•CLI or Web UI•Two powerful tools
  37. 37. Chef vs Puppet Chef Advantages • Cookbooks sharing • Stricter configuration rules • Ruby • Useful WebUI Disadvantages • A bit more complex • More setup needed • Usable in production, but still young
  38. 38. Cfengine
  39. 39. Cfengine• Created in 1993 by Mark Burgess• The first configuration manager• Major update in 2009, Cfengine 3• Proprietary configuration language• Template• Asymmetric Key Encryption
  40. 40. Cfengine• Prerequisite : • libc• Installation Sources : • Debian Repositories • Sources
  41. 41. Cfengine Cfengine has an atypical mechanism. There is neither cfengine-server nor cfengine-client package.
  42. 42. Cfengine Architecture
  43. 43. Cfengine Vocabulary • Promises • Body & bundle • Class
  44. 44. Cfengine Promises
  45. 45. Cfengine•Bundles and bodies
  46. 46. Cfengine•With Cfengine, you have to do configure everything. From the promises, to the host authorized, or the failsafe procedure.
  47. 47. Cfengine vs Puppet vs Chef Cfengine is powerful. But... • Painful configuration • Have fun with log (excessively verbose... Or not.) • Seems outdated compared to Puppet and Chef Keep in mind that you have as much possibilities as Puppet & Chef. But the time you pass configuring and master it is incomparable.
  48. 48. Migration advices
  49. 49. Migration advices• Migration have to be progressive.• Writing configurations take time.• Be extremely rigorous.• Dont forget the revision control.
  50. 50. Questions?Contact:Email : jeremy.mathevet@supinfo.comStatusNet : jeyg@status.jeyg.infoTwitter : @Jeyg Content under Creative Commons BY license.
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×