SlideShare une entreprise Scribd logo
Cfengine presentation

- Configuration
management
- Promise technology
- Cfengine features
- Real-life examples
About the speaker
         Nicolas CHARLES : nicolas.charles@normation.com
                 Developer in different languages and fields for the past
                  7 years
                 2009, cofounded Normation
                 Active member of the Cfengine community

         Normation
                 Software company
                       Compliance                               and Drift assessment
                 Cfengine partner
                 Consulting on Identity and Service Management

© Normation 2010 -  Tous droits réservés – Document strictement confidentiel.
Il ne peut être utilisé, reproduit ou divulgué sans autorisation écrite préalable.      2
Why should I manage configurations?




© Normation 2010 -  Tous droits réservés – Document strictement confidentiel.
Il ne peut être utilisé, reproduit ou divulgué sans autorisation écrite préalable.   3
History of configuration management




© Normation 2010 -  Tous droits réservés – Document strictement confidentiel.
Il ne peut être utilisé, reproduit ou divulgué sans autorisation écrite préalable.   4
Some Cfengine users
          Long track-record with millions servers managed
           by thousands registered users including:




© Normation 2010 -  Tous droits réservés – Document strictement confidentiel.
Il ne peut être utilisé, reproduit ou divulgué sans autorisation écrite préalable.   5
Promise Technology
          Based on Promise Theory
                   Goals are invariants
                   Recipes depend on circumstances

          Simple connection to « Service Level
           Agreements »
                   Promise that an Apache server is up and running

          A promise is a documentation by itself




© Normation 2010 -  Tous droits réservés – Document strictement confidentiel.
Il ne peut être utilisé, reproduit ou divulgué sans autorisation écrite préalable.   6
Convergence
          Promises focus on the desired state
          Convergence is built in Cfengine




© Normation 2010 -  Tous droits réservés – Document strictement confidentiel.
Il ne peut être utilisé, reproduit ou divulgué sans autorisation écrite préalable.   7
Cfengine features




© Normation 2010 -  Tous droits réservés – Document strictement confidentiel.
Il ne peut être utilisé, reproduit ou divulgué sans autorisation écrite préalable.   8
Cfengine agent
          Agent installed on each server
                   Written in C
                   Cross platform (Linux, Unixes, *BSD, Windows,
                    MacOS)
                   Few external dependencies (OpenSSL, [PCRE])
                   Very small memory footprint (less than 30 MB)




© Normation 2010 -  Tous droits réservés – Document strictement confidentiel.
Il ne peut être utilisé, reproduit ou divulgué sans autorisation écrite préalable.   9
Cfengine agent

          Aware of the computer's configuration
          Autonomous
          Automated
          Continuous operation
          Reliable : only one vulnerability on 17 years




© Normation 2010 -  Tous droits réservés – Document strictement confidentiel.
Il ne peut être utilisé, reproduit ou divulgué sans autorisation écrite préalable.   10
Cfengine architecture




© Normation 2010 -  Tous droits réservés – Document strictement confidentiel.
Il ne peut être utilisé, reproduit ou divulgué sans autorisation écrite préalable.   11
Cfengine architecture
          Each node is responsible for its own state
                   High scalability
                   Resilient to network outage

          Agents use external resources on demand
                   Fetch policies updates from orchestrator
                   Package management integration
                   LDAP and Database integration*




© Normation 2010 -  Tous droits réservés – Document strictement confidentiel.
Il ne peut être utilisé, reproduit ou divulgué sans autorisation écrite préalable.   12
Installation
          Installation packages available for :
                   CentOS
                   Debian
                   Fedora
                   FreeBSD*
                   RedHat
                   Solaris*
                   SUSE
                   Ubuntu
                   Windows*


© Normation 2010 -  Tous droits réservés – Document strictement confidentiel.
Il ne peut être utilisé, reproduit ou divulgué sans autorisation écrite préalable.   13
Generic promise syntax

       type:
      classe::
       "promiser" ­> { "promisee1", "promisee2" },
          attribute_1 => body_or_template1,
          attribute_2 => body_or_template2;




© Normation 2010 -  Tous droits réservés – Document strictement confidentiel.
Il ne peut être utilisé, reproduit ou divulgué sans autorisation écrite préalable.   14
Generic promise syntax
    Types                      :
            vars
            classes
            interfaces
            processes
            storage
            packages
            commands
            methods
            files
            databases*
            services*
            reports




© Normation 2010 -  Tous droits réservés – Document strictement confidentiel.
Il ne peut être utilisé, reproduit ou divulgué sans autorisation écrite préalable.   15
Use library
   body common control {
     bundlesequence => { "packages" };
     inputs => {"cfengine_stdlib.cf"};
   }

 bundle agent packages {
   vars:
     "match_package" slist => {
         "airstrike", "sudoku"
 #       "apache2-mod_php5", "apache2-prefork", "php5"
     };
   packages:
     "$(match_package)"
         package_policy => "add",
         package_method => apt;
 }


© Normation 2010 -  Tous droits réservés – Document strictement confidentiel.
Il ne peut être utilisé, reproduit ou divulgué sans autorisation écrite préalable.   16
Examples




© Normation 2010 -  Tous droits réservés – Document strictement confidentiel.
Il ne peut être utilisé, reproduit ou divulgué sans autorisation écrite préalable.   17
A word of caution

      body common control {
       bundlesequence => { "killall" };
      }
      bundle agent killall {
       processes:
                          ".*"
                             signals => { "kill" };
      }
                                                                    Don't try this at home !

© Normation 2010 -  Tous droits réservés – Document strictement confidentiel.
Il ne peut être utilisé, reproduit ou divulgué sans autorisation écrite préalable.             18
Acknowledgements
          Mark Burgess
                   Wrote Cfengine
                   Borrowed heavily from him :
                             Cfengine Reborn, Paris, 2009
                             http://cfengine.com/pages/demos

          Loadays
                   Thank you for this conference




© Normation 2010 -  Tous droits réservés – Document strictement confidentiel.
Il ne peut être utilisé, reproduit ou divulgué sans autorisation écrite préalable.   19
Want more ?


         http://www.cfengine.org/
         https://cfengine.com/forum/
         Mailing-list : help-cfengine@cfengine.org
         IRC : freenode #cfengine




© Normation 2010 -  Tous droits réservés – Document strictement confidentiel.
Il ne peut être utilisé, reproduit ou divulgué sans autorisation écrite préalable.   20
Q&A
                                                                                     Thank you for your attention !




© Normation 2010 -  Tous droits réservés – Document strictement confidentiel.
Il ne peut être utilisé, reproduit ou divulgué sans autorisation écrite préalable.                                    21

Contenu connexe

PDF
Session Spring et TDD du ParisJUG
ODP
Cfengine vs Puppet vs Chef: A Guide for Stressed Developers
PDF
Agile Days Twin Cities 2011
PDF
CFEngine 3
PDF
Configuration Management avec Drupal 8
PDF
Normation: Our mission - Rudder - Our offer
PDF
Présentations séminaire OSSA - mai 2010
PDF
Journée DevOps : Les piliers du déploiement applicatif avec XL Deploy de Xebi...
Session Spring et TDD du ParisJUG
Cfengine vs Puppet vs Chef: A Guide for Stressed Developers
Agile Days Twin Cities 2011
CFEngine 3
Configuration Management avec Drupal 8
Normation: Our mission - Rudder - Our offer
Présentations séminaire OSSA - mai 2010
Journée DevOps : Les piliers du déploiement applicatif avec XL Deploy de Xebi...

Plus de RUDDER (20)

PDF
What if configuration management didn't need to be lvl60 in dev?
PDF
Servers compliance: audit, remediation, proof
PDF
OSIS 2019 - Qu’apporte l’observabilité à la gestion de configuration ?
PDF
OW2Con - Configurations, do you prove yours?
PDF
The new plugin ecosystem in RUDDER 5.0
PDF
What uses for observing operations of Configuration Management?
PDF
UX challenges of a UI-centric config management tool
PDF
What happened in RUDDER in 2018 and what’s next?
PDF
What is RUDDER and when should I use it?
PDF
Fosdem - Configurations do you prove yours?
PDF
L'audit en continu : clé de la conformité démontrable (#POSS 2018)
PDF
Fiabilité et conformité continues en production avec Rudder (#BBOOST 2018)
PDF
Stay up - voyage d'un éditeur de logiciels libres
PDF
How we scaled Rudder to 10k, and the road to 50k
PDF
What's new and what's next in Rudder
PDF
Poss 2017 : gestion des configurations et mise en conformité chez un service ...
PDF
Poss 2017 - la continuité, arme secrète de la gestion du si - cas concret de ...
PDF
POSS 2017 : Comment automatiser son infrastructure quand... on a pas le temps...
PDF
DevOps D-Day 2017 - Gestion des configurations et mise en conformité chez un ...
PDF
RUDDER - Continuous Configuration (configuration management + continuous aud...
What if configuration management didn't need to be lvl60 in dev?
Servers compliance: audit, remediation, proof
OSIS 2019 - Qu’apporte l’observabilité à la gestion de configuration ?
OW2Con - Configurations, do you prove yours?
The new plugin ecosystem in RUDDER 5.0
What uses for observing operations of Configuration Management?
UX challenges of a UI-centric config management tool
What happened in RUDDER in 2018 and what’s next?
What is RUDDER and when should I use it?
Fosdem - Configurations do you prove yours?
L'audit en continu : clé de la conformité démontrable (#POSS 2018)
Fiabilité et conformité continues en production avec Rudder (#BBOOST 2018)
Stay up - voyage d'un éditeur de logiciels libres
How we scaled Rudder to 10k, and the road to 50k
What's new and what's next in Rudder
Poss 2017 : gestion des configurations et mise en conformité chez un service ...
Poss 2017 - la continuité, arme secrète de la gestion du si - cas concret de ...
POSS 2017 : Comment automatiser son infrastructure quand... on a pas le temps...
DevOps D-Day 2017 - Gestion des configurations et mise en conformité chez un ...
RUDDER - Continuous Configuration (configuration management + continuous aud...
Publicité

Dernier (7)

PPTX
Souveraineté numérique - Définition et enjeux pour les entreprises et les dév...
PPTX
Presentation_Securite_Reseaux_Bac+2.pptx
PDF
FORMATION EN Programmation En Langage C.pdf
PDF
presentation_with_intro_compressee IEEE EPS France
PDF
Tendances tech 2025 - SFEIR & WENVISION.pdf
PDF
FORMATION COMPLETE EN EXCEL DONE BY MR. NYONGA BRICE.pdf
PDF
Modems expliqués- votre passerelle vers Internet.pdf
Souveraineté numérique - Définition et enjeux pour les entreprises et les dév...
Presentation_Securite_Reseaux_Bac+2.pptx
FORMATION EN Programmation En Langage C.pdf
presentation_with_intro_compressee IEEE EPS France
Tendances tech 2025 - SFEIR & WENVISION.pdf
FORMATION COMPLETE EN EXCEL DONE BY MR. NYONGA BRICE.pdf
Modems expliqués- votre passerelle vers Internet.pdf
Publicité

Cfengine presentation @Loadays

  • 1. Cfengine presentation - Configuration management - Promise technology - Cfengine features - Real-life examples
  • 2. About the speaker  Nicolas CHARLES : nicolas.charles@normation.com  Developer in different languages and fields for the past 7 years  2009, cofounded Normation  Active member of the Cfengine community  Normation  Software company  Compliance and Drift assessment  Cfengine partner  Consulting on Identity and Service Management © Normation 2010 -  Tous droits réservés – Document strictement confidentiel. Il ne peut être utilisé, reproduit ou divulgué sans autorisation écrite préalable. 2
  • 3. Why should I manage configurations? © Normation 2010 -  Tous droits réservés – Document strictement confidentiel. Il ne peut être utilisé, reproduit ou divulgué sans autorisation écrite préalable. 3
  • 4. History of configuration management © Normation 2010 -  Tous droits réservés – Document strictement confidentiel. Il ne peut être utilisé, reproduit ou divulgué sans autorisation écrite préalable. 4
  • 5. Some Cfengine users  Long track-record with millions servers managed by thousands registered users including: © Normation 2010 -  Tous droits réservés – Document strictement confidentiel. Il ne peut être utilisé, reproduit ou divulgué sans autorisation écrite préalable. 5
  • 6. Promise Technology  Based on Promise Theory  Goals are invariants  Recipes depend on circumstances  Simple connection to « Service Level Agreements »  Promise that an Apache server is up and running  A promise is a documentation by itself © Normation 2010 -  Tous droits réservés – Document strictement confidentiel. Il ne peut être utilisé, reproduit ou divulgué sans autorisation écrite préalable. 6
  • 7. Convergence  Promises focus on the desired state  Convergence is built in Cfengine © Normation 2010 -  Tous droits réservés – Document strictement confidentiel. Il ne peut être utilisé, reproduit ou divulgué sans autorisation écrite préalable. 7
  • 8. Cfengine features © Normation 2010 -  Tous droits réservés – Document strictement confidentiel. Il ne peut être utilisé, reproduit ou divulgué sans autorisation écrite préalable. 8
  • 9. Cfengine agent  Agent installed on each server  Written in C  Cross platform (Linux, Unixes, *BSD, Windows, MacOS)  Few external dependencies (OpenSSL, [PCRE])  Very small memory footprint (less than 30 MB) © Normation 2010 -  Tous droits réservés – Document strictement confidentiel. Il ne peut être utilisé, reproduit ou divulgué sans autorisation écrite préalable. 9
  • 10. Cfengine agent  Aware of the computer's configuration  Autonomous  Automated  Continuous operation  Reliable : only one vulnerability on 17 years © Normation 2010 -  Tous droits réservés – Document strictement confidentiel. Il ne peut être utilisé, reproduit ou divulgué sans autorisation écrite préalable. 10
  • 11. Cfengine architecture © Normation 2010 -  Tous droits réservés – Document strictement confidentiel. Il ne peut être utilisé, reproduit ou divulgué sans autorisation écrite préalable. 11
  • 12. Cfengine architecture  Each node is responsible for its own state  High scalability  Resilient to network outage  Agents use external resources on demand  Fetch policies updates from orchestrator  Package management integration  LDAP and Database integration* © Normation 2010 -  Tous droits réservés – Document strictement confidentiel. Il ne peut être utilisé, reproduit ou divulgué sans autorisation écrite préalable. 12
  • 13. Installation  Installation packages available for :  CentOS  Debian  Fedora  FreeBSD*  RedHat  Solaris*  SUSE  Ubuntu  Windows* © Normation 2010 -  Tous droits réservés – Document strictement confidentiel. Il ne peut être utilisé, reproduit ou divulgué sans autorisation écrite préalable. 13
  • 14. Generic promise syntax type:  classe::   "promiser" ­> { "promisee1", "promisee2" },      attribute_1 => body_or_template1,      attribute_2 => body_or_template2; © Normation 2010 -  Tous droits réservés – Document strictement confidentiel. Il ne peut être utilisé, reproduit ou divulgué sans autorisation écrite préalable. 14
  • 15. Generic promise syntax  Types :  vars  classes  interfaces  processes  storage  packages  commands  methods  files  databases*  services*  reports © Normation 2010 -  Tous droits réservés – Document strictement confidentiel. Il ne peut être utilisé, reproduit ou divulgué sans autorisation écrite préalable. 15
  • 16. Use library body common control { bundlesequence => { "packages" }; inputs => {"cfengine_stdlib.cf"}; } bundle agent packages { vars: "match_package" slist => { "airstrike", "sudoku" # "apache2-mod_php5", "apache2-prefork", "php5" }; packages: "$(match_package)" package_policy => "add", package_method => apt; } © Normation 2010 -  Tous droits réservés – Document strictement confidentiel. Il ne peut être utilisé, reproduit ou divulgué sans autorisation écrite préalable. 16
  • 17. Examples © Normation 2010 -  Tous droits réservés – Document strictement confidentiel. Il ne peut être utilisé, reproduit ou divulgué sans autorisation écrite préalable. 17
  • 18. A word of caution  body common control {   bundlesequence => { "killall" };  }  bundle agent killall {   processes: ".*"    signals => { "kill" };  } Don't try this at home ! © Normation 2010 -  Tous droits réservés – Document strictement confidentiel. Il ne peut être utilisé, reproduit ou divulgué sans autorisation écrite préalable. 18
  • 19. Acknowledgements  Mark Burgess  Wrote Cfengine  Borrowed heavily from him :  Cfengine Reborn, Paris, 2009  http://cfengine.com/pages/demos  Loadays  Thank you for this conference © Normation 2010 -  Tous droits réservés – Document strictement confidentiel. Il ne peut être utilisé, reproduit ou divulgué sans autorisation écrite préalable. 19
  • 20. Want more ?  http://www.cfengine.org/  https://cfengine.com/forum/  Mailing-list : help-cfengine@cfengine.org  IRC : freenode #cfengine © Normation 2010 -  Tous droits réservés – Document strictement confidentiel. Il ne peut être utilisé, reproduit ou divulgué sans autorisation écrite préalable. 20
  • 21. Q&A Thank you for your attention ! © Normation 2010 -  Tous droits réservés – Document strictement confidentiel. Il ne peut être utilisé, reproduit ou divulgué sans autorisation écrite préalable. 21