opstree_devops.kafka_cluster
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
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