Skip to content

Instantly share code, notes, and snippets.

@stnet253
Last active December 27, 2019 07:00
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save stnet253/62165594de3fd84f5ac1a12576c5f0f2 to your computer and use it in GitHub Desktop.
Save stnet253/62165594de3fd84f5ac1a12576c5f0f2 to your computer and use it in GitHub Desktop.
array=()
# 將傳入參數轉為 array
for i in "$@"; do
echo "$i"
array+=($i)
done
mkdir /tmp/kafka
echo ">>> Downloading kafka"
curl http://apache.stu.edu.tw/kafka/2.3.1/kafka_2.11-2.3.1.tgz -o /tmp/kafka/kafka.tgz
zookeepers=$(IFS=, ; echo "${array[*]/%/:2181}")
for index in "${!array[@]}"; do
echo ">>> Install JDK"
ssh root@${array[$index]} "yum install java-11-openjdk-devel"
echo ">>> Copy zookeeper's daemon config"
# 複製 service 設定 for zookeeper
scp zookeeper.service root@${array[$index]}:/etc/systemd/system/zookeeper.service
echo ">>> Copy kafka's daemon config"
# 複製 service 設定 for kafka
scp kafka.service root@${array[$index]}:/etc/systemd/system/kafka.service
echo ">>> Copy kafka"
# 複製 kafka 壓縮檔
scp /tmp/kafka/kafka.tgz root@${array[$index]}:/home/kafka/kafka.tgz
echo ">>> Unzip kafka"
# 進入 kafka user 根路徑
ssh root@${array[$index]} "cd /home/kafka && tar -xvzf kafka.tgz --strip 1"
echo ">>> Config zookeeper for cluster"
ssh root@${array[$index]} "echo initLimit=10 >> /home/kafka/config/zookeeper.properties"
ssh root@${array[$index]} "echo syncLimit=5 >> /home/kafka/config/zookeeper.properties"
ssh root@${array[$index]} "mkdir /tmp/zookeeper && echo \"$(($index + 1))\" > /tmp/zookeeper/myid"
echo ">>> Setup server id for zookeeper"
# 設定 server id for zookeeper
for i in "${!internalArray[@]}"; do
ssh root@${array[$index]} "echo server.\"$(($i + 1))\"=\"${internalArray[$i]}\":2888:3888 >> /home/kafka/config/zookeeper.properties"
done
# 修改 kafka broker_id
echo ">>> Setup kafka broker_id"
ssh root@${array[$index]} "sed -i 's/broker.id=0/broker.id=$(($index+1))/g' /home/kafka/config/server.properties"
# 修改 kafka 連線的 zookeeper
echo ">>> Setup kafka's zookeeper"
ssh root@${array[$index]} "sed -i 's/localhost:2181/${zookeepers}/g' /home/kafka/config/server.properties"
echo ">>> Start kafka"
ssh root@${array[$index]} "systemctl daemon-reload && systemctl start kafka && systemctl enable kafka"
done
sh Apache-Kafka-cluster-install.sh 10.0.0.5 10.0.0.6 10.0.0.7
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment