Git Product home page Git Product logo

puppet-kafka's Introduction

Kafka module for Puppet

Build Status Code Coverage Puppet Forge Puppet Forge - downloads Puppet Forge - endorsement Puppet Forge - scores

Table of Contents

  1. Overview
  2. Module Description - What the module does and why it is useful
  3. Setup - The basics of getting started with kafka
  4. Usage - Configuration options and additional functionality
  5. Reference - An under-the-hood peek at what the module is doing and how
  6. Limitations - OS compatibility, etc.
  7. Development - Guide for contributing to the module

Overview

The kafka module for managing the installation and configuration of Apache Kafka

Module Description

The Kafka module for managing the installation and configuration of Apache Kafka: it's brokers, producers and consumers.

Setup

What kafka affects

Installs the Kafka package and creates a new service.

Beginning with Kafka

To successfully install Kafka using this module you need to have Apache Zookeeper already running at localhost:2181. You can specify another Zookeeper host:port configuration using the config hash of the kafka:broker class.

The default configuration installs Kafka 0.9.0.1 binaries with Scala 2.11

  class { 'kafka': }

If you want a Kafka broker server that connects to zookeeper listening on port 2181:

  class { 'kafka::broker':
    config => { 'broker.id' => '0', 'zookeeper.connect' => 'localhost:2181' }
  }

Usage

You can specify different Kafka binaries packages versions to install. Please take a look at the different Scala and Kafka versions combinations at the Apache Kafka Website

Installing Kafka version 0.9.0.1 with scala 2.11

We first install the binary package with:

  class { 'kafka':
    version => '0.9.0.1',
    scala_version => '2.11'
  }

Then we set a minimal Kafka broker configuration with:

  class { 'kafka::broker':
    config => { 'broker.id' => '0', 'zookeeper.connect' => 'localhost:2181' }
  }

Classes and Defined Types

Class: kafka

One of the primary classes of the kafka module. This class will install the kafka binaries

Parameters within kafka:

version

The version of kafka that should be installed.

scala_version

The scala version what kafka was built with.

install_dir

The directory to install kafka to.

mirror_url

The url where the kafka is downloaded from.

install_java

Install java if it's not already installed.

package_dir

The directory to install kafka.

package_name

Package name, when installing kafka from a package.

package_ensure

Package version (or 'present', 'absent', 'latest'), when installing kafka from a package.

group_id

Create kafka group with this ID

user_id

Create kafka user with this ID

user

User to install kafka as. Defaults to the kafka user.

group

Group to install kafka as. Defaults to the kafka group.

config_dir

Directory for kafka config files. Defaults to /opt/kafka/config.

log_dir

Directory for kafka log files. Defaults to /var/log/kafka.

Class: kafka::broker

One of the primary classes of the kafka module. This class will install a kafka broker.

Parameters within kafka::broker:

version

The version of kafka that should be installed.

scala_version

The scala version what kafka was built with.

install_dir

The directory to install kafka to.

mirror_url

The url where the kafka is downloaded from.

config

A hash of the configuration options. All values are used in the server.properties file directly.

install_java

Install java if it's not already installed.

service_ensure

Sets the ensure state of the broker service to stopped or running.

service_install

Install the init.d service.

service_restart

Whether the configuration files should trigger a service restart

package_dir

The directory to install kafka.

Class: kafka::consumer

One of the primary classes of the kafka module. This class will install a kafka consumer.

Parameters within kafka::consumer:

version

The version of kafka that should be installed.

scala_version

The scala version that kafka was built with.

install_dir

The directory to install kafka to.

mirror_url

The url where the kafka is downloaded from.

install_java

Install java if it's not already installed.

package_dir

The directory to install kafka.

Class: kafka::mirror

One of the primary classes of the kafka module. This class will install a kafka mirror.

Parameters within kafka::mirror:

version

The version of kafka that should be installed.

scala_version

The scala version that kafka was built with.

install_dir

The directory to install kafka to.

mirror_url

The url where the kafka is downloaded from.

install_java

Install java if it's not already installed.

package_dir

The directory to install kafka.

Class: kafka::producer

One of the primary classes of the kafka module. This class will install a kafka producer.

Parameters within kafka::producer:

version

The version of kafka that should be installed.

scala_version

The scala version that kafka was built with.

install_dir

The directory to install kafka to.

mirror_url

The url where the kafka is downloaded from.

install_java

Install java if it's not already installed.

package_dir

The directory to install kafka.

Define: kafka::topic

Defined type that creates Kafka topics.

Reference

Classes

Public Classes

  • kafka: Guides the basic installation of kafka binaries
  • kafka::broker: Guides the basic installation of a kafka broker
  • kafka::consumer: Guides the basic installation of a kafka consumer
  • kafka::mirror: Guides the basic installation of a kafka mirror
  • kafka::producer: Guides the basic installation of a kafka producer

Private Classes

  • [kafka::broker::config] Manages all the default configuration of the kafka broker application
  • [kafka::broker::install] Manages the installation of the kafka packages
  • [kafka::broker::service] Manages the kafka server service
  • [kafka::consumer::config] Manages all the default configuration of the kafka consumer application
  • [kafka::consumer::install] Manages the installation of the kafka packages
  • [kafka::consumer::service] Manages the kafka server service
  • [kafka::mirror::config] Manages all the default configuration of the kafka mirror application
  • [kafka::mirror::install] Manages the installation of the kafka packages
  • [kafka::mirror::service] Manages the kafka server service
  • [kafka::producer::config] Manages all the default configuration of the kafka producer application
  • [kafka::producer::install] Manages the installation of the kafka packages
  • [kafka::producer::service] Manages the kafka server service

Defined Types

  • kafka::topic Create kafka topics

Limitations

This module is tested on the following platforms:

  • CentOS 5
  • CentOS 6
  • Ubuntu 12.04
  • Ubuntu 14.04

It is tested with the OSS version of Puppet (>= 4.7.0) only.

Development

Contributing

Please read CONTRIBUTING.md for full details on contributing to this project.

puppet-kafka's People

Contributors

alexjfisher avatar bastelfreak avatar bbriggs avatar bjoernhaeuser avatar confiq avatar dhollinger avatar dhoppe avatar eliranbz avatar ellamdav avatar fessyfoo avatar gabrielnicolasavellaneda avatar igalic avatar jacobmw avatar jolivares avatar juniorsysadmin avatar jyaworski avatar knumor avatar liamjbennett avatar lionelcons avatar mike-petersen avatar nibalizer avatar ptodoran avatar sacres avatar seanmalloy avatar stack72 avatar travees avatar vgarcia-te avatar volkorny avatar vuokkovuorinnen avatar yastupin avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.