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


serf (16) Versions 0.1

Installs/Configures serf

cookbook 'serf', '= 0.1', :supermarket
cookbook 'serf', '= 0.1'
knife supermarket install serf
knife supermarket download serf
Quality -%

Serf Cookbook

Installs and configures Serf.


Using the default attributes will setup a single Serf agent in its own cluster.

If you already have a Serf agent (or cluster) running specify the address(es) with the
node["serf"]["join_addresses"] attribute so the agent will join the cluster(s).


  • node["serf"]["join_addresses"] : An array of addresses the Serf agent should try to join (default=[])
  • node["serf"]["event_handlers"] : An array of hashes that represent event handlers. See 'Event Handlers' below for more details (default=[])
  • node["serf"]["role"] : The role of the Serf agent (default="")
  • node["serf"]["node"] : The node name of the Serf agent (default=node["fqdn"])
  • node["serf"]["base_binary_url"] : The base url used to download the binary zip (default="")
  • node["serf"]["version"] : The version of the Serf agent to install (default="0.1.1")
  • node["serf"]["arch"] : The architecture of the Serf agent to install (default=kernel['machine'] =~ /x86_64/ ? "amd64" : "386")
  • node["serf"]["binary_url"] : The full binary url of the Serf agent (default=File.join node["serf"]["base_binary_url"], "#{node["serf"]["version"]}_linux_#{node["serf"]["arch"]}.zip")
  • node["serf"]["rpc_port"] : The rpc port the Serf agent uses for communication between other serf commands (default=7373)
  • node["serf"]["rpc_address"] : The rpc address the Serf agent uses for communication between other Serf commands (default=["serf"]["rpc_port"])
  • node["serf"]["bind_port"] : The bind port the Serf agent uses for communication between other Serf agents (default=7946)
  • node["serf"]["bind_address"] : The bind address the Serf agent uses for communication between other Serf agents (default=["serf"]["bind_port"])
  • node["serf"]["log_level"] : The log level of the Serf agent (default="info")
  • node["serf"]["base_directory"] : The base directory Serf should be installed into (default="/opt/serf")
  • node["serf"]["log_directory"] : The directory of the Serf agent logs (default="/var/log/serf")

Event Handlers

An event handler is a script that is run when the Serf agent
recieves an event (member-join, member-leave, member-failed, or user).

The format for configuring an event handler throught the serf cookbook is,

  "url" : "URL", # REQUIRED
  "event_type" : "EVENT_TYPE", #OPTIONAL

The event_type value filters the event handler for certain events. Use this doc
to figure out the event_type you need.

Dependent cookbooks

This cookbook has no specified dependencies.

Contingent cookbooks

There are no cookbooks that are contingent upon this one.

No quality metric results found