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

Select Status


exhibitor (25) Versions 2.0.0

Installs Netflix Exhibitor

cookbook 'exhibitor', '= 2.0.0', :supermarket
cookbook 'exhibitor', '= 2.0.0'
knife supermarket install exhibitor
knife supermarket download exhibitor
Quality 0%


Build Status

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


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 sane 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
for more
information on the specifics of running Exhibitor.

Author and License


Simple Finance

Apache License, Version 2.0

Dependent cookbooks

build-essential >= 0.0.0
java ~> 1.35
runit ~> 1.7
zookeeper ~> 5.0
magic ~> 1.5
et_gradle ~> 2.0
maven ~> 2.2

Contingent cookbooks

There are no cookbooks that are contingent upon this one.




  • 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

Foodcritic Metric

2.0.0 failed this metric

FC001: Use strings in preference to symbols to access node attributes: /tmp/9f32169be6d28700b0a0472a/exhibitor/recipes/default.rb:67
FC019: Access node attributes in a consistent manner: /tmp/9f32169be6d28700b0a0472a/exhibitor/recipes/default.rb:67