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