invoke as root:
#!/bin/sh
set -e
apt-get update
# alt: 'apt-get install -y zookeeperd' might set up the service as well
apt-get install -y zookeeper
cat >/etc/systemd/system/zookeeper.service << EOF
[Unit]
Description=Apache ZooKeeper
Requires=network.target remote-fs.target
After=network.target remote-fs.target
[Service]
Type=forking
User=zookeeper
Group=zookeeper
ExecStart=/usr/share/zookeeper/bin/zkServer.sh start
ExecStop=/usr/share/zookeeper/bin/zkServer.sh stop
ExecReload=/usr/share/zookeeper/bin/zkServer.sh restart
WorkingDirectory=/var/lib/zookeeper
Restart=on-failure
SyslogIdentifier=kafka
[Install]
WantedBy=multi-user.target
EOF
mkdir /opt/kafka /etc/kafka /var/lib/kafka
wget http://apache.claz.org/kafka/0.10.2.0/kafka_2.11-0.10.2.0.tgz -O /tmp/kafka.tgz
tar -xvf /tmp/kafka.tgz -C /opt/kafka --strip-components 1
cp /opt/kafka/config/server.properties /etc/kafka/server.properties
cat >/etc/systemd/system/kafka.service << EOF
[Unit]
Description=Apache Kafka server (broker)
Documentation=http://kafka.apache.org/documentation.html
Requires=zookeeper.service network.target remote-fs.target
After=zookeeper.service network.target remote-fs.target
ConditionPathExists=/etc/kafka/server.properties
ConditionPathExists=/var/lib/kafka
[Service]
Type=simple
PIDFile=/var/run/kafka.pid
User=kafka
Group=kafka
ExecStart=/opt/kafka/bin/kafka-server-start.sh /etc/kafka/server.properties
ExecStop=/opt/kafka/bin/kafka-server-stop.sh
WorkingDirectory=/var/lib/kafka
Restart=on-failure
SyslogIdentifier=kafka
[Install]
WantedBy=multi-user.target
EOF
systemctl daemon-reload
systemctl start zookeeper
systemctl start kafka