Skip to content

hw-cookbooks/kafka

Repository files navigation

Kafka Chef Cookbook

Description

Chef cookbook for Apache Kafka, publish-subscribe messaging rethought as a distributed commit log.

Usage

Simply include recipe[kafka] in your run_list and Kafka will be installed. Note that this presumes you already have ZooKeeper instance(s) up and running for the brokers to connect to. You have the option of including the kafka::zookeeper recipe in your node's run list before the kafka default recipe to get zookeeper up and running.

Requirements

Chef

Tested on 11.10.0 but newer and older versions (of 11) should work just fine. File an issue if this isn't the case.

Platform

The following platforms have been tested with this cookbook, meaning that the recipes run on these platforms without error:

  • ubuntu (12.04)
  • centos (6.4)

Please report any additional platforms so they can be added.

Cookbooks

This cookbook depends on the following external cookbooks:

Recipes

default

This recipe downloads, installs, configures, and enables kafka.

discovery

This recipe discovers other ZooKeeper cluster instances and augments the node[:kafka][:config] configuration hash.

Attributes

  • node[:kafka][:auto_discovery] - whether or not to perform auto discovery via the discovery recipe (defaults to true)
  • node[:kafka][:build_commands] - commands to compile Kafka (defaults depends on version of Kafka, see attributes::default)
  • node[:kafka][:conf_dir] - configuration directory (defaults to "/etc/kafka/conf")
  • node[:kafka][:config] - Kafka configuration has which will be rendered into kafka.properties (defaults depends on version of Kafka, see attributes::config)
  • node[:kafka][:data_dir] - data directory for storage (defaults to "/var/kafka")
  • node[:kafka][:download_url] - full URL for downloading the distribution (defaults depends on version of Kafka, see attributes::default)
  • node[:kafka][:group] - group that runs the Kafka service (defaults to "kafka")
  • node[:kafka][:install_dir] - base installation directory (defaults to "/opt/kafka")
  • node[:kafka][:log_dir] - log directory (defaults to "/var/log/kafka")
  • node[:kafka][:user] - user that runs the Kafka service (defaults to "kafka")
  • node[:kafka][:runtime_dir] - directory in which Kafka will start (defaults to "/tmp")
  • node[:kafka][:version] - version of Kafka to install (defaults to "0.7.2")

Resources and Providers

There are no resources and providers.

Development

Pull requests are very welcome! Make sure your patches are well tested. Ideally create a topic branch for every separate change you make.

License and Author

Author:: Heavy Water Operations

Copyright 2011, 2012, 2013, 2014 Heavy Water Operations, LLC

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.