configuration management benefits for everyone - rudder @ flossuk spring conference 2012

27
 Configuration management benefits for everyone Jonathan Clarke <[email protected]> 22/03/2012 FLOSSUK Spring 2012 @ Edinburgh, UK

Upload: normation

Post on 17-May-2015

2.333 views

Category:

Technology


3 download

DESCRIPTION

Sharing and reusing configurations, rolling out upgrades, ensuring a security policy is correctly applied, automating repetitive tasks, preparing for disaster recovery... these are all missions for configuration management tools.Rudder is a new, open source approach to this domain, built on existing and reliable components. By allowing experts and power-users to create reusable templates and configurations based on best practices, it enables other actors in the IT department to benefit from the advantages of configuration management: using a web-based interface, junior sysadmins can quickly setup new servers while learning and respecting best practices and company policy, while service managers and security officers can get instant reports on their policies compliance level.This talk introduces Rudder and show some illustrative use cases before describing the architecture of it's main components and how they interact (a web interface written in Scala, the CFEngine 3 infrastructure used to manage hosts, OpenLDAP as an inventory and configuration data store...), including how to write your own techniques and extend existing ones.

TRANSCRIPT

Page 1: Configuration management benefits for everyone - Rudder @ FLOSSUK Spring Conference 2012

  

Configuration management benefitsfor everyone

Jonathan Clarke <[email protected]>

22/03/2012FLOSSUK Spring 2012 @ Edinburgh, UK

Page 2: Configuration management benefits for everyone - Rudder @ FLOSSUK Spring Conference 2012

  

Who am I?Jonathan Clarke

CTO at Normation in Paris, France

Rudder developer/tester/release manager

Occupation:

Job #1 : 70% developer, 30% sysadmin

Job #1 + 2 months: 70% sysadmin, 30% developer

Now: 20% dev, 20% sysadmin, 20% admin,40% "communicating"

Open source:

CFEngine, Rudder

LDAP: OpenLDAP, LSC, LTB...

Page 3: Configuration management benefits for everyone - Rudder @ FLOSSUK Spring Conference 2012

  

IT service management

Make sure the service does it's job

Install & UpdateConfigureRun

Security

User accountsPassword policyLog everythingSecurity patches

Availability

Limit the impact of a failureBackupsPlan for disaster recoveryScale out

Knowledge

Document configurationFormalize proceduresLog changes

Page 4: Configuration management benefits for everyone - Rudder @ FLOSSUK Spring Conference 2012

  

Configuration managementbenefits

Automate

First install + reinstallsUpdateConfigure

Regular checks

Install OK?Configuration OK?Integrity?

Industrialization

Re-use (configs, policies...)Reporting on config statusDashboards

Collaboration

More knowledge: Centralize information Full change logLess documentation: Less written procedures More automation

Page 5: Configuration management benefits for everyone - Rudder @ FLOSSUK Spring Conference 2012

  

For the all the rest,advantages are undeniable!

Managers?

(Maybe, in some situations, configuration management may be too much overhead...)

But does everyone really benefit?

Juniorsysadmins?

Non specialists?

Page 6: Configuration management benefits for everyone - Rudder @ FLOSSUK Spring Conference 2012

  

Goals

Lower the learning curve to use CM

This may mean losing some flexibility but mustn't mean

losing efficiency

Share CM benefitswith a wider population

Different information and capabilities for different people

Ease and spread the use of configuration management

Page 7: Configuration management benefits for everyone - Rudder @ FLOSSUK Spring Conference 2012

  

Fundamentals

Build on reliable tools

Share

OS-specific packages

Automaticinventory

Based on CFEngineLightweight and powerful

Improve

Web interface

ReportingLibrary of infrastructureconfigurations included

Streamlineduser experience

Page 8: Configuration management benefits for everyone - Rudder @ FLOSSUK Spring Conference 2012

  

PrincipleNew nodes

Web interface on Rudder server

View node data Make node groups(Static, Dynamic)

Configure ruleson groups

View infrastructure status

Managed nodes

Inventory

CFEngine policy Reports

Page 9: Configuration management benefits for everyone - Rudder @ FLOSSUK Spring Conference 2012

  

Web interface overview

Page 10: Configuration management benefits for everyone - Rudder @ FLOSSUK Spring Conference 2012

  

View node data

Page 11: Configuration management benefits for everyone - Rudder @ FLOSSUK Spring Conference 2012

  

Make node groups

Page 12: Configuration management benefits for everyone - Rudder @ FLOSSUK Spring Conference 2012

  

Rules

Predefined templates to manage systems

(Techniques)

- Install packages, distribute files- Manage users, distribute SSH keys- Configure DNS, NTP, package managers- Schedule backups...

Parametrization in theweb interface(Directives)

- Forms to change defaults

Conversion intoCFEngine Policies

- Applied by CFEngine agents

Page 13: Configuration management benefits for everyone - Rudder @ FLOSSUK Spring Conference 2012

  

Techniques

Page 14: Configuration management benefits for everyone - Rudder @ FLOSSUK Spring Conference 2012

  

Directives

Page 15: Configuration management benefits for everyone - Rudder @ FLOSSUK Spring Conference 2012

  

Rules

Page 16: Configuration management benefits for everyone - Rudder @ FLOSSUK Spring Conference 2012

  

Reports

Page 17: Configuration management benefits for everyone - Rudder @ FLOSSUK Spring Conference 2012

  

Reports by node

Page 18: Configuration management benefits for everyone - Rudder @ FLOSSUK Spring Conference 2012

  

Rudder workflow

Techniques

Implemented with CFEngine syntax + Variables for web configuration

Directives

Rule

Apply Directivesto a Group

Group

Nodes

Search criteria on inventory information - Hardware / OS / Network - Software - Node nameEnter variables in

the web interfaceCreate a group

Page 19: Configuration management benefits for everyone - Rudder @ FLOSSUK Spring Conference 2012

  

Current status

Version 2.3released in

october 2011

Web interface to manage

nodes and configuration rules

Real time reports on infrastructure

status

Tehniques Library(config templates)

(currently 33)

Packaged for main Linux distributions

All changes logged

- Human readable- Git commits

Page 20: Configuration management benefits for everyone - Rudder @ FLOSSUK Spring Conference 2012

  

Install

Installing a Rudder server

# echo 'deb http://www.rudder-project.org/apt-2.3/ squeeze main' >> /etc/apt/sources.list# aptitude update# aptitude install rudder-server-root# /opt/rudder/bin/rudder-init.sh

Installing Rudder on a node to manage

# echo 'deb http://www.rudder-project.org/apt-2.3/ squeeze main' >> /etc/apt/sources.list# aptitude update# aptitude install rudder-agent# echo "server.address.com" > /var/rudder/cfengine-community/policy_server.dat

Page 21: Configuration management benefits for everyone - Rudder @ FLOSSUK Spring Conference 2012

  

Requirements (node)

Memory occupation of CFEngine deamons

Small amount of free RAM

(10-20 MB)

Some dependencies

- SSL- BerkeleyDB- PCRE- Syslog

Page 22: Configuration management benefits for everyone - Rudder @ FLOSSUK Spring Conference 2012

  

Rudder architecture Based on typical CFEngine architecture

CFEngine server

Node Node Node Node

Communications by TCP(port 5308)- File metadata- File content

Page 23: Configuration management benefits for everyone - Rudder @ FLOSSUK Spring Conference 2012

  

Rudder architecture

CFEngine server

Node Node Node Node

Rudder serverGenerate CFEngine policy

Communications by TCP(port 5309)- File metadata- File content

Reportsvia syslog

Allow for interoperability with standard

CFEngine

Inventory data from

FusionInventory

A few extrasAggregate reports

Page 24: Configuration management benefits for everyone - Rudder @ FLOSSUK Spring Conference 2012

  

Extend

Write new Techniques

- Based on CFEngine 3- An XML descriptor to set up the web forms (metadata.xml)- Configure anything!

Write plugins for the webapp

- Plugins are automatically discovered at startup- Implementation example: https://github.com/Normation/rudder-plugin-helloworld

Page 25: Configuration management benefits for everyone - Rudder @ FLOSSUK Spring Conference 2012

  

Roadmap 2.4: March 2012

Import/Export configurations across Rudder environments Approval workflow for changes before deploying them More and better Techniques Deleting nodes Simple REST API

2.5: Mid 2012 Better Directive Configuration display More detailed reporting RBAC (Role Based Access Control)

Page 26: Configuration management benefits for everyone - Rudder @ FLOSSUK Spring Conference 2012

  

Community Source code on GitHub Documentation wiki

http://rudder-project.org

Small but growing open source community Mailing lists

[email protected] [email protected]

IRC : #rudder on FreeNode Twitter: @RudderProject

Page 27: Configuration management benefits for everyone - Rudder @ FLOSSUK Spring Conference 2012

  

Questions?

Stay in touch...

Jonathan ClarkeMail: [email protected]: jooooooon42

22/03/2012FLOSSUK Spring 2012 @ Edinburgh, UK