Files
odin/containers/kafka
Shane Peters b89ba1ad5a initial commit
2019-01-11 10:45:03 -05:00

72 lines
2.0 KiB
Bash

#!/bin/bash
# Configure Apache Kafka for Odin
#
echo -e "\e[93m"
log() {
echo -e "\t\e[96m[*]${1}\e[93m"
}
export KAFKA_URL='http://apache.claz.org/kafka/0.11.0.0/kafka_2.11-0.11.0.0.tgz'
export IP=$(ip route | awk '/src/{print $9}')
echo "kafka" >/etc/hostname
echo "${IP}\tkafka" >> /etc/hosts
deluser -q --remove-home ubuntu
apt-get update || exit 1
apt-get --purge remove snapd lxd -y
apt-get upgrade -y
apt-get install -y htop wget default-jre zookeeperd prometheus-node-exporter
useradd -r -d /opt/kafka -s /bin/true kafka
mkdir /var/lib/kafka && chown kafka /var/lib/kafka
wget -O /opt/kafka.tgz ${KAFKA_URL}
tar -xzf /opt/kafka.tgz -C /opt
rm /opt/kafka.tgz
mv /opt/kafka_* /opt/kafka
chown -R kafka /opt/kafka
cat >/etc/systemd/system/kafka.service<<EOF
[Unit]
Description=Apache Kafka server (broker)
Documentation=http://kafka.apache.org/documentation.html
Requires=network.target
After=network.target zookeeper.service
[Service]
Type=simple
User=kafka
Group=kafka
Environment=JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64/jre
ExecStart=/opt/kafka/bin/kafka-server-start.sh /opt/kafka/config/server.properties
ExecStop=/opt/kafka/bin/kafka-server-stop.sh
[Install]
WantedBy=multi-user.target
EOF
sed -i 's/#delete.topic.enable=true/delete.topic.enable=true/g' /opt/kafka/config/server.properties
sed -i 's/log.dirs=\/tmp\/kafka-logs/log.dirs=\/var\/lib\/kafka/g' /opt/kafka/config/server.properties
sed -i 's/log.dirs=\/tmp\/kafka-logs/log.dirs=\/var\/lib\/kafka/g' /opt/kafka/config/server.properties
sed -i 's/#listeners=PLAINTEXT:\/\/:9092/listeners=PLAINTEXT:\/\/kafka:9092/g' /opt/kafka/config/server.properties
cat >> /etc/cron.weekly/kafka_cleanup<<EOF
#!/bin/bash
export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
export PATH=\${PATH}:/opt/kafka/bin
export zk="127.0.0.1:2181"
for i in \$(kafka-topics.sh --list --zookeeper \${zk} |grep -v __consumer_offsets); do
kafka-topics.sh --zookeeper \${zk} --delete --topic \${i}
done
EOF
apt-get install -y prometheus-node-exporter
systemctl enable kafka
systemctl start kafka
echo -e "\e[0m"