Your SlideShare is downloading. ×
Kokki: Configuration Management Framework
Upcoming SlideShare
Loading in...5

Thanks for flagging this SlideShare!

Oops! An error has occurred.


Introducing the official SlideShare app

Stunning, full-screen experience for iPhone and Android

Text the download link to your phone

Standard text messaging rates apply

Kokki: Configuration Management Framework


Published on

Published in: Technology, Self Improvement

  • Be the first to comment

No Downloads
Total Views
On Slideshare
From Embeds
Number of Embeds
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

No notes for slide


  • 1. Kokki: Configuration Management Framework It means “cook” in Finnish Samuel StaufferThursday, March 17, 2011
  • 2. What is it? Infrastructure automation → configuration management Part of provisioning Library and simple command line tool currently no client/server component can use GitHub in place of client/server Alternative to Puppet/Chef/CFengineThursday, March 17, 2011
  • 3. Why not Puppet, Chef, or ... Python It’s a framework/library rather than a complete solution Different needsThursday, March 17, 2011
  • 4. What can I use it for? Creating a template for configuring servers Great for cloud based servers (EC2) Mix in some ‘userscript’ and you have a new web instances in less than 5 minutes. Avoid having to log into servers except when absolutely necessary Configuring servers by hand is tedious, not scalable, and more prone to mistakes. (fine for 1 server, not for 10)Thursday, March 17, 2011
  • 5. Overview Environment: execution environment Resource: describes a file, service, package, etc.. Provider: knows how to execute a resource Kitchen: container for cookbooks Cookbook: container for recipes and libraries Recipe: group of resource definitions Library: utility methods, resources, and providersThursday, March 17, 2011
  • 6. Environment An environment holds and executes resources and actions. config: attribute dictionary of configuration values system: provides access to system information machine architecture, os (linux, darwin, ...), flavor (redhat, ubuntu, debian, ...)Thursday, March 17, 2011
  • 7. Resource A resource is a description of a small part of a configuration Examples: File, Mount, Package, Service, ... File(“/etc/nginx/nginx.conf”, owner = “root”, mode = 0644, content = Template(“nginx/nginx.conf.j2”), notifies = [ (“restart” env.resources[“Service”][“nginx”]), ])Thursday, March 17, 2011
  • 8. Provider A provider is a concrete implementation of a resource. Responsible for checking current state of the resource and taking any steps necessary to make resource match. (e.g. compare the contents of a file and overwrite if it doesn’t match) Each platform can have a provider (e.g. one provider knows how to install packages using ‘apt’ on Ubuntu)Thursday, March 17, 2011
  • 9. Kitchen A Kitchen: is a subclass of an Environment provides a higher level of abstraction for describing roles and resources contains cookbooks which contain recipes and librariesThursday, March 17, 2011
  • 10. Cookbook A cookbook groups recipes, libraries, and default configuration as a unit. For instance a package like “apache2” could have a cookbook. Each cookbook is required to contain a file which holds a dictionary of all configuration values and their defaults. Subdirectories of a cookbook include: recipes, libraries, templates, and files. Multiple recipes can be used for different purposes: apache2.prefork, apache2.worker, etc..Thursday, March 17, 2011
  • 11. Recipe A recipe is a “script” that defines resources. Each recipe receives a global ‘env’ which is the current Environment/Kitchen. A cookbook can have a ‘’ recipe which is the one used if no recipe specified. env.include_recipe(“memcached”) vs env.include_recipe(“munin.node”)Thursday, March 17, 2011
  • 12. Demo, March 17, 2011
  • 13. Current Limitations Currently only supports Debian/Ubuntu easy to support other platforms, just isn’t done No client/server Small userbase No documentationsThursday, March 17, 2011
  • 14. Roadmap Better documentation Client/server Cloud tools (automate EC2 instances) More platforms (though probably not Windows) Pick a different theme? (enough with the cooking/chefs)Thursday, March 17, 2011
  • 15. Thanks! Questions? samuel@descolada.comThursday, March 17, 2011