SlideShare a Scribd company logo
24/09/2011




  Configuration Management
   Automating and rationalizing server setup with CFEngine 3




Jonathan Clarke   <jcl@normation.com>

                           
About the speaker
Jonathan Clarke                → CTO →

Sysadmin background                  Startup created in 2010
Infrastructure management            Based in Paris
FLOSS contributor:                   Configuration management:
  CFEngine
                                            CFEngine (partner)
  Others (OpenLDAP, LSC,
  FusionInventory...)                       Rudder (creator)




                            
Introduction

                          1. CREATE
                          2. SETUP
                          3. USE
                          4. THROW AWAY
    Cloud Computing




                       
Introduction

                           1. CREATE
                           2. SETUP
                           3. USE
                           4. THROW AWAY
     Cloud Computing



  → APIs and tools are available




                        
Introduction

                            1. CREATE
                            2. SETUP
                            3. USE
                            4. THROW AWAY
      Cloud Computing


 Three approaches:
  1. Manually
  2. Imaging
  3. Configuration tool

                         
Agenda

1) Configuration Management principles
2) Configuration Management tools
3) About CFEngine 3
4) Getting started




                  
Configuration Management
     Principles through examples...




                
A server crashed.

               Install a new one, people
                 can't work without it!

OK, it'll be done in
about two days...



            Why configuration management?

                                  There's a new critical security patch
                                  we must deploy on all our servers!

                                                               Get it out quickly!

                                  Right, I'll put the whole
                                  team on it.




                               
Reproducibility    Industrialization



              Automation


                Why configuration management?




                              
How do we setup
   service X?

                     Ask Jim, he's
                   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...
                                                          He'll tell you what it was.

                                         Damn, he's on vacation!




                                  
Documentation     History



                           Building-up
                           knowledge


    Why configuration management?




              
An intruder just stole our data
using a vulnerability in a
module we don't need...
                                    I thought the project specification
                                    ensured that we disabled that?
Er, it did, but we enabled it to
solve a problem and forgot to
disable it afterwards... sorry...


        Why configuration management?




                             
Why configuration management?


              Continuous
               vigilance


Automatic repairs     Alerts


                            
I don't understand how this
     server is setup. It doesn't match
     our best-practices.


                           Oh, that's a legacy server...



       Why configuration management?

                                              Give me details on our
                                              current security policy.
    Well, it's a collection of little
    things, here and there...

                                            Ah... Well, OK.
                                            Tell me: is it fully applied
                                            on all our critical servers?
    Er...




                              
Why configuration management?



                           Rationalization


                    Normalization     Control


              
Reproducibility    Industrialization   Documentation     History



           Automation                            Building-up
                                                 knowledge


               Configuration management benefits


           Continuous
                                               Rationalization
            vigilance


Automatic repairs        Alerts         Normalization     Control


                               
Configuration Management
        The tools




         
Main tools available


 CFEngine 3       Puppet   Chef




               
Main tools available: history




                         Relative origins of CFEngine, Puppet and Chef


Source:
http://verticalsysadmin.com/blog/uncategorized/relative-origins-o
f-cfengine-chef-and-puppet

                                           
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


                           
The tools: some differences
                  CFEngine 3    Puppet       Chef




                      C          Ruby        Ruby
   Language


                     GPL        Apache       Apache
                               (ex-GPL)
    License


                     Yes       Preliminary   Partial
Windows support




                            
A bit about CFEngine 3...




         
CFEngine 3: Features
                                  Multi platform




      Windows support

 Two versions:

 1. Community (open source)
     Runs in Cygwin

 2. Nova (commercial)
   ● Native Windows service




                               
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




                           
CFEngine 3: Features



Lightweight, non-intrusive




        Non-intrusive
                                 Daemon consumption on managed hosts
 Only two dependencies:
 - BerkeleyDB
 - OpenSSL




                              
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




                                           
CFEngine 3: Features
                                 Multi platform




                                                       Adapted to
Lightweight, non-intrusive                           heterogeneous
                                                      environments



       Autonomous
       Fault-tolerant                             Highly scalable
                                  Progressive
                                    roll-out




                              
Getting started with CFEngine 3




            
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




                            
CFEngine 3: Client-Server
   Using a server is optional!
              Get started by running standalone

   CFEngine's server daemon is cf-serverd
              Dedicated protocol: TCP port 5308
              Requires SSL key exchange




                            
CFEngine 3: Configuration
   Minimal configuration:
    body common control
    {
      bundlesequence => { "HelloWorld" };
    }
                                                 Syntax notes

    bundle agent HelloWorld                 Whitespace doesn't count
    {                                        Comments follow #
      # This will output "Hello World!"
      commands:
        "/bin/echo Hello World!";
    }

               Structure notes

     ●   Structures are created using { }
     ●   Structures are bundles or bodies



                                  
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


                                
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";
    }




                         
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;




                      
24/09/2011




             Thanks for participating!


Stay in touch...



Jonathan Clarke
Email: jcl@normation.com
Twitter: jooooooon42

                            

More Related Content

What's hot

Acme Packet Provisioning Framework
Acme Packet Provisioning FrameworkAcme Packet Provisioning Framework
Acme Packet Provisioning Framework
Mislav Petričević
 
XS Oracle 2009 Vm Snapshots
XS Oracle 2009 Vm SnapshotsXS Oracle 2009 Vm Snapshots
XS Oracle 2009 Vm Snapshots
The Linux Foundation
 
I/O Scalability in Xen
I/O Scalability in XenI/O Scalability in Xen
I/O Scalability in Xen
The Linux Foundation
 
Linux Foundation Collaboration Summit 13 :10 years of Xen and Beyond
Linux Foundation Collaboration Summit 13 :10 years of Xen and BeyondLinux Foundation Collaboration Summit 13 :10 years of Xen and Beyond
Linux Foundation Collaboration Summit 13 :10 years of Xen and Beyond
The Linux Foundation
 
Nakajima hvm-be final
Nakajima hvm-be finalNakajima hvm-be final
Nakajima hvm-be final
The Linux Foundation
 
TSM 6.4 Technical updates
TSM 6.4 Technical updates TSM 6.4 Technical updates
TSM 6.4 Technical updates
Solv AS
 
Automated installations and infrastructure management with FAI
Automated installations and infrastructure management with FAIAutomated installations and infrastructure management with FAI
Automated installations and infrastructure management with FAI
Henning Sprang
 
Performance Profiling of Virtual Machines
Performance Profiling of Virtual MachinesPerformance Profiling of Virtual Machines
Performance Profiling of Virtual Machines
Jiaqing Du
 
PCoIP and More - VMware View - Performance and Best Practices
PCoIP and More - VMware View - Performance and Best Practices PCoIP and More - VMware View - Performance and Best Practices
PCoIP and More - VMware View - Performance and Best Practices
VMwarePR
 
Cloud infrastructure licensing_v2
Cloud infrastructure licensing_v2Cloud infrastructure licensing_v2
Cloud infrastructure licensing_v2
mikhail.mikheev
 
Big ip-ltm-asm-dg
Big ip-ltm-asm-dgBig ip-ltm-asm-dg
Big ip-ltm-asm-dg
wardell henley
 
Linux Desktop Automation
Linux Desktop AutomationLinux Desktop Automation
Linux Desktop Automation
Rui Lapa
 
Keynote Speech: Xen ARM Virtualization
Keynote Speech: Xen ARM VirtualizationKeynote Speech: Xen ARM Virtualization
Keynote Speech: Xen ARM Virtualization
The Linux Foundation
 
It camp veeam presentation (no videos)
It camp veeam presentation (no videos)It camp veeam presentation (no videos)
It camp veeam presentation (no videos)
Harold Wong
 
Realtime scheduling for virtual machines in SKT
Realtime scheduling for virtual machines in SKTRealtime scheduling for virtual machines in SKT
Realtime scheduling for virtual machines in SKT
The Linux Foundation
 
Performance Profiling in a Virtualized Environment
Performance Profiling in a Virtualized EnvironmentPerformance Profiling in a Virtualized Environment
Performance Profiling in a Virtualized Environment
Jiaqing Du
 
XS Boston 2008 Project Status
XS Boston 2008 Project StatusXS Boston 2008 Project Status
XS Boston 2008 Project Status
The Linux Foundation
 
Single Console for viewing OpManager & DeviceExpert Alarms
Single Console for viewing OpManager & DeviceExpert AlarmsSingle Console for viewing OpManager & DeviceExpert Alarms
Single Console for viewing OpManager & DeviceExpert Alarms
ManageEngine, Zoho Corporation
 
XS Oracle 2009 Intro Slides
XS Oracle 2009 Intro SlidesXS Oracle 2009 Intro Slides
XS Oracle 2009 Intro Slides
The Linux Foundation
 
XS Boston 2008 Self IO Emulation
XS Boston 2008 Self IO EmulationXS Boston 2008 Self IO Emulation
XS Boston 2008 Self IO Emulation
The Linux Foundation
 

What's hot (20)

Acme Packet Provisioning Framework
Acme Packet Provisioning FrameworkAcme Packet Provisioning Framework
Acme Packet Provisioning Framework
 
XS Oracle 2009 Vm Snapshots
XS Oracle 2009 Vm SnapshotsXS Oracle 2009 Vm Snapshots
XS Oracle 2009 Vm Snapshots
 
I/O Scalability in Xen
I/O Scalability in XenI/O Scalability in Xen
I/O Scalability in Xen
 
Linux Foundation Collaboration Summit 13 :10 years of Xen and Beyond
Linux Foundation Collaboration Summit 13 :10 years of Xen and BeyondLinux Foundation Collaboration Summit 13 :10 years of Xen and Beyond
Linux Foundation Collaboration Summit 13 :10 years of Xen and Beyond
 
Nakajima hvm-be final
Nakajima hvm-be finalNakajima hvm-be final
Nakajima hvm-be final
 
TSM 6.4 Technical updates
TSM 6.4 Technical updates TSM 6.4 Technical updates
TSM 6.4 Technical updates
 
Automated installations and infrastructure management with FAI
Automated installations and infrastructure management with FAIAutomated installations and infrastructure management with FAI
Automated installations and infrastructure management with FAI
 
Performance Profiling of Virtual Machines
Performance Profiling of Virtual MachinesPerformance Profiling of Virtual Machines
Performance Profiling of Virtual Machines
 
PCoIP and More - VMware View - Performance and Best Practices
PCoIP and More - VMware View - Performance and Best Practices PCoIP and More - VMware View - Performance and Best Practices
PCoIP and More - VMware View - Performance and Best Practices
 
Cloud infrastructure licensing_v2
Cloud infrastructure licensing_v2Cloud infrastructure licensing_v2
Cloud infrastructure licensing_v2
 
Big ip-ltm-asm-dg
Big ip-ltm-asm-dgBig ip-ltm-asm-dg
Big ip-ltm-asm-dg
 
Linux Desktop Automation
Linux Desktop AutomationLinux Desktop Automation
Linux Desktop Automation
 
Keynote Speech: Xen ARM Virtualization
Keynote Speech: Xen ARM VirtualizationKeynote Speech: Xen ARM Virtualization
Keynote Speech: Xen ARM Virtualization
 
It camp veeam presentation (no videos)
It camp veeam presentation (no videos)It camp veeam presentation (no videos)
It camp veeam presentation (no videos)
 
Realtime scheduling for virtual machines in SKT
Realtime scheduling for virtual machines in SKTRealtime scheduling for virtual machines in SKT
Realtime scheduling for virtual machines in SKT
 
Performance Profiling in a Virtualized Environment
Performance Profiling in a Virtualized EnvironmentPerformance Profiling in a Virtualized Environment
Performance Profiling in a Virtualized Environment
 
XS Boston 2008 Project Status
XS Boston 2008 Project StatusXS Boston 2008 Project Status
XS Boston 2008 Project Status
 
Single Console for viewing OpManager & DeviceExpert Alarms
Single Console for viewing OpManager & DeviceExpert AlarmsSingle Console for viewing OpManager & DeviceExpert Alarms
Single Console for viewing OpManager & DeviceExpert Alarms
 
XS Oracle 2009 Intro Slides
XS Oracle 2009 Intro SlidesXS Oracle 2009 Intro Slides
XS Oracle 2009 Intro Slides
 
XS Boston 2008 Self IO Emulation
XS Boston 2008 Self IO EmulationXS Boston 2008 Self IO Emulation
XS Boston 2008 Self IO Emulation
 

Viewers also liked

Salaat
SalaatSalaat
Salaat
firofame
 
A tale of Disaster Recovery (Cfengine everyday, practices and tools)
A tale of Disaster Recovery (Cfengine everyday, practices and tools)A tale of Disaster Recovery (Cfengine everyday, practices and tools)
A tale of Disaster Recovery (Cfengine everyday, practices and tools)
Jonathan Clarke
 
Fall in Love with Russia, CCS Webinar Presentation
Fall in Love with Russia, CCS Webinar PresentationFall in Love with Russia, CCS Webinar Presentation
Fall in Love with Russia, CCS Webinar Presentation
Cross-Cultural Solutions
 
LSC - Synchronizing identities @ Loadays 2010
LSC - Synchronizing identities @ Loadays 2010LSC - Synchronizing identities @ Loadays 2010
LSC - Synchronizing identities @ Loadays 2010
Jonathan Clarke
 
QL-IjmFT6Ub
QL-IjmFT6UbQL-IjmFT6Ub
QL-IjmFT6Ub
Rene Larson
 
Volunteer Abroad in India - 16 Years and Counting
Volunteer Abroad in India - 16 Years and CountingVolunteer Abroad in India - 16 Years and Counting
Volunteer Abroad in India - 16 Years and Counting
Cross-Cultural Solutions
 
Volunteer in Russica: Learn From CCS Alumni - CCS Webinar Presentation
Volunteer in Russica: Learn From CCS Alumni - CCS Webinar PresentationVolunteer in Russica: Learn From CCS Alumni - CCS Webinar Presentation
Volunteer in Russica: Learn From CCS Alumni - CCS Webinar Presentation
Cross-Cultural Solutions
 
Sharing automation - why we need a language like ncf for this (Ignite @ devop...
Sharing automation - why we need a language like ncf for this (Ignite @ devop...Sharing automation - why we need a language like ncf for this (Ignite @ devop...
Sharing automation - why we need a language like ncf for this (Ignite @ devop...
Jonathan Clarke
 
Why Volunteer Abroad? A Look at FAQs - CCS Webinar Presentation
Why Volunteer Abroad? A Look at FAQs - CCS Webinar PresentationWhy Volunteer Abroad? A Look at FAQs - CCS Webinar Presentation
Why Volunteer Abroad? A Look at FAQs - CCS Webinar Presentation
Cross-Cultural Solutions
 
Rudder 3.0 and beyond
Rudder 3.0 and beyondRudder 3.0 and beyond
Rudder 3.0 and beyond
Jonathan Clarke
 
ZNetLive- A Quick Overview
ZNetLive- A Quick OverviewZNetLive- A Quick Overview
ZNetLive- A Quick Overview
ZNetLive
 

Viewers also liked (11)

Salaat
SalaatSalaat
Salaat
 
A tale of Disaster Recovery (Cfengine everyday, practices and tools)
A tale of Disaster Recovery (Cfengine everyday, practices and tools)A tale of Disaster Recovery (Cfengine everyday, practices and tools)
A tale of Disaster Recovery (Cfengine everyday, practices and tools)
 
Fall in Love with Russia, CCS Webinar Presentation
Fall in Love with Russia, CCS Webinar PresentationFall in Love with Russia, CCS Webinar Presentation
Fall in Love with Russia, CCS Webinar Presentation
 
LSC - Synchronizing identities @ Loadays 2010
LSC - Synchronizing identities @ Loadays 2010LSC - Synchronizing identities @ Loadays 2010
LSC - Synchronizing identities @ Loadays 2010
 
QL-IjmFT6Ub
QL-IjmFT6UbQL-IjmFT6Ub
QL-IjmFT6Ub
 
Volunteer Abroad in India - 16 Years and Counting
Volunteer Abroad in India - 16 Years and CountingVolunteer Abroad in India - 16 Years and Counting
Volunteer Abroad in India - 16 Years and Counting
 
Volunteer in Russica: Learn From CCS Alumni - CCS Webinar Presentation
Volunteer in Russica: Learn From CCS Alumni - CCS Webinar PresentationVolunteer in Russica: Learn From CCS Alumni - CCS Webinar Presentation
Volunteer in Russica: Learn From CCS Alumni - CCS Webinar Presentation
 
Sharing automation - why we need a language like ncf for this (Ignite @ devop...
Sharing automation - why we need a language like ncf for this (Ignite @ devop...Sharing automation - why we need a language like ncf for this (Ignite @ devop...
Sharing automation - why we need a language like ncf for this (Ignite @ devop...
 
Why Volunteer Abroad? A Look at FAQs - CCS Webinar Presentation
Why Volunteer Abroad? A Look at FAQs - CCS Webinar PresentationWhy Volunteer Abroad? A Look at FAQs - CCS Webinar Presentation
Why Volunteer Abroad? A Look at FAQs - CCS Webinar Presentation
 
Rudder 3.0 and beyond
Rudder 3.0 and beyondRudder 3.0 and beyond
Rudder 3.0 and beyond
 
ZNetLive- A Quick Overview
ZNetLive- A Quick OverviewZNetLive- A Quick Overview
ZNetLive- A Quick Overview
 

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

Getting started with Puppet
Getting started with PuppetGetting started with Puppet
Getting started with Puppet
jeyg
 
Rudder - Configuration management benefits for everyone (FOSDEM 2012)
Rudder - Configuration management benefits for everyone (FOSDEM 2012)Rudder - Configuration management benefits for everyone (FOSDEM 2012)
Rudder - Configuration management benefits for everyone (FOSDEM 2012)
RUDDER
 
A tale of Disaster Recovery (Cfengine everyday, practices and tools)
A tale of Disaster Recovery (Cfengine everyday, practices and tools)A tale of Disaster Recovery (Cfengine everyday, practices and tools)
A tale of Disaster Recovery (Cfengine everyday, practices and tools)
RUDDER
 
Configuration management benefits for everyone - Rudder @ FLOSSUK Spring Conf...
Configuration management benefits for everyone - Rudder @ FLOSSUK Spring Conf...Configuration management benefits for everyone - Rudder @ FLOSSUK Spring Conf...
Configuration management benefits for everyone - Rudder @ FLOSSUK Spring Conf...
RUDDER
 
Cloud Application Security: Lessons Learned
Cloud Application Security: Lessons LearnedCloud Application Security: Lessons Learned
Cloud Application Security: Lessons Learned
Jason Chan
 
Continuous Delivery in the AWS Cloud
Continuous Delivery in the AWS CloudContinuous Delivery in the AWS Cloud
Continuous Delivery in the AWS Cloud
Nigel Fernandes
 
Continuous Delivery in the Cloud
Continuous Delivery in the CloudContinuous Delivery in the Cloud
Continuous Delivery in the Cloud
Fabio Lessa
 
Infrastructure Automation with Chef & Ansible
Infrastructure Automation with Chef & AnsibleInfrastructure Automation with Chef & Ansible
Infrastructure Automation with Chef & Ansible
wajrcs
 
IBM PureFlex System Live Demo Outline: A scenario
IBM PureFlex System Live Demo Outline: A scenarioIBM PureFlex System Live Demo Outline: A scenario
IBM PureFlex System Live Demo Outline: A scenario
IBM India Smarter Computing
 
Newvem Community - Cloud Management
Newvem Community - Cloud ManagementNewvem Community - Cloud Management
Newvem Community - Cloud Management
Andreas Chatzakis
 
Cloud Management
Cloud ManagementCloud Management
Cloud Management
Andreas Chatzakis
 
Virtualization 101: Everything You Need To Know To Get Started With VMware
Virtualization 101: Everything You Need To Know To Get Started With VMwareVirtualization 101: Everything You Need To Know To Get Started With VMware
Virtualization 101: Everything You Need To Know To Get Started With VMware
Datapath Consulting
 
Ansible, MongoDB Ops Manager and AWS v1.1
Ansible, MongoDB Ops Manager and AWS v1.1Ansible, MongoDB Ops Manager and AWS v1.1
Ansible, MongoDB Ops Manager and AWS v1.1
Michael Lynn
 
Cloud Application Security: Lessons Learned
Cloud Application Security: Lessons LearnedCloud Application Security: Lessons Learned
Cloud Application Security: Lessons Learned
Jason Chan
 
Mcollective introduction
Mcollective introductionMcollective introduction
Mcollective introduction
Javier Turégano Molina
 
LAST Conference - Dev-Ops and Continuous Delivery
LAST Conference - Dev-Ops and Continuous DeliveryLAST Conference - Dev-Ops and Continuous Delivery
LAST Conference - Dev-Ops and Continuous Delivery
Nigel Fernandes
 
Introducing CQ 5.1
Introducing CQ 5.1Introducing CQ 5.1
Introducing CQ 5.1
David Nuescheler
 
Joanna Rutkowska Subverting Vista Kernel
Joanna Rutkowska   Subverting Vista KernelJoanna Rutkowska   Subverting Vista Kernel
Joanna Rutkowska Subverting Vista Kernel
guestf1a032
 
Cloud-powered Continuous Integration and Deployment architectures - Jinesh Varia
Cloud-powered Continuous Integration and Deployment architectures - Jinesh VariaCloud-powered Continuous Integration and Deployment architectures - Jinesh Varia
Cloud-powered Continuous Integration and Deployment architectures - Jinesh Varia
Amazon Web Services
 
DevOps, A brief introduction to Vagrant & Ansible
DevOps, A brief introduction to Vagrant & AnsibleDevOps, A brief introduction to Vagrant & Ansible
DevOps, A brief introduction to Vagrant & Ansible
Arnaud LEMAIRE
 

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

Getting started with Puppet
Getting started with PuppetGetting started with Puppet
Getting started with Puppet
 
Rudder - Configuration management benefits for everyone (FOSDEM 2012)
Rudder - Configuration management benefits for everyone (FOSDEM 2012)Rudder - Configuration management benefits for everyone (FOSDEM 2012)
Rudder - Configuration management benefits for everyone (FOSDEM 2012)
 
A tale of Disaster Recovery (Cfengine everyday, practices and tools)
A tale of Disaster Recovery (Cfengine everyday, practices and tools)A tale of Disaster Recovery (Cfengine everyday, practices and tools)
A tale of Disaster Recovery (Cfengine everyday, practices and tools)
 
Configuration management benefits for everyone - Rudder @ FLOSSUK Spring Conf...
Configuration management benefits for everyone - Rudder @ FLOSSUK Spring Conf...Configuration management benefits for everyone - Rudder @ FLOSSUK Spring Conf...
Configuration management benefits for everyone - Rudder @ FLOSSUK Spring Conf...
 
Cloud Application Security: Lessons Learned
Cloud Application Security: Lessons LearnedCloud Application Security: Lessons Learned
Cloud Application Security: Lessons Learned
 
Continuous Delivery in the AWS Cloud
Continuous Delivery in the AWS CloudContinuous Delivery in the AWS Cloud
Continuous Delivery in the AWS Cloud
 
Continuous Delivery in the Cloud
Continuous Delivery in the CloudContinuous Delivery in the Cloud
Continuous Delivery in the Cloud
 
Infrastructure Automation with Chef & Ansible
Infrastructure Automation with Chef & AnsibleInfrastructure Automation with Chef & Ansible
Infrastructure Automation with Chef & Ansible
 
IBM PureFlex System Live Demo Outline: A scenario
IBM PureFlex System Live Demo Outline: A scenarioIBM PureFlex System Live Demo Outline: A scenario
IBM PureFlex System Live Demo Outline: A scenario
 
Newvem Community - Cloud Management
Newvem Community - Cloud ManagementNewvem Community - Cloud Management
Newvem Community - Cloud Management
 
Cloud Management
Cloud ManagementCloud Management
Cloud Management
 
Virtualization 101: Everything You Need To Know To Get Started With VMware
Virtualization 101: Everything You Need To Know To Get Started With VMwareVirtualization 101: Everything You Need To Know To Get Started With VMware
Virtualization 101: Everything You Need To Know To Get Started With VMware
 
Ansible, MongoDB Ops Manager and AWS v1.1
Ansible, MongoDB Ops Manager and AWS v1.1Ansible, MongoDB Ops Manager and AWS v1.1
Ansible, MongoDB Ops Manager and AWS v1.1
 
Cloud Application Security: Lessons Learned
Cloud Application Security: Lessons LearnedCloud Application Security: Lessons Learned
Cloud Application Security: Lessons Learned
 
Mcollective introduction
Mcollective introductionMcollective introduction
Mcollective introduction
 
LAST Conference - Dev-Ops and Continuous Delivery
LAST Conference - Dev-Ops and Continuous DeliveryLAST Conference - Dev-Ops and Continuous Delivery
LAST Conference - Dev-Ops and Continuous Delivery
 
Introducing CQ 5.1
Introducing CQ 5.1Introducing CQ 5.1
Introducing CQ 5.1
 
Joanna Rutkowska Subverting Vista Kernel
Joanna Rutkowska   Subverting Vista KernelJoanna Rutkowska   Subverting Vista Kernel
Joanna Rutkowska Subverting Vista Kernel
 
Cloud-powered Continuous Integration and Deployment architectures - Jinesh Varia
Cloud-powered Continuous Integration and Deployment architectures - Jinesh VariaCloud-powered Continuous Integration and Deployment architectures - Jinesh Varia
Cloud-powered Continuous Integration and Deployment architectures - Jinesh Varia
 
DevOps, A brief introduction to Vagrant & Ansible
DevOps, A brief introduction to Vagrant & AnsibleDevOps, A brief introduction to Vagrant & Ansible
DevOps, A brief introduction to Vagrant & Ansible
 

More from Jonathan Clarke

Interfacing infrastructure-as-code with non-expert users
Interfacing infrastructure-as-code with non-expert usersInterfacing infrastructure-as-code with non-expert users
Interfacing infrastructure-as-code with non-expert users
Jonathan Clarke
 
What is new in CFEngine 3.6
What is new in CFEngine 3.6What is new in CFEngine 3.6
What is new in CFEngine 3.6
Jonathan Clarke
 
Automating security policies (compliance) with Rudder
Automating security policies (compliance) with RudderAutomating security policies (compliance) with Rudder
Automating security policies (compliance) with Rudder
Jonathan Clarke
 
OpenLDAP - Astuces pour en faire l'annuaire d'entreprise idéal
OpenLDAP - Astuces pour en faire l'annuaire d'entreprise idéalOpenLDAP - Astuces pour en faire l'annuaire d'entreprise idéal
OpenLDAP - Astuces pour en faire l'annuaire d'entreprise idéal
Jonathan Clarke
 
LDAP Synchronization Connector presentation at LDAPCon 2009
LDAP Synchronization Connector presentation at LDAPCon 2009LDAP Synchronization Connector presentation at LDAPCon 2009
LDAP Synchronization Connector presentation at LDAPCon 2009
Jonathan Clarke
 
LDAP Synchronization Connector (LSC)
LDAP Synchronization Connector (LSC)LDAP Synchronization Connector (LSC)
LDAP Synchronization Connector (LSC)
Jonathan Clarke
 

More from Jonathan Clarke (6)

Interfacing infrastructure-as-code with non-expert users
Interfacing infrastructure-as-code with non-expert usersInterfacing infrastructure-as-code with non-expert users
Interfacing infrastructure-as-code with non-expert users
 
What is new in CFEngine 3.6
What is new in CFEngine 3.6What is new in CFEngine 3.6
What is new in CFEngine 3.6
 
Automating security policies (compliance) with Rudder
Automating security policies (compliance) with RudderAutomating security policies (compliance) with Rudder
Automating security policies (compliance) with Rudder
 
OpenLDAP - Astuces pour en faire l'annuaire d'entreprise idéal
OpenLDAP - Astuces pour en faire l'annuaire d'entreprise idéalOpenLDAP - Astuces pour en faire l'annuaire d'entreprise idéal
OpenLDAP - Astuces pour en faire l'annuaire d'entreprise idéal
 
LDAP Synchronization Connector presentation at LDAPCon 2009
LDAP Synchronization Connector presentation at LDAPCon 2009LDAP Synchronization Connector presentation at LDAPCon 2009
LDAP Synchronization Connector presentation at LDAPCon 2009
 
LDAP Synchronization Connector (LSC)
LDAP Synchronization Connector (LSC)LDAP Synchronization Connector (LSC)
LDAP Synchronization Connector (LSC)
 

Recently uploaded

Christine's Product Research Presentation.pptx
Christine's Product Research Presentation.pptxChristine's Product Research Presentation.pptx
Christine's Product Research Presentation.pptx
christinelarrosa
 
Leveraging the Graph for Clinical Trials and Standards
Leveraging the Graph for Clinical Trials and StandardsLeveraging the Graph for Clinical Trials and Standards
Leveraging the Graph for Clinical Trials and Standards
Neo4j
 
Northern Engraving | Modern Metal Trim, Nameplates and Appliance Panels
Northern Engraving | Modern Metal Trim, Nameplates and Appliance PanelsNorthern Engraving | Modern Metal Trim, Nameplates and Appliance Panels
Northern Engraving | Modern Metal Trim, Nameplates and Appliance Panels
Northern Engraving
 
PRODUCT LISTING OPTIMIZATION PRESENTATION.pptx
PRODUCT LISTING OPTIMIZATION PRESENTATION.pptxPRODUCT LISTING OPTIMIZATION PRESENTATION.pptx
PRODUCT LISTING OPTIMIZATION PRESENTATION.pptx
christinelarrosa
 
Main news related to the CCS TSI 2023 (2023/1695)
Main news related to the CCS TSI 2023 (2023/1695)Main news related to the CCS TSI 2023 (2023/1695)
Main news related to the CCS TSI 2023 (2023/1695)
Jakub Marek
 
zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...
zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...
zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...
Alex Pruden
 
Connector Corner: Seamlessly power UiPath Apps, GenAI with prebuilt connectors
Connector Corner: Seamlessly power UiPath Apps, GenAI with prebuilt connectorsConnector Corner: Seamlessly power UiPath Apps, GenAI with prebuilt connectors
Connector Corner: Seamlessly power UiPath Apps, GenAI with prebuilt connectors
DianaGray10
 
Apps Break Data
Apps Break DataApps Break Data
Apps Break Data
Ivo Velitchkov
 
Your One-Stop Shop for Python Success: Top 10 US Python Development Providers
Your One-Stop Shop for Python Success: Top 10 US Python Development ProvidersYour One-Stop Shop for Python Success: Top 10 US Python Development Providers
Your One-Stop Shop for Python Success: Top 10 US Python Development Providers
akankshawande
 
Christine's Supplier Sourcing Presentaion.pptx
Christine's Supplier Sourcing Presentaion.pptxChristine's Supplier Sourcing Presentaion.pptx
Christine's Supplier Sourcing Presentaion.pptx
christinelarrosa
 
Biomedical Knowledge Graphs for Data Scientists and Bioinformaticians
Biomedical Knowledge Graphs for Data Scientists and BioinformaticiansBiomedical Knowledge Graphs for Data Scientists and Bioinformaticians
Biomedical Knowledge Graphs for Data Scientists and Bioinformaticians
Neo4j
 
GraphRAG for LifeSciences Hands-On with the Clinical Knowledge Graph
GraphRAG for LifeSciences Hands-On with the Clinical Knowledge GraphGraphRAG for LifeSciences Hands-On with the Clinical Knowledge Graph
GraphRAG for LifeSciences Hands-On with the Clinical Knowledge Graph
Neo4j
 
"Choosing proper type of scaling", Olena Syrota
"Choosing proper type of scaling", Olena Syrota"Choosing proper type of scaling", Olena Syrota
"Choosing proper type of scaling", Olena Syrota
Fwdays
 
Freshworks Rethinks NoSQL for Rapid Scaling & Cost-Efficiency
Freshworks Rethinks NoSQL for Rapid Scaling & Cost-EfficiencyFreshworks Rethinks NoSQL for Rapid Scaling & Cost-Efficiency
Freshworks Rethinks NoSQL for Rapid Scaling & Cost-Efficiency
ScyllaDB
 
Y-Combinator seed pitch deck template PP
Y-Combinator seed pitch deck template PPY-Combinator seed pitch deck template PP
Y-Combinator seed pitch deck template PP
c5vrf27qcz
 
Northern Engraving | Nameplate Manufacturing Process - 2024
Northern Engraving | Nameplate Manufacturing Process - 2024Northern Engraving | Nameplate Manufacturing Process - 2024
Northern Engraving | Nameplate Manufacturing Process - 2024
Northern Engraving
 
Monitoring and Managing Anomaly Detection on OpenShift.pdf
Monitoring and Managing Anomaly Detection on OpenShift.pdfMonitoring and Managing Anomaly Detection on OpenShift.pdf
Monitoring and Managing Anomaly Detection on OpenShift.pdf
Tosin Akinosho
 
[OReilly Superstream] Occupy the Space: A grassroots guide to engineering (an...
[OReilly Superstream] Occupy the Space: A grassroots guide to engineering (an...[OReilly Superstream] Occupy the Space: A grassroots guide to engineering (an...
[OReilly Superstream] Occupy the Space: A grassroots guide to engineering (an...
Jason Yip
 
High performance Serverless Java on AWS- GoTo Amsterdam 2024
High performance Serverless Java on AWS- GoTo Amsterdam 2024High performance Serverless Java on AWS- GoTo Amsterdam 2024
High performance Serverless Java on AWS- GoTo Amsterdam 2024
Vadym Kazulkin
 
Dandelion Hashtable: beyond billion requests per second on a commodity server
Dandelion Hashtable: beyond billion requests per second on a commodity serverDandelion Hashtable: beyond billion requests per second on a commodity server
Dandelion Hashtable: beyond billion requests per second on a commodity server
Antonios Katsarakis
 

Recently uploaded (20)

Christine's Product Research Presentation.pptx
Christine's Product Research Presentation.pptxChristine's Product Research Presentation.pptx
Christine's Product Research Presentation.pptx
 
Leveraging the Graph for Clinical Trials and Standards
Leveraging the Graph for Clinical Trials and StandardsLeveraging the Graph for Clinical Trials and Standards
Leveraging the Graph for Clinical Trials and Standards
 
Northern Engraving | Modern Metal Trim, Nameplates and Appliance Panels
Northern Engraving | Modern Metal Trim, Nameplates and Appliance PanelsNorthern Engraving | Modern Metal Trim, Nameplates and Appliance Panels
Northern Engraving | Modern Metal Trim, Nameplates and Appliance Panels
 
PRODUCT LISTING OPTIMIZATION PRESENTATION.pptx
PRODUCT LISTING OPTIMIZATION PRESENTATION.pptxPRODUCT LISTING OPTIMIZATION PRESENTATION.pptx
PRODUCT LISTING OPTIMIZATION PRESENTATION.pptx
 
Main news related to the CCS TSI 2023 (2023/1695)
Main news related to the CCS TSI 2023 (2023/1695)Main news related to the CCS TSI 2023 (2023/1695)
Main news related to the CCS TSI 2023 (2023/1695)
 
zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...
zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...
zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...
 
Connector Corner: Seamlessly power UiPath Apps, GenAI with prebuilt connectors
Connector Corner: Seamlessly power UiPath Apps, GenAI with prebuilt connectorsConnector Corner: Seamlessly power UiPath Apps, GenAI with prebuilt connectors
Connector Corner: Seamlessly power UiPath Apps, GenAI with prebuilt connectors
 
Apps Break Data
Apps Break DataApps Break Data
Apps Break Data
 
Your One-Stop Shop for Python Success: Top 10 US Python Development Providers
Your One-Stop Shop for Python Success: Top 10 US Python Development ProvidersYour One-Stop Shop for Python Success: Top 10 US Python Development Providers
Your One-Stop Shop for Python Success: Top 10 US Python Development Providers
 
Christine's Supplier Sourcing Presentaion.pptx
Christine's Supplier Sourcing Presentaion.pptxChristine's Supplier Sourcing Presentaion.pptx
Christine's Supplier Sourcing Presentaion.pptx
 
Biomedical Knowledge Graphs for Data Scientists and Bioinformaticians
Biomedical Knowledge Graphs for Data Scientists and BioinformaticiansBiomedical Knowledge Graphs for Data Scientists and Bioinformaticians
Biomedical Knowledge Graphs for Data Scientists and Bioinformaticians
 
GraphRAG for LifeSciences Hands-On with the Clinical Knowledge Graph
GraphRAG for LifeSciences Hands-On with the Clinical Knowledge GraphGraphRAG for LifeSciences Hands-On with the Clinical Knowledge Graph
GraphRAG for LifeSciences Hands-On with the Clinical Knowledge Graph
 
"Choosing proper type of scaling", Olena Syrota
"Choosing proper type of scaling", Olena Syrota"Choosing proper type of scaling", Olena Syrota
"Choosing proper type of scaling", Olena Syrota
 
Freshworks Rethinks NoSQL for Rapid Scaling & Cost-Efficiency
Freshworks Rethinks NoSQL for Rapid Scaling & Cost-EfficiencyFreshworks Rethinks NoSQL for Rapid Scaling & Cost-Efficiency
Freshworks Rethinks NoSQL for Rapid Scaling & Cost-Efficiency
 
Y-Combinator seed pitch deck template PP
Y-Combinator seed pitch deck template PPY-Combinator seed pitch deck template PP
Y-Combinator seed pitch deck template PP
 
Northern Engraving | Nameplate Manufacturing Process - 2024
Northern Engraving | Nameplate Manufacturing Process - 2024Northern Engraving | Nameplate Manufacturing Process - 2024
Northern Engraving | Nameplate Manufacturing Process - 2024
 
Monitoring and Managing Anomaly Detection on OpenShift.pdf
Monitoring and Managing Anomaly Detection on OpenShift.pdfMonitoring and Managing Anomaly Detection on OpenShift.pdf
Monitoring and Managing Anomaly Detection on OpenShift.pdf
 
[OReilly Superstream] Occupy the Space: A grassroots guide to engineering (an...
[OReilly Superstream] Occupy the Space: A grassroots guide to engineering (an...[OReilly Superstream] Occupy the Space: A grassroots guide to engineering (an...
[OReilly Superstream] Occupy the Space: A grassroots guide to engineering (an...
 
High performance Serverless Java on AWS- GoTo Amsterdam 2024
High performance Serverless Java on AWS- GoTo Amsterdam 2024High performance Serverless Java on AWS- GoTo Amsterdam 2024
High performance Serverless Java on AWS- GoTo Amsterdam 2024
 
Dandelion Hashtable: beyond billion requests per second on a commodity server
Dandelion Hashtable: beyond billion requests per second on a commodity serverDandelion Hashtable: beyond billion requests per second on a commodity server
Dandelion Hashtable: beyond billion requests per second on a commodity server
 

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

  • 1. 24/09/2011 Configuration Management Automating and rationalizing server setup with CFEngine 3 Jonathan Clarke <jcl@normation.com>    
  • 2. About the speaker Jonathan Clarke → CTO → Sysadmin background Startup created in 2010 Infrastructure management Based in Paris FLOSS contributor: Configuration management: CFEngine  CFEngine (partner) Others (OpenLDAP, LSC, FusionInventory...)  Rudder (creator)    
  • 3. Introduction 1. CREATE 2. SETUP 3. USE 4. THROW AWAY Cloud Computing    
  • 4. Introduction 1. CREATE 2. SETUP 3. USE 4. THROW AWAY Cloud Computing → APIs and tools are available    
  • 5. Introduction 1. CREATE 2. SETUP 3. USE 4. THROW AWAY Cloud Computing Three approaches: 1. Manually 2. Imaging 3. Configuration tool    
  • 6. Agenda 1) Configuration Management principles 2) Configuration Management tools 3) About CFEngine 3 4) Getting started    
  • 7. Configuration Management Principles through examples...    
  • 8. A server crashed. Install a new one, people can't work without it! OK, it'll be done in about two days... Why configuration management? There's a new critical security patch we must deploy on all our servers! Get it out quickly! Right, I'll put the whole team on it.    
  • 9. Reproducibility Industrialization Automation Why configuration management?    
  • 10. How do we setup service X? Ask Jim, he's 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... He'll tell you what it was. Damn, he's on vacation!    
  • 11. Documentation History Building-up knowledge Why configuration management?    
  • 12. An intruder just stole our data using a vulnerability in a module we don't need... I thought the project specification ensured that we disabled that? Er, it did, but we enabled it to solve a problem and forgot to disable it afterwards... sorry... Why configuration management?    
  • 13. Why configuration management? Continuous vigilance Automatic repairs Alerts    
  • 14. I don't understand how this server is setup. It doesn't match our best-practices. Oh, that's a legacy server... Why configuration management? Give me details on our current security policy. Well, it's a collection of little things, here and there... Ah... Well, OK. Tell me: is it fully applied on all our critical servers? Er...    
  • 15. Why configuration management? Rationalization Normalization Control    
  • 16. Reproducibility Industrialization Documentation History Automation Building-up knowledge Configuration management benefits Continuous Rationalization vigilance Automatic repairs Alerts Normalization Control    
  • 17. Configuration Management The tools    
  • 18. Main tools available CFEngine 3 Puppet Chef    
  • 19. Main tools available: history Relative origins of CFEngine, Puppet and Chef Source: http://verticalsysadmin.com/blog/uncategorized/relative-origins-o f-cfengine-chef-and-puppet    
  • 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. The tools: some differences CFEngine 3 Puppet Chef C Ruby Ruby Language GPL Apache Apache (ex-GPL) License Yes Preliminary Partial Windows support    
  • 22. A bit about CFEngine 3...    
  • 23. CFEngine 3: Features Multi platform Windows support Two versions: 1. Community (open source) Runs in Cygwin 2. Nova (commercial) ● Native Windows service    
  • 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. CFEngine 3: Features Lightweight, non-intrusive Non-intrusive Daemon consumption on managed hosts Only two dependencies: - BerkeleyDB - OpenSSL    
  • 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. CFEngine 3: Features Multi platform Adapted to Lightweight, non-intrusive heterogeneous environments Autonomous Fault-tolerant Highly scalable Progressive roll-out    
  • 28. Getting started with CFEngine 3    
  • 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. CFEngine 3: Client-Server  Using a server is optional!  Get started by running standalone  CFEngine's server daemon is cf-serverd  Dedicated protocol: TCP port 5308  Requires SSL key exchange    
  • 31. CFEngine 3: Configuration  Minimal configuration: body common control { bundlesequence => { "HelloWorld" }; } Syntax notes bundle agent HelloWorld Whitespace doesn't 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. 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. 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. 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. 24/09/2011 Thanks for participating! Stay in touch... Jonathan Clarke Email: jcl@normation.com Twitter: jooooooon42