This role sets up Kafka on a cluster of servers
- between the three servers: Ports: 2181, 2888, 3888, 9092
- from Clients to kafka servers: Port: 9092
- from Ansible server to Kafka serves: Port: 22
In addition to the root file system have two more:
Disk | Size | mount point |
---|---|---|
ZooKeeper | 10Gb | /zookeeper |
Kafka | 240Gb | /kafka |
Add ansible inventory ssh public key to user ec2-user
Example commands:
fdisk /dev/xvdb
n #new partition default values
w # write and quit
mkfs.ext4 /dev/xvdb1
To create the mounts:
Example lines in /etc/fstab
/dev/xvdd1 /zookeeper ext4 defaults 0 0
/dev/xvdb1 /kafka ext4 defaults 0 0
mkdir /kafka /zookeeper
mount -a
sudo groupadd -g 502 kafkagroup
sudo useradd -m -d /home/kafkauser -s /bin/bash -G 502 -u 502 kafkauser
sudo chown kafkauser:kafkagroup /kafka
sudo chown kafkauser:kafkagroup /zookeeper
Java Development Kit >= 8
Role tested with Oracle JDK version 8u121
kafka1 ansible_host=10.0.0.101 zk_id=1
kafka2 ansible_host=10.0.0.102 zk_id=2
kafka3 ansible_host=10.0.0.103 zk_id=3
[kafkas]
kafka1
kafka2
kafka3
kafka-setup.yml
---
- hosts: kafkas
roles:
- setup-kafka
ansible-playbook kafka-setup.yml