Normation – CC-BY-SA normation.com
ncf
A powerful and structured CFEngine framework
Jonathan CLARKE – jcl@normation.com @jooooooon42 (that's 7 'o's)
ncf A powerful and structured CFEngine framework Jonathan CLARKE - - PowerPoint PPT Presentation
ncf A powerful and structured CFEngine framework Jonathan CLARKE jcl@normation.com @jooooooon42 (that's 7 'o's) Normation CC-BY-SA normation.com ncf Who am I? www.ncf.io Jonathan Clarke Title: Co-founder & Product lead at
Normation – CC-BY-SA normation.com
A powerful and structured CFEngine framework
Jonathan CLARKE – jcl@normation.com @jooooooon42 (that's 7 'o's)
Normation – CC-BY-SA normation.com
2
www.ncf.io
Who am I?
–
Co-creator of Rudder
–
Contributor to CFEngine, OpenLDAP
Normation – CC-BY-SA normation.com
3
www.ncf.io
Intro
Photo CC BY 2.0 from http://www.flickr.com/photos/misscreativecakes/
Normation – CC-BY-SA normation.com
4
www.ncf.io
Intro
Photo CC BY-NC 2.0 from http://www.flickr.com/photos/tnemily/ Photo CC BY 2.0 from http://www.flickr.com/photos/misscreativecakes/
Normation – CC-BY-SA normation.com
5
www.ncf.io
Background
Normation – CC-BY-SA normation.com
6
www.ncf.io
Feedback #1: CFEngine rocks!
Multi-platform Linux, Android, BSD, AIX, HP-UX, Solaris, Windows... Open Source GPLv3 Small footprint, scalable A few MB of RAM, just seconds to run... Continuous checking Agent based approach, no push Resilient to errors Network outages, failures, unavailable resources...
Normation – CC-BY-SA normation.com
7
www.ncf.io
Feedback #2: CFEngine is hard!
Too much “do it yourself” Building your own policy structure from blank slate Steep learning curve Syntax is unusual, hard to learn and understand Lack of feedback Output is hard to read, “what is going on?” Workarounds for bugs No way of systematically using a workaround
“Flour, eggs, milk and butter”
As in: https://digitalelf.net/2013/04/a-case-study-in-cfengine-layout/
Normation – CC-BY-SA normation.com
8
www.ncf.io
Feedback #2: CFEngine is hard!
Photo CC BY-NC-SA 2.0 from http://www.flickr.com/photos/penguincakes/
Normation – CC-BY-SA normation.com
9
www.ncf.io
Brief dilemma...
Normation – CC-BY-SA normation.com
10
www.ncf.io
Approach
Too much do it yourself Building your own policy structure from blank slate
Normation – CC-BY-SA normation.com
11
www.ncf.io Steep learning curve Syntax is unusual, hard to learn and understand
Approach
Normation – CC-BY-SA normation.com
12
www.ncf.io
Approach
Workarounds for bugs No way of systematically using a workaround
Normation – CC-BY-SA normation.com
13
www.ncf.io Lack of feedback Output is hard to read, “what is going on?”
Approach
Normation – CC-BY-SA normation.com
14
www.ncf.io
Result
Photo CC BY-NC-SA 2.0 from http://www.flickr.com/photos/omarsc/
Normation – CC-BY-SA normation.com
15
www.ncf.io
Result
Normation – CC-BY-SA normation.com
16
www.ncf.io
Result
Normation – CC-BY-SA normation.com
17
www.ncf.io
Result
This is actually
different OSes
Normation – CC-BY-SA normation.com
18
www.ncf.io
Result
R: [DEBUG] Promise kept, not doing anything: Install package ntp in version latest R: [INFO] Promise repaired, made a change: Build file /etc/ntp.conf from template ntp.conf R: [INFO] Promise repaired, made a change: Restart service ntp R: [DEBUG] Promise kept, not doing anything: Ensure that service ntp is running
Normation – CC-BY-SA normation.com
19
www.ncf.io
A layered approach
Services Techniques
IT services: “Corporate web site” Components of services: “Apache”
IT Ops Knowledge
Shared information: “httpd” package name
Generic methods
Unit tasks: “Copy file”, “Install package”, ...
Normation – CC-BY-SA normation.com
20
www.ncf.io
How does it work?
CFEngine 3 can have self-contained “bundles” that you can call with parameters.
ntp
logger package_install file_from_template service_restart Outputs structured messages
Normation – CC-BY-SA normation.com
21
www.ncf.io
Philosophy
Normation – CC-BY-SA normation.com
22
www.ncf.io
Overview of available generic_methods
Normation – CC-BY-SA normation.com
23
www.ncf.io
Online documentation
Normation – CC-BY-SA normation.com
24
www.ncf.io
Current status
Source: http://www.ohloh.net/p/ncf-project Actually CFEngine
Normation – CC-BY-SA normation.com
Check it out on: http://www.ncf.io/
Normation – CC-BY-SA normation.com
26
www.ncf.io
The cherry on the cake
Photo CC BY-NC-ND 2.0 from https://www.flickr.com/photos/creativeabubot
Normation – CC-BY-SA normation.com
27
www.ncf.io
The cherry on the cake
Normation – CC-BY-SA normation.com
28
www.ncf.io
The cherry on the cake
Normation – CC-BY-SA normation.com
Check it out on: http://www.ncf.io/
Jonathan CLARKE – jcl@normation.com @jooooooon42 (that's 7 'o's)