Adoptable Cookbooks List

Looking for a cookbook to adopt? You can now see a list of cookbooks available for adoption!
List of Adoptable Cookbooks

Supermarket Belongs to the Community

Supermarket belongs to the community. While Chef has the responsibility to keep it running and be stewards of its functionality, what it does and how it works is driven by the community. The chef/supermarket repository will continue to be where development of the Supermarket application takes place. Come be part of shaping the direction of Supermarket by opening issues and pull requests or by joining us on the Chef Mailing List.

Select Badges

Select Supported Platforms


exhibitor (25) Versions 4.0.1

Installs Netflix Exhibitor

cookbook 'exhibitor', '= 4.0.1'
cookbook 'exhibitor', '= 4.0.1', :supermarket
knife supermarket install exhibitor
knife supermarket download exhibitor
Quality 60%


Build Status

Chef cookbook for installing and managing Netflix's Exhibitor, a co-process for Apache Zookeeper.


In particular, two key attribute hashes drive this cookbook.

The first is node['exhibitor']['cli'], which specifies command-line options that will be used when Exhibitor is run. Some are necessary, and in particular the defaults provided will ensure Exhibitor is able to run.

The second is node['exhibitor']['config'], which manages the configuration parameters that get rendered to the file. The defaults are sensible starting values.

We recommend running exhibitor::default to get a basic, default setup of Exhibitor going, as well as calling exhibitor::service if you want the service to boot up in the same run. These recipes are split for workflows within, for example, AMI pipelines.

More documentation to come. Please see the Exhibitor docs for more information on the specifics of running Exhibitor.

Author and License

Simple Finance

Apache License, Version 2.0

Dependent cookbooks

maven ~> 4.0
et_gradle ~> 2.0
magic ~> 1.5
zookeeper ~> 8.0
runit ~> 3.0
java ~> 1.35
build-essential >= 0.0.0

Contingent cookbooks

There are no cookbooks that are contingent upon this one.




  • Upgrade to zookeeper ~> 8.0
  • Upgrade other cookbook dependencies to latest as of this writing
  • Refactor to use the new custom resources from zookeeker 8.x
  • Ensure Java 8 is installed for the Maven-based Exhibitor recipes
    • At the moment though, these recipes appear broken


  • Upgrade to zookeeper ~> 6.0
  • Fix Vagrant-based CentOS test suites


  • Fix incorrect usage of Hash.each where should have been used


  • Fix missed node[exhibitor][config] keys in exhibitor::default


  • Refactor to provide two mechanisms to assemble Exhibitor, as per Netflix’s Exhibitor docs
    • This does mean that installing a prebuilt copy of Exhibitor isn’t an option with this version of the cookbook
    • Owing to Maven 3, and just b/c it’s good to keep up-to-date, this cookbook now defaults to Java 7
    • Build/assembly options:
      • Maven (new!)
      • Gradle
  • Drop unnecessarily abstracted Exhibitor::Util class in favor of more declarative code
  • Make use of the magic cookbook to avoid reinventing the wheel
  • Drop pin for build-essential to avoid cross-dependency pain


  • This version reflects that this cookbook is used in production, and will respect semver moving forward
    • No functional or breaking changes occurred to the cookbook’s code
  • Clean up of docs
  • Update ownership


  • Add attribute to use a custom command to run gradle (#32, @vanliew)
  • Upgrade to zookeeper ~> 5.0
    • Brings in potentially breaking change of using java cookbook’s $JAVA_HOME env var for the version of Java used to run ZooKeeper
  • Use java cookbook’s $JAVA_HOME env var for the version of Java used to run Exhibitor


  • Bump zookeeper to ~> 4.0 (#30 @f1yers)


  • Add Upstart as an alternative to runit (#29 @davidgiesberg)


  • Move installation of node['exhibitor']['patch_package'] to execution phase (#26)
  • Drop testing in Chef 11 due to conflict w/ net-ssh gem installed by Serverspec


  • Add Serverspec tests (#5)
  • Bump zookeeper to ~> 3.0 (#23)


  • Add pins to all cookbook dependencies to avoid breaking changes
  • Add attribute to control Exhibitor service actions
  • Add attribute to set ZooKeeper to be managed by Exhibitor
  • Fix Chef overwriting shared config (#20)
  • Add exhibitor::service to default test suite
  • Use Chef Zero for Test Kitchen


  • Update to Exhibitor 1.5.5 (#18)
    • Includes updates to build script, lifted directly from Exhibitor’s own script
  • Fix ownership of downloaded Exhibitor jar (#19)
  • Remove duplicate metadata.json file
  • Clean up and fix up Test Kitchen config


  • Just run install instead of default recipe (contributed by @DorianZaccaria)


  • Fixed bug wherein Exhibitor dearchive reference was incorrect (contributed by @benley)


  • Exhibitor will now explicitly look for dataDir and dataLogDir attributes under node[:zookeeper][:config], and prioritize them for calculated values.


  • Set correct permissions for files Exhibitor needs to run (#7)
  • Set correct parameter name for zookeeper-data-directory (#6)


  • Massive cleanup and minor refactor
  • Service now activated in a separate service recipe
  • Renamed node[:exhibitor][:defaultconfig] to node[:exhibitor][:config]
  • Renamed node[:exhibitor][:opts] to node[:exhibitor][:cli]
  • Added helper library methods
  • TODO: Some tests


  • Cleanup and style fixes. No functional changes.


  • Initial release of exhibitor, split from zookeeper, contributed by @wolf31o2

Collaborator Number Metric

4.0.1 passed this metric

Foodcritic Metric

4.0.1 passed this metric

License Metric

4.0.1 failed this metric

exhibitor does not have a valid open source license.
Acceptable licenses include Apache 2.0, apachev2, MIT, mit, GNU Public License 2.0, gplv2, GNU Public License 3.0, gplv3.

Publish Metric

4.0.1 passed this metric

Supported Platforms Metric

4.0.1 failed this metric

exhibitor should declare what platform(s) it supports.