Cobbler - Fast and reliable multi-OS provisioning


Published on

In a lot of companies, machine deployment is a delicate subject: every administrator has his own recipe, using CD-ROMs, static binary images deployed via the network, peer delegation ...

However, one solution makes the consensus when it comes to automated mass deployments ( except in the Cloud ): PXE boot. The main cons are that the deployment and the management of such a service is a pain, and every OS has its own installation automation system.

This is where Cobbler saves the day: it enables a painless and reliably to create a PXE service, usable on either virtual or physical machines, while beeing the most agnostic possible towards the target OSes and its preconfiguration system (preseed, kickstart, sysprep, ...) while offering the possibility to handle lots of configuration parameters in a modular fashion (network, partitionning, user accounts, configuration management agent...)

This conference aims to introduce the audience to the general concepts of Cobbler, and some scenarios where it would be a useful solution.

Published in: Technology
  • Be the first to comment

No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide

Cobbler - Fast and reliable multi-OS provisioning

  1. 1. Normation – CC-BY-SAnormation.comCobblerCobblerFast and reliable multi-OS provisionningFast and reliable multi-OS provisionningMatthieu CERDA – LOADays 2013
  2. 2. Normation – Tous droits réservésnormation.comWho are youJob System administratorPhone: +33 6 30 53 40 00Email : matthieu.cerda@normation.comWeb site :
  3. 3. Normation – 3Problem● Problem : Deploying new VMs is a painfully heavy and error-prone process.● Solution: A tool able to automatize this the best way possible !
  4. 4. Normation – 4PXE● “The Preboot eXecution Environment (PXE, also known as Pre-Execution Environment; sometimes pronounced "pixie") is anenvironment to boot computers using a network interfaceindependently of data storage devices (like hard disks) or installedoperating systems.” (Thanks Wikipedia)●Created to respond to a simple problem: before it, even withautomated installations, the administrator needed to move towardsthe machine, and boot it manually with a media.● Administrators are lazy (well, I am), and thus needed something toinstall a machine from the boot to the login prompt, with the leasthuman interference possible.
  5. 5. Normation – 5Problem (again)●PXE boot needs a tight and coherent integration of all theseservices:● DHCP● TFTP● HTTP● (DNS, optionnal)● Installing them and setting them requires specific experience,skills and time.● Time + skills = investment (either from people or from the wallet)●1stproblem: PXE is expensive
  6. 6. Normation – 6Problem (this is getting annoying !!!)●PXE boot needs a tight and coherent integration of all theseservices:● DHCP● TFTP● HTTP● (DNS, optionnal)● Keeping them in sync is horrifyingly painful, you KNOWsomething will break one day or another (typos, forgot to copy afile ...)●So, 2ndtrouble: PXE is hard to manage
  7. 7. Normation – 7ContextID Card● Name :● Birthdate : 2007● Language : Python● Licence : GPL● Author : Michael DeHaan ( You went to the Ansiblepresentation this morning, did you ? )● Dependencies : DHCP/TFTP/[DNS]● Disponibility : Packages ( or sources )● Tested and approved™ :
  8. 8. Normation – 8A little project historyBirth2011: Siteswitchingfrom Fedorahosting toGithub2012: UsedbyCanonicalforOpenStacktests
  9. 9. Normation – 9Global architectureDistributionsKernel Initrd Arguments ClassesProfilesRepositories Network Proxy ClassesSystemLDAP RHN/RHM Network Virtualization PuppetREST API
  10. 10. Normation – 10Global architectureCLI KoanLibVirtAPICobblerPXEDNS TFTP DHCPPhysicalmachinesVirtualmachinesHTTPWeb UI
  11. 11. Normation – 11Distro●A basic representation of an OS●Added through the CLI
  12. 12. Normation – 12Profile●Abstraction layer between distros ans systems●Can be used to define roles, for example: web_server, dns_server...
  13. 13. Normation – 13System●The most important part, what the user will see !●Will define physical or virtual entities, like a libvirt VM or a plaincomputer. The MAC address serves as a binding between the lowlevel PXE and the system definition.
  14. 14. Normation – 14KOAN● Works “out of the box”● Adds LibVirt support to Cobbler
  15. 15. Normation – 15KOAN● Demo !!!
  16. 16. Normation – 16Configuration●/etc/cobbler/settings● YAML file, setting global variables and special cobblerd specificparameters● Can then be overriden by other abstraction layers● /etc/cobbler/modules● Defines which services will be managed (and how)● Also defines how authentication will be done (for web UI forexample)● /var/lib/cobbler/...● Stores all the distro/profile/system/... configurations
  17. 17. Normation – 17Usefulness●“So, why is Cobbler so useful for you ?”● Aptitude/yum install cobbler, as simple as that● Just works, out of the box● Easy integration with Virtualization software● Seriously, managing PXE by hand is a pain in the neck...● “Remember when we used to manage kickstart files by hand ?”● “Yeah, so many hours I could have used to slack looking at catvideos...”
  18. 18. Normation – 18Usefulness●“Can I deploy this in my company / home / toaster now ?”● Yes ! It actually integrates well with existing machines/services.● Just works, out of the box● All you need is a machine, a distro CD / ISO and youre done.● Can by used as an emergency crash recovery solution● Used in a french company after a natural catastrophe (flood) torestore quickly a new bunch of machines back to anoperationnal state. [reference needed]
  19. 19. Normation – 19Integration with existing services●Cobbler can integrate with services like:● Local repository mirrors● Local DNS / TFTP / ... services● Configuration management: CFEngine / Puppet / Chef /Ansible / ...
  20. 20. Normation – 20Protips●When you install Cobbler, remember some important points● SELinux is tricky● DISABLE STP ON YOUR BRIDGES !!!● If something fails, check your firewall. If it still fails, check again.● Always have a sandbox environment to play with.● KVM is a great tool, especially with libvirt● Keep It Simple and Safe
  21. 21. Normation – 21Extensibility●We develop Rudder, an IT automatization and conformity tool.● Goal: Add a support for Cobbler● Problem: Cobbler only supports Cobbler at this time !● Solution: Add the necessary bindings ourselves ! (All hail Pythono/)Let us take a slightly more complex case...SystemLDAP RHN/RHM Network Virtualization Puppet Rudder
  22. 22. Normation – 22Extensibility
  23. 23. Normation – 23Thank you for your attention !( Questions time )