Cobbler, Chef in Etsy's provisioning stack

  • 892 views
Uploaded on

At Etsy automation is important and necessary to keep up with our fast-paced infrastructure that is rapidly growing. We need to be able to scale our systems as quickly as possible. Keeping in mind …

At Etsy automation is important and necessary to keep up with our fast-paced infrastructure that is rapidly growing. We need to be able to scale our systems as quickly as possible. Keeping in mind that our production stack exclusively runs on physical hardware. The old way of provisioning servers worked at the time, but now that we have over 1,000 servers it was time to revisit our host provisioning methods. Various tools where developed to create a "1-click" host build solution, Chef & Cobbler are a big part of the process.

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
892
On Slideshare
0
From Embeds
0
Number of Embeds
2

Actions

Shares
Downloads
15
Comments
0
Likes
0

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. Cobbler, Chef in Etsy's provisioning stack David Yurkiewicz, Etsy! dyurkiewicz@etsy.com! @d87tech
  • 2. Growth and Demand 30 Million ! Members! ! 60 Million ! Monthly Visitors! ! 1.5 Billion ! Page views per month
  • 3. Our Systems 1,000 physical hosts! 300 virtual systems! Spread across multiple data centers
  • 4. The Old Way Rack Server Configure ILO Configure
 Switchports Configure Storage Configure Cobbler Profit! Configure DNS Power on Host
  • 5. Cobbler • A provisioning server that facilitates networkbased installations.! • It manages PXE’s boot environment.! • It can be configured to manage multiple services like DHCP.! • It automates repetitive tasks and encourages the use of templating.
  • 6. Chef A configuration management tool
  • 7. The Old Way Rack Server Configure ILO Configure
 Switchports Configure Storage Configure Cobbler Profit! Configure DNS Power on Host
  • 8. Problem? • The process is tedious! • It’s repetitive and manual! • We need to scale rapidly.! • We need to quickly repurpose systems for other uses
  • 9. New Host Build Process Rack Server Configure
 Switch ports Configure ILO Configure Storage Sledgehammer Configure Cobbler Profit! Configure DNS Power on Host
  • 10. New Host Build Process Rack Server Configure ILO Configure
 Switch port Configure Storage Gabriel Configure Cobbler Profit! Configure DNS Power on Host
  • 11. Host Decommission Process Re-configure
 Switch port Wipe Storage Zaar Remove from
 Cobbler Profit! Delete DNS Power off Host
  • 12. Enter Gabriel • The new way, “one-click” system provisioning! • Fully automated host building! • iLO configuration! • RAID / Storage profiles! • Switch port configuration (VLAN, label) ! • Interacts with Cobbler
  • 13. The Backend Cobbler - OS installation! Chef - configuration management (Roles)! Racktables - Asset management
  • 14. Cobbler Features • CLI and Web interface! • Supports multiple distros! • Kickstart templates and snippets ! • Package management and mirroring! • Manages services (DHCP, TFTP, DNS)! • Supports virtualized installs (Xen, qemu, KVM, partial VMware)
  • 15. Profile
  • 16. Kickstart Templating! • Cobbler uses Cheetah(python) for its kickstart templating engine! • Templates can be treated as kickstart files! • Conditionals, variable substitution and even python! • Snippets
  • 17. Kickstart Template!
  • 18. Snippets • Small blocks of code! • They are invoke in kickstart templates! • Can be reused for multiple templates $SNIPPET('name_of_snippet')
  • 19. Chef Install Snippet
  • 20. Generated snippet
  • 21. Chef Roles • Roles define the applications and services that should run on each node.! • Each roles has a run_list! • A list of recipes and/or roles that will be applied.
  • 22. Chef Roles
  • 23. That’s All
  • 24. For The Future • Add more error handling! • Create web interface (In Progress)! • Add support for bulk operations
  • 25. Questions?! Thanks!! @d87tech! dyurkiewicz@etsy.com