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 5.0.1

Installs Netflix Exhibitor

cookbook 'exhibitor', '~> 5.0.1'
cookbook 'exhibitor', '~> 5.0.1', :supermarket
knife supermarket install exhibitor
knife supermarket download exhibitor
Quality 75%


Build Status Chef cookbook

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


Attempting to install Exhibitor, using Maven, on Ubuntu 14.04, will result in an error:

[ERROR] Plugin org.apache.maven.plugins:maven-clean-plugin:2.5 or one of its dependencies could not be resolved: Failed to read artifact descriptor for org.apache.maven.plugins:maven-clean-plugin:jar:2.5: Could not transfer artifact org.apache.maven.plugins:maven-clean-plugin:pom:2.5 from/to central ( java.lang.RuntimeException: Unexpected error: the trustAnchors parameter must be non-empty -> [Help 1]

As a result, we do not support this.


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 ~> 5.0
et_gradle ~> 2.0
magic ~> 1.5
zookeeper ~> 10.0
runit ~> 4.0
java ~> 1.35
build-essential >= 0.0.0

Contingent cookbooks

There are no cookbooks that are contingent upon this one.



  • Drop support of Maven-based install on Ubuntu 14.04
  • Refactor testing to use kitchen-dokken (#48)


  • Upgrade dependencies:
    • runit v4.x
    • maven v5.x
    • zookeeper v10.x
  • Use the zookeeper cookbook’s version of ZooKeeper
  • Drop support for Ubuntu 12.04
  • Update CentOS testing & support
  • Set an absolute path for mvn & gradle to fix some CentOS support
  • Add SystemD support (#47)


  • Add defining the mirror (#46)
  • Add testing on Ubuntu 16.04


  • Allow ZooKeeper to be installed to other directories using node['zookeeper']['install_dir'] attribute


  • Just updating the CHANGELOG on Supermarket


  • Remove confusing, unused attributes


  • 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

5.0.1 passed this metric

Contributing File Metric

5.0.1 failed this metric

Failure: To pass this metric, your cookbook metadata must include a source url, the source url must be in the form of, and your repo must contain a file

Foodcritic Metric

5.0.1 passed this metric

No Binaries Metric

5.0.1 passed this metric

Publish Metric

5.0.1 passed this metric

Supported Platforms Metric

5.0.1 passed this metric

Testing File Metric

5.0.1 failed this metric

Failure: To pass this metric, your cookbook metadata must include a source url, the source url must be in the form of, and your repo must contain a file

Version Tag Metric

5.0.1 passed this metric