SlideShare a Scribd company logo
1 of 34
Download to read offline
Cobbler, Func and Puppet:
Tools for Large Scale Environments

                  Francesco Crippa
             fcrippa @ fedoraproject,org




        This presentation is licensed under a Creative Commons
    Attribution-NonCommercial-ShareAlike (BY-NC-SA) 3.0 license.
what is a
“Large Scale Environment”?
From this...




Google first WebFarm
...to this!




CC by Johnnie Walker: http://flickr.com/photos/johnniewalker/359440369
Large scale environments
●   Huge number of machines
●   Huge number of environments
    –   Production
    –   Pre-production
    –   Test
    –   Develop
●   Huge number of people
●   Need to scale!!!
All is complex
●   An example: make a web server on line
●   In theory it should be easy:
     –   Buy hardware
     –   Install operating system (next, next, next...)
     –   Install a http server (yum install httpd)
     –   Configure http (vi /etc/httpd/conf/httpd.conf)
     –   That's all
●   ...but...
●
All is complex
●   In a LSE you need:
    –   2 web server to maintain service in high availability
    –   2 geographical sites to support disaster recovery
    –   A testing environment to test configurations
    –   A development environment to setup machines
    –   Backup
    –   Monitoring
    –   Clustering
         ●   Shared storage (SAN) required for each cluster
A lot of web servers

1...                      ...7 servers!
Where is the complexity?
●   Web server configuration is simple
●   But you need to configure:
    –   7 different web server (with exactly the same
        configuration!!!)
    –   Keep all configurations in sync
    –   3 clusters (with different configurations)
    –   Shared storages (maybe with shared filesystems)
●   The complexity is not on the “business”,
    but on the “infrastructure”
Typical work flow

     Installing                        Unconventional
                      Configurations
        O.S.                               Tasks




●   Installing OS to a new hardware
●   Configure machines as you need
●   Make (sometimes) unconventional tasks
Typical work flow

Installing                        Unconventional
                 Configurations
   O.S.                               Tasks




    COBBLER            PUPPET          FUNC
All under your control!




Copyright by WarnerBras (Matrix)
Installing OS...
  COBBLER
OS Installation
●   Usually KickStart driven
●   Two main targets for a new installation:
    –   Real hardware
    –   Virtual Machine
●   Usually expensive because require some
    manual human tasks
    –   Put booting cd-rom into reader, configure network
        and location of kickstart...
Cobbler
●   Cobbler is a Linux provisioning server that
    allows for rapid setup of network installation
    environments.
●   It keeps in sync:
    –   DHCP
    –   TFTP
    –   RPM Repositories
    –   KickStarts
Importing repositories
●   Check configuration files
●   Import repositories




    [root@a~]# cobbler check
    [root@a~]# cobbler import 
       ­­mirror=rsync://servergoeshere/path/to/distro
       ­­name=fedora9
Add profiles and systems
●   Distros
●   Profiles
●   Systems


    [root@a~]# cobbler distro add
    [root@a~]# cobbler profile add
    [root@a~]# cobbler system add
Keep in sync
●   Generate output in:
    –   /tftpboot
    –   /var/www/cobbler
    –   /etc/dhcp.conf



    [root@a~]# cobbler sync
KickStart templates
●   Kickstart is a template
●   You can pass values for all your variables
    through “cobbler system add”

...
keyboard $KEY
...


[root@a~]# cobbler system add ­­ksmeta=”KEY=us”
Koan
●   Client side
●   Provisioning for virtual machines
●


●   koan --server=server.expl.org
    --profile=RHEL5-i386
●


●   koan -–server=server.expl.org
    --profile=RHEL5-i386 --virt
Configure all your systems
        PUPPET
Configuration Management
–   Centralize all configurations into a single place
–   Defining “templates” to generalize similar
    configurations (make one, apply hundreds)
–   Manage exceptions
–   Make possible for a lot of people to work all
    together
Working all together
Working all together
Working all together
Working all together
Configuration Items
      –   Files
                                –   Subscribe
      –   Packages
                                –   Require
      –   Services
                                –   Notify
      –   Users
                                –   ...
      –   Groups
                                –   Arrays
      –   Mount points
                                –   Conditions
      –   ...
                                –   ...
      –   You can define your
          own items :-)
A formal definition for HTTPD
Class http inherits security-hardening {
    file {
        “/etc/httpd/httpd.conf”:
            owner   => apache,
            mode    => 644,
            require => Package[“httpd”]
    }

    package {
        “httpd”:
            ensure   => “latest”
    }

    service {
        “httpd”:
            ensure    => “running”,
            enabled   => “true”,
            subscribe => [
                File[“/etc/httpd/httpd.conf”],
                Package[“httpd”]
            ]
    }
}
A formal definition for HTTPD


node 'www.example.com' inherits default {
   import httpd
}



node 'default' {
   import bacula
   import nagios
   import bacula-backup
}
Puppet architecture
    –   Client (the puppet) polls the server (the puppet-
        master) to know if there are new configuration files
        to download (every 30 minutes by default)
    –   Client is recognized through its hostname
    –   Server try to find a right configuration for that
        hostname, else it uses a “default” config.
    –   ...caching, md5, checksum and ssl are part of
        infrastructure
●
Python API for your network
          FUNC
Goals
●   Manage your hosts as python objects
     –   Groups, ACLs, SSL certificates, ...

    >>> from func.overlord import client
    >>> client1 = client.Client(“*.lan”)
    >>> client1.service.restart(“httpd”)
    >>> client1.command.run(“df ­h”)




    [root@a~]# func “*.com” call service restart “httpd”
    [root@a~]# func “*.lan” call command run “df ­h”
Modules and new features
●   Func based on modules architecture
●   A module support new stuff
●   20 modules (libVirt, jboss, info, process,
    command, iptables, nagios, etc)
●   Writing a new module is simple.
●   When you write a module, it works on both CLI
    and PyScripting, no modification on func are
    needed.
THANK YOU.




Credits: Byte-Code, Tango Icons, Crystals Icons

More Related Content

What's hot

Docker Online Meetup #3: Docker in Production
Docker Online Meetup #3: Docker in ProductionDocker Online Meetup #3: Docker in Production
Docker Online Meetup #3: Docker in Production
Docker, Inc.
 

What's hot (20)

OpenNebulaConf 2016 - Building a GNU/Linux Distribution by Daniel Dehennin, M...
OpenNebulaConf 2016 - Building a GNU/Linux Distribution by Daniel Dehennin, M...OpenNebulaConf 2016 - Building a GNU/Linux Distribution by Daniel Dehennin, M...
OpenNebulaConf 2016 - Building a GNU/Linux Distribution by Daniel Dehennin, M...
 
[NYC Meetup] Docker at Nuxeo
[NYC Meetup] Docker at Nuxeo[NYC Meetup] Docker at Nuxeo
[NYC Meetup] Docker at Nuxeo
 
NFD9 - Matt Peterson, Data Center Operations
NFD9 - Matt Peterson, Data Center OperationsNFD9 - Matt Peterson, Data Center Operations
NFD9 - Matt Peterson, Data Center Operations
 
Ironic
IronicIronic
Ironic
 
Docker Online Meetup #3: Docker in Production
Docker Online Meetup #3: Docker in ProductionDocker Online Meetup #3: Docker in Production
Docker Online Meetup #3: Docker in Production
 
Behind the Scenes at LiveJournal: Scaling Storytime
Behind the Scenes at LiveJournal: Scaling StorytimeBehind the Scenes at LiveJournal: Scaling Storytime
Behind the Scenes at LiveJournal: Scaling Storytime
 
Optimization_of_Virtual_Machines_for_High_Performance
Optimization_of_Virtual_Machines_for_High_PerformanceOptimization_of_Virtual_Machines_for_High_Performance
Optimization_of_Virtual_Machines_for_High_Performance
 
Docker + GCE + etcd + ray tracing
Docker + GCE + etcd + ray tracingDocker + GCE + etcd + ray tracing
Docker + GCE + etcd + ray tracing
 
Cinder Live Migration and Replication - OpenStack Summit Austin
Cinder Live Migration and Replication - OpenStack Summit AustinCinder Live Migration and Replication - OpenStack Summit Austin
Cinder Live Migration and Replication - OpenStack Summit Austin
 
[오픈소스컨설팅] 쿠버네티스와 쿠버네티스 on 오픈스택 비교 및 구축 방법
[오픈소스컨설팅] 쿠버네티스와 쿠버네티스 on 오픈스택 비교  및 구축 방법[오픈소스컨설팅] 쿠버네티스와 쿠버네티스 on 오픈스택 비교  및 구축 방법
[오픈소스컨설팅] 쿠버네티스와 쿠버네티스 on 오픈스택 비교 및 구축 방법
 
OpenNebulaConf 2016 - Networking, NFVs and SDNs Hands-on Workshop by Rubén S....
OpenNebulaConf 2016 - Networking, NFVs and SDNs Hands-on Workshop by Rubén S....OpenNebulaConf 2016 - Networking, NFVs and SDNs Hands-on Workshop by Rubén S....
OpenNebulaConf 2016 - Networking, NFVs and SDNs Hands-on Workshop by Rubén S....
 
StackiFest16: What's Next in Stacki - Mason Katz
StackiFest16: What's Next in Stacki - Mason Katz StackiFest16: What's Next in Stacki - Mason Katz
StackiFest16: What's Next in Stacki - Mason Katz
 
An Updated Performance Comparison of Virtual Machines and Linux Containers
An Updated Performance Comparison of Virtual Machines and Linux ContainersAn Updated Performance Comparison of Virtual Machines and Linux Containers
An Updated Performance Comparison of Virtual Machines and Linux Containers
 
Cassandra and docker
Cassandra and dockerCassandra and docker
Cassandra and docker
 
Live migrating a container: pros, cons and gotchas
Live migrating a container: pros, cons and gotchasLive migrating a container: pros, cons and gotchas
Live migrating a container: pros, cons and gotchas
 
OpenNebula, the foreman and CentOS play nice, too
OpenNebula, the foreman and CentOS play nice, tooOpenNebula, the foreman and CentOS play nice, too
OpenNebula, the foreman and CentOS play nice, too
 
OpenNebulaConf2015 2.02 Backing up your VM’s with Bacula - Alberto García
OpenNebulaConf2015 2.02 Backing up your VM’s with Bacula - Alberto GarcíaOpenNebulaConf2015 2.02 Backing up your VM’s with Bacula - Alberto García
OpenNebulaConf2015 2.02 Backing up your VM’s with Bacula - Alberto García
 
LXC
LXCLXC
LXC
 
Develop with linux containers and docker
Develop with linux containers and dockerDevelop with linux containers and docker
Develop with linux containers and docker
 
OSv: probably the best OS for cloud workloads you've never hear of
OSv: probably the best OS for cloud workloads you've never hear ofOSv: probably the best OS for cloud workloads you've never hear of
OSv: probably the best OS for cloud workloads you've never hear of
 

Viewers also liked

CodeFest 2013. Mosesohn M. — Automating environments with Cobbler
CodeFest 2013. Mosesohn M. — Automating environments with CobblerCodeFest 2013. Mosesohn M. — Automating environments with Cobbler
CodeFest 2013. Mosesohn M. — Automating environments with Cobbler
CodeFest
 

Viewers also liked (11)

puppet @techlifecookpad
puppet @techlifecookpadpuppet @techlifecookpad
puppet @techlifecookpad
 
CodeFest 2013. Mosesohn M. — Automating environments with Cobbler
CodeFest 2013. Mosesohn M. — Automating environments with CobblerCodeFest 2013. Mosesohn M. — Automating environments with Cobbler
CodeFest 2013. Mosesohn M. — Automating environments with Cobbler
 
Build Automation 101
Build Automation 101Build Automation 101
Build Automation 101
 
PXE Lot or PXE Lite
PXE Lot or PXE LitePXE Lot or PXE Lite
PXE Lot or PXE Lite
 
Manual pxe
Manual pxeManual pxe
Manual pxe
 
Using Puppet and Cobbler to Automate Your Infrastructure
Using Puppet and Cobbler to Automate Your InfrastructureUsing Puppet and Cobbler to Automate Your Infrastructure
Using Puppet and Cobbler to Automate Your Infrastructure
 
Automated Deployment & Benchmarking with Chef, Cobbler and Rally for OpenStack
Automated Deployment & Benchmarking with Chef, Cobbler and Rally for OpenStackAutomated Deployment & Benchmarking with Chef, Cobbler and Rally for OpenStack
Automated Deployment & Benchmarking with Chef, Cobbler and Rally for OpenStack
 
Cobbler Summit - Automated Xen VM Deployment
Cobbler Summit - Automated Xen VM DeploymentCobbler Summit - Automated Xen VM Deployment
Cobbler Summit - Automated Xen VM Deployment
 
A Puppet Story
A Puppet StoryA Puppet Story
A Puppet Story
 
Cloud computing simple ppt
Cloud computing simple pptCloud computing simple ppt
Cloud computing simple ppt
 
Visual Design with Data
Visual Design with DataVisual Design with Data
Visual Design with Data
 

Similar to Cobbler, Func and Puppet: Tools for Large Scale Environments

PDXPortland - Dockerize Django
PDXPortland - Dockerize DjangoPDXPortland - Dockerize Django
PDXPortland - Dockerize Django
Hannes Hapke
 
Docker Introduction + what is new in 0.9
Docker Introduction + what is new in 0.9 Docker Introduction + what is new in 0.9
Docker Introduction + what is new in 0.9
Jérôme Petazzoni
 
Infrastructure as code with Puppet and Apache CloudStack
Infrastructure as code with Puppet and Apache CloudStackInfrastructure as code with Puppet and Apache CloudStack
Infrastructure as code with Puppet and Apache CloudStack
ke4qqq
 

Similar to Cobbler, Func and Puppet: Tools for Large Scale Environments (20)

Postgres the hardway
Postgres the hardwayPostgres the hardway
Postgres the hardway
 
PDXPortland - Dockerize Django
PDXPortland - Dockerize DjangoPDXPortland - Dockerize Django
PDXPortland - Dockerize Django
 
Building SuperComputers @ Home
Building SuperComputers @ HomeBuilding SuperComputers @ Home
Building SuperComputers @ Home
 
Go Faster with Ansible (PHP meetup)
Go Faster with Ansible (PHP meetup)Go Faster with Ansible (PHP meetup)
Go Faster with Ansible (PHP meetup)
 
Puppet
PuppetPuppet
Puppet
 
Nano Server (ATD 11)
Nano Server (ATD 11)Nano Server (ATD 11)
Nano Server (ATD 11)
 
#OktoCampus - Workshop : An introduction to Ansible
#OktoCampus - Workshop : An introduction to Ansible#OktoCampus - Workshop : An introduction to Ansible
#OktoCampus - Workshop : An introduction to Ansible
 
Docker Introduction, and what's new in 0.9 — Docker Palo Alto at RelateIQ
Docker Introduction, and what's new in 0.9 — Docker Palo Alto at RelateIQDocker Introduction, and what's new in 0.9 — Docker Palo Alto at RelateIQ
Docker Introduction, and what's new in 0.9 — Docker Palo Alto at RelateIQ
 
Docker Introduction + what is new in 0.9
Docker Introduction + what is new in 0.9 Docker Introduction + what is new in 0.9
Docker Introduction + what is new in 0.9
 
Docker 0.11 at MaxCDN meetup in Los Angeles
Docker 0.11 at MaxCDN meetup in Los AngelesDocker 0.11 at MaxCDN meetup in Los Angeles
Docker 0.11 at MaxCDN meetup in Los Angeles
 
20100425 Configuration Management With Puppet Lfnw
20100425 Configuration Management With Puppet Lfnw20100425 Configuration Management With Puppet Lfnw
20100425 Configuration Management With Puppet Lfnw
 
Workshop : 45 minutes pour comprendre Docker avec Jérôme Petazzoni
Workshop : 45 minutes pour comprendre Docker avec Jérôme PetazzoniWorkshop : 45 minutes pour comprendre Docker avec Jérôme Petazzoni
Workshop : 45 minutes pour comprendre Docker avec Jérôme Petazzoni
 
Introduction to Docker, December 2014 "Tour de France" Edition
Introduction to Docker, December 2014 "Tour de France" EditionIntroduction to Docker, December 2014 "Tour de France" Edition
Introduction to Docker, December 2014 "Tour de France" Edition
 
Docker 1 0 1 0 1: a Docker introduction, actualized for the stable release of...
Docker 1 0 1 0 1: a Docker introduction, actualized for the stable release of...Docker 1 0 1 0 1: a Docker introduction, actualized for the stable release of...
Docker 1 0 1 0 1: a Docker introduction, actualized for the stable release of...
 
Puppet and Apache CloudStack
Puppet and Apache CloudStackPuppet and Apache CloudStack
Puppet and Apache CloudStack
 
Infrastructure as code with Puppet and Apache CloudStack
Infrastructure as code with Puppet and Apache CloudStackInfrastructure as code with Puppet and Apache CloudStack
Infrastructure as code with Puppet and Apache CloudStack
 
From development environments to production deployments with Docker, Compose,...
From development environments to production deployments with Docker, Compose,...From development environments to production deployments with Docker, Compose,...
From development environments to production deployments with Docker, Compose,...
 
The Deck by Phil Polstra GrrCON2012
The Deck by Phil Polstra GrrCON2012The Deck by Phil Polstra GrrCON2012
The Deck by Phil Polstra GrrCON2012
 
Automating Complex Setups with Puppet
Automating Complex Setups with PuppetAutomating Complex Setups with Puppet
Automating Complex Setups with Puppet
 
Containerization Is More than the New Virtualization
Containerization Is More than the New VirtualizationContainerization Is More than the New Virtualization
Containerization Is More than the New Virtualization
 

Recently uploaded

Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 

Recently uploaded (20)

Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
Manulife - Insurer Innovation Award 2024
Manulife - Insurer Innovation Award 2024Manulife - Insurer Innovation Award 2024
Manulife - Insurer Innovation Award 2024
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 

Cobbler, Func and Puppet: Tools for Large Scale Environments

  • 1. Cobbler, Func and Puppet: Tools for Large Scale Environments Francesco Crippa fcrippa @ fedoraproject,org This presentation is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike (BY-NC-SA) 3.0 license.
  • 2. what is a “Large Scale Environment”?
  • 4. ...to this! CC by Johnnie Walker: http://flickr.com/photos/johnniewalker/359440369
  • 5. Large scale environments ● Huge number of machines ● Huge number of environments – Production – Pre-production – Test – Develop ● Huge number of people ● Need to scale!!!
  • 6. All is complex ● An example: make a web server on line ● In theory it should be easy: – Buy hardware – Install operating system (next, next, next...) – Install a http server (yum install httpd) – Configure http (vi /etc/httpd/conf/httpd.conf) – That's all ● ...but... ●
  • 7. All is complex ● In a LSE you need: – 2 web server to maintain service in high availability – 2 geographical sites to support disaster recovery – A testing environment to test configurations – A development environment to setup machines – Backup – Monitoring – Clustering ● Shared storage (SAN) required for each cluster
  • 8. A lot of web servers 1... ...7 servers!
  • 9. Where is the complexity? ● Web server configuration is simple ● But you need to configure: – 7 different web server (with exactly the same configuration!!!) – Keep all configurations in sync – 3 clusters (with different configurations) – Shared storages (maybe with shared filesystems) ● The complexity is not on the “business”, but on the “infrastructure”
  • 10. Typical work flow Installing Unconventional Configurations O.S. Tasks ● Installing OS to a new hardware ● Configure machines as you need ● Make (sometimes) unconventional tasks
  • 11. Typical work flow Installing Unconventional Configurations O.S. Tasks COBBLER PUPPET FUNC
  • 12. All under your control! Copyright by WarnerBras (Matrix)
  • 13. Installing OS... COBBLER
  • 14. OS Installation ● Usually KickStart driven ● Two main targets for a new installation: – Real hardware – Virtual Machine ● Usually expensive because require some manual human tasks – Put booting cd-rom into reader, configure network and location of kickstart...
  • 15. Cobbler ● Cobbler is a Linux provisioning server that allows for rapid setup of network installation environments. ● It keeps in sync: – DHCP – TFTP – RPM Repositories – KickStarts
  • 16. Importing repositories ● Check configuration files ● Import repositories [root@a~]# cobbler check [root@a~]# cobbler import  ­­mirror=rsync://servergoeshere/path/to/distro ­­name=fedora9
  • 17. Add profiles and systems ● Distros ● Profiles ● Systems [root@a~]# cobbler distro add [root@a~]# cobbler profile add [root@a~]# cobbler system add
  • 18. Keep in sync ● Generate output in: – /tftpboot – /var/www/cobbler – /etc/dhcp.conf [root@a~]# cobbler sync
  • 19. KickStart templates ● Kickstart is a template ● You can pass values for all your variables through “cobbler system add” ... keyboard $KEY ... [root@a~]# cobbler system add ­­ksmeta=”KEY=us”
  • 20. Koan ● Client side ● Provisioning for virtual machines ● ● koan --server=server.expl.org --profile=RHEL5-i386 ● ● koan -–server=server.expl.org --profile=RHEL5-i386 --virt
  • 21. Configure all your systems PUPPET
  • 22. Configuration Management – Centralize all configurations into a single place – Defining “templates” to generalize similar configurations (make one, apply hundreds) – Manage exceptions – Make possible for a lot of people to work all together
  • 27. Configuration Items – Files – Subscribe – Packages – Require – Services – Notify – Users – ... – Groups – Arrays – Mount points – Conditions – ... – ... – You can define your own items :-)
  • 28. A formal definition for HTTPD Class http inherits security-hardening { file { “/etc/httpd/httpd.conf”: owner => apache, mode => 644, require => Package[“httpd”] } package { “httpd”: ensure => “latest” } service { “httpd”: ensure => “running”, enabled => “true”, subscribe => [ File[“/etc/httpd/httpd.conf”], Package[“httpd”] ] } }
  • 29. A formal definition for HTTPD node 'www.example.com' inherits default { import httpd } node 'default' { import bacula import nagios import bacula-backup }
  • 30. Puppet architecture – Client (the puppet) polls the server (the puppet- master) to know if there are new configuration files to download (every 30 minutes by default) – Client is recognized through its hostname – Server try to find a right configuration for that hostname, else it uses a “default” config. – ...caching, md5, checksum and ssl are part of infrastructure ●
  • 31. Python API for your network FUNC
  • 32. Goals ● Manage your hosts as python objects – Groups, ACLs, SSL certificates, ... >>> from func.overlord import client >>> client1 = client.Client(“*.lan”) >>> client1.service.restart(“httpd”) >>> client1.command.run(“df ­h”) [root@a~]# func “*.com” call service restart “httpd” [root@a~]# func “*.lan” call command run “df ­h”
  • 33. Modules and new features ● Func based on modules architecture ● A module support new stuff ● 20 modules (libVirt, jboss, info, process, command, iptables, nagios, etc) ● Writing a new module is simple. ● When you write a module, it works on both CLI and PyScripting, no modification on func are needed.
  • 34. THANK YOU. Credits: Byte-Code, Tango Icons, Crystals Icons