24/09/2011  Configuration Management   Automating and rationalizing server setup with CFEngine 3Jonathan Clarke   <jcl@nor...
About the speakerJonathan Clarke                → CTO →Sysadmin background                  Startup created in 2010Infrast...
Introduction                          1. CREATE                          2. SETUP                          3. USE         ...
Introduction                           1. CREATE                           2. SETUP                           3. USE      ...
Introduction                            1. CREATE                            2. SETUP                            3. USE   ...
Agenda1) Configuration Management principles2) Configuration Management tools3) About CFEngine 34) Getting started        ...
Configuration Management     Principles through examples...                
A server crashed.               Install a new one, people                 cant work without it!OK, itll be done inabout tw...
Reproducibility    Industrialization              Automation                Why configuration management?                 ...
How do we setup   service X?                     Ask Jim, hes                   the expert on that.But he left the company...
Documentation     History                           Building-up                           knowledge    Why configuration m...
An intruder just stole our datausing a vulnerability in amodule we dont need...                                    I thoug...
Why configuration management?              Continuous               vigilanceAutomatic repairs     Alerts                 ...
I dont understand how this     server is setup. It doesnt match     our best-practices.                           Oh, that...
Why configuration management?                           Rationalization                    Normalization     Control      ...
Reproducibility    Industrialization   Documentation     History           Automation                            Building-...
Configuration Management        The tools         
Main tools available CFEngine 3       Puppet   Chef               
Main tools available: history                         Relative origins of CFEngine, Puppet and ChefSource:http://verticals...
The tools: similarities                   CFEngine 3             Puppet            Chef   Common origins         Designed ...
The tools: some differences                  CFEngine 3    Puppet       Chef                      C          Ruby        R...
A bit about CFEngine 3...         
CFEngine 3: Features                                  Multi platform      Windows support Two versions: 1. Community (open...
CFEngine 3: Features                 Multi-OS             Multi-distribution                                          Adap...
CFEngine 3: FeaturesLightweight, non-intrusive        Non-intrusive                                 Daemon consumption on ...
CFEngine 3: Features                   Evolution of CPU utilization          for an increasing number of managed hosts    ...
CFEngine 3: Features                                 Multi platform                                                       ...
Getting started with CFEngine 3            
CFEngine 3: Installing   Install from sources:              http://www.cfengine.com/source_code   Prebuilt packages:   ...
CFEngine 3: Client-Server   Using a server is optional!              Get started by running standalone   CFEngines serv...
CFEngine 3: Configuration   Minimal configuration:    body common control    {      bundlesequence => { "HelloWorld" };  ...
CFEngine 3: Configuration   Promise types:                   Promise types            Promise types                   (al...
CFEngine 3: Examples   Install and update the LAMP stack    bundle agent lamp {      vars:       "packages" slist => { "h...
CFEngine 3: Examples   Install Apache with distribution variations    packages:      debian::         "apache2"          ...
24/09/2011             Thanks for participating!Stay in touch...Jonathan ClarkeEmail: jcl@normation.comTwitter: jooooooon4...
Upcoming SlideShare
Loading in...5
×

Configuration management: automating and rationalizing server setup with CFEngine 3 (Open World Forum 2011)

1,744

Published on

With the advent of virtualization and cloud computing, modern IT management relies more and more on the concept of "create, set up, use and throw away" servers. In this context, the benefits of automating and rationalizing the "set up phase" are obvious. This is where configuration management tools come in to play.

This presentation kicks off with a discussion of some key points of configuration management and their benefits and drawbacks, building on real world examples (well, pseudo examples, mostly too silly to have ever really happened... or maybe not?)

The main contender is then introduced: CFEngine 3. Released in 2009, this is a brand new version of the open source configuration management solution, built on 17+ years of experience from previous versions of the software. We'll introduce the technology's key points, comparing approaches with similar devops-type tools, such as Puppet and Chef (where possible).

last cover the basics of setting up a minimal environment to start automating your configuration with CFEngine 3. We'll cover simple but illustrative examples, and show real-time demos of the technology in action.

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
1,744
On Slideshare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
15
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Configuration management: automating and rationalizing server setup with CFEngine 3 (Open World Forum 2011)

  1. 1. 24/09/2011 Configuration Management Automating and rationalizing server setup with CFEngine 3Jonathan Clarke <jcl@normation.com>    
  2. 2. About the speakerJonathan Clarke → CTO →Sysadmin background Startup created in 2010Infrastructure management Based in ParisFLOSS contributor: Configuration management: CFEngine  CFEngine (partner) Others (OpenLDAP, LSC, FusionInventory...)  Rudder (creator)    
  3. 3. Introduction 1. CREATE 2. SETUP 3. USE 4. THROW AWAY Cloud Computing    
  4. 4. Introduction 1. CREATE 2. SETUP 3. USE 4. THROW AWAY Cloud Computing → APIs and tools are available    
  5. 5. Introduction 1. CREATE 2. SETUP 3. USE 4. THROW AWAY Cloud Computing Three approaches: 1. Manually 2. Imaging 3. Configuration tool    
  6. 6. Agenda1) Configuration Management principles2) Configuration Management tools3) About CFEngine 34) Getting started    
  7. 7. Configuration Management Principles through examples...    
  8. 8. A server crashed. Install a new one, people cant work without it!OK, itll be done inabout two days... Why configuration management? Theres a new critical security patch we must deploy on all our servers! Get it out quickly! Right, Ill put the whole team on it.    
  9. 9. Reproducibility Industrialization Automation Why configuration management?    
  10. 10. How do we setup service X? Ask Jim, hes the expert on that.But he left the company... Why configuration management? Huh, this server has been logging errors for a few weeks. Oh? I think Michael changed something on it recently... Hell tell you what it was. Damn, hes on vacation!    
  11. 11. Documentation History Building-up knowledge Why configuration management?   
  12. 12. An intruder just stole our datausing a vulnerability in amodule we dont need... I thought the project specification ensured that we disabled that?Er, it did, but we enabled it tosolve a problem and forgot todisable it afterwards... sorry... Why configuration management?    
  13. 13. Why configuration management? Continuous vigilanceAutomatic repairs Alerts    
  14. 14. I dont understand how this server is setup. It doesnt match our best-practices. Oh, thats a legacy server... Why configuration management? Give me details on our current security policy. Well, its a collection of little things, here and there... Ah... Well, OK. Tell me: is it fully applied on all our critical servers? Er...   
  15. 15. Why configuration management? Rationalization Normalization Control   
  16. 16. Reproducibility Industrialization Documentation History Automation Building-up knowledge Configuration management benefits Continuous Rationalization vigilanceAutomatic repairs Alerts Normalization Control    
  17. 17. Configuration Management The tools    
  18. 18. Main tools available CFEngine 3 Puppet Chef    
  19. 19. Main tools available: history Relative origins of CFEngine, Puppet and ChefSource:http://verticalsysadmin.com/blog/uncategorized/relative-origins-of-cfengine-chef-and-puppet    
  20. 20. The tools: similarities CFEngine 3 Puppet Chef Common origins Designed specifically Text-based / CLI for configuration interface management Client-server model (sometimes optional) Open Source    
  21. 21. The tools: some differences CFEngine 3 Puppet Chef C Ruby Ruby Language GPL Apache Apache (ex-GPL) License Yes Preliminary PartialWindows support    
  22. 22. A bit about CFEngine 3...   
  23. 23. CFEngine 3: Features Multi platform Windows support Two versions: 1. Community (open source) Runs in Cygwin 2. Nova (commercial) ● Native Windows service    
  24. 24. CFEngine 3: Features Multi-OS Multi-distribution Adapted to Make it ”transparent” (forget heterogeneous about the complexity) environments Existing standard library handling the differences between each OS and distribution    
  25. 25. CFEngine 3: FeaturesLightweight, non-intrusive Non-intrusive Daemon consumption on managed hosts Only two dependencies: - BerkeleyDB - OpenSSL    
  26. 26. CFEngine 3: Features Evolution of CPU utilization for an increasing number of managed hosts Highly scalable From 25 to 400 clients (x16) CPU utilization increases by 1.16%Notes:• Each host runs CFEngine every 5 minutes• Configuration tested sets up Apache web server• Tests and monitoring using AWS    
  27. 27. CFEngine 3: Features Multi platform Adapted toLightweight, non-intrusive heterogeneous environments Autonomous Fault-tolerant Highly scalable Progressive roll-out    
  28. 28. Getting started with CFEngine 3    
  29. 29. CFEngine 3: Installing Install from sources:  http://www.cfengine.com/source_code Prebuilt packages:  Debian / SuSE / Fedora / RHEL / Ubuntu  Requires free signup  https://cfengine.com/inside/myspace    
  30. 30. CFEngine 3: Client-Server Using a server is optional!  Get started by running standalone CFEngines server daemon is cf-serverd  Dedicated protocol: TCP port 5308  Requires SSL key exchange    
  31. 31. CFEngine 3: Configuration Minimal configuration: body common control { bundlesequence => { "HelloWorld" }; } Syntax notes bundle agent HelloWorld Whitespace doesnt count { Comments follow # # This will output "Hello World!" commands: "/bin/echo Hello World!"; } Structure notes ● Structures are created using { } ● Structures are bundles or bodies    
  32. 32. CFEngine 3: Configuration Promise types: Promise types Promise types (all versions) (commercial versions) files environments packages services processes databases commands storage interfaces (for future use) Special types Special types (all versions) (commercial versions) vars outputs classes methods reports    
  33. 33. CFEngine 3: Examples Install and update the LAMP stack bundle agent lamp {   vars: "packages" slist => { "httpd", "php5", "mysql" };   packages:     "${packages}"       package_method => generic,       package_method => "addupdate"; }    
  34. 34. CFEngine 3: Examples Install Apache with distribution variations packages: debian:: "apache2" package_policy => "add", package_method => apt; centos|redhat:: "httpd" package_policy => "add", package_method => yum;    
  35. 35. 24/09/2011 Thanks for participating!Stay in touch...Jonathan ClarkeEmail: jcl@normation.comTwitter: jooooooon42    
  1. A particular slide catching your eye?

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

×