opstree_devops.kafka_cluster

CiS Compliant Apache License GitHub release (latest by date)

OSM: Kafka

This is a top-quality Ansible role to set up a Kafka and Zookeeper cluster.

Requirements

The only requirement for this role is Java.

You can find our Java role here.

Role Variables

We have divided the variables into two categories: Mandatory and Optional.

Mandatory Variables

Variables Default Values Possible Values Description
zookeeper_data_dir /opt/zookeeper Any Linux Directory Directory for Zookeeper's data storage
installation_dir /opt Any Linux Directory Directory where Kafka will be installed
kafka_major_version 2.12 Any valid Kafka version Major version of the Kafka release
kafka_minor_version 2.2.1 Any valid Kafka version Minor version of the Kafka release

Optional Variables

Variables Default Values Possible Values Description
kafka_service_user_name kafka Service username for Kafka System user under which Kafka tasks will run
kafka_service_group_name kafka Service group name for Kafka System group name under which Kafka tasks will run
kafka_logs_dir /var/log/kafka Any Linux Directory Directory for Kafka log files
zk_client_port 2181 Any Linux Port Number Port for Zookeeper client connections
init_limit 5 Any integer value Timeout for Zookeeper servers to connect to a leader
sync_limit 2 Any integer value Limits how outdated a server can be compared to a leader
tick_time 2000 Any integer value Basic time unit in milliseconds used by Zookeeper
max_memory_heap -Xmx256M Memory size for JVM Maximum heap size for Kafka; adjust based on server specs
min_memory_heap -Xmx128M Memory size for JVM Minimum heap size for Kafka; adjust based on server specs

Inventory

Your inventory should look like this:

[zookeeper]                  # Zookeeper host and ID information
zookeeper1    zookeeper_id=1
zookeeper2    zookeeper_id=2
zookeeper3    zookeeper_id=3

[kafka]                      # Kafka host and broker ID information
kafka1   kafka_broker_id=1
kafka2   kafka_broker_id=2
kafka3   kafka_broker_id=3

[kafka_cluster:children]     # Parent group for Kafka and Zookeeper
zookeeper
kafka

[kafka_cluster:vars]         # Variables for kafka_cluster parent group
ansible_user=ubuntu

Example Playbook

Here’s a simple example of a playbook:

---
- hosts: kafka_cluster
  roles:
    - role: osm_kafka_cluster
      become: yes

Usage

To use this role, just run the playbook:

ansible-playbook -i hosts site.yml

Running Test Cases for Setup

To run test cases, we have a separate folder named inspec. You need to install Inspec (https://www.inspec.io/) to run the test cases.

Run the following command:

inspec exec . -t ssh://username@server_ip -i /path/to/keyfile

Author

Abhishek Dubey

Informazioni sul progetto

Ansible role for setting up the kafka cluster with zookeeper

Installa
ansible-galaxy install opstree_devops.kafka_cluster
Licenza
Unknown
Download
158
Proprietario