This Ansible playbook will build a Kafka cluster with Zookeeper.
You can pre-build a Rackspace cloud environment or run the playbook against an existing environment.
See INSTALL.md for installation and build instructions.
-
Ansible >= 2.0.
-
Expects RHEL/CentOS 6/7 or Ubuntu 14 hosts.
-
Building the Rackspace Cloud environment requires the
pyraxPython module: pyrax link.
-
It installs Zookeeper for Kafka (Zookeeper is installed on the first 3 nodes only).
-
It supports static inventory if the environment is pre-built (
inventory/staticfile). -
The
idis automatically set (on the inventory items in alphabetical order). -
The data drives can be customized and can be put on top of Rackspace Cloud Block Storage.
-
It includes init scripts for both Zookeeper and Kafka.
-
The cloud environment requires the standard
pyraxcredentials file that looks like this:[rackspace_cloud] username = my_username api_key = 01234567890abcdefThis file will be referenced in the
RAX_CREDS_FILEenvironment variable.By default, the file is expected to be:
~/.raxpub. -
When provisioning Kafka on existing infrastructure edit
inventory/staticand add the nodes.
To customize, change the variables under playbooks/group_vars and playbooks/roles folders:
- playbooks/group_vars/all: contains cluster and cloud settings
- playbooks/roles/zookeeper/defaults/main.yml: Zookeeper specific settings
- playbooks/roles/kafka/defaults/main.yml: Kafka specific settings
For a one-node cluster, set nodes_count in playbooks/group_vars/all to 1.
To provision a Rackspace Cloud environment, run the provision_rax.sh script after you've customized the variables:
bash provision_rax.sh
Similarly, run the one of the kafka_*.sh scripts, depending what type of environment you have.
-
For a Rackspace Cloud environment:
bash kafka_rax.sh -
For static / prebuilt environments:
bash kafka_static.sh