Mais conteúdo relacionado Cfengine presentation @Loadays2. 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