centos7---zookeeper集群自动部署-shell


[root@base7 oneZk]# ls
zk.sh  zoo.cfg  zookeeper-3.4.8.tar.gz

[root@base7 oneZk]# cat zoo.cfg 

# The number of milliseconds of each tick tickTime=2000 # The number of ticks that the initial # synchronization phase can take initLimit=10 # The number of ticks that can pass between # sending a request and getting an acknowledgement syncLimit=5 # the directory where the snapshot is stored. # do not use /tmp for storage, /tmp here is just # example sakes. dataDir=dataDirx dataLogDir=logDirx # the port at which the clients will connect clientPort=2181 # the maximum number of client connections. # increase this if you need to handle more clients #maxClientCnxns=60 # # Be sure to read the maintenance section of the # administrator guide before turning on autopurge. # # http://zookeeper.apache.org/doc/current/zookeeperAdmin.html#sc_maintenance # # The number of snapshots to retain in dataDir #autopurge.snapRetainCount=3 # Purge task interval in hours # Set to "0" to disable auto purge feature #autopurge.purgeInterval=1
server.0=B0:C0:D0 server.1=B1:C1:D1 server.2=B2:C2:D2
#方案内容过于庞大数据超过默认1M值,调整到2M jute.maxbuffer=0x1ffffe   [root@base7 oneZk]# cat zk.sh #!/bin/bash
##env #1.JDK #2.zoo.cfg #3.zookeeper-3.4.12.tar.gz #4.zk.sh
#server.A=B:C:D:A表示这个是第几号服务器,B表示服务器ip地址,C表示这个服务器与集群中的Leader服务器交换信息的端口,D备用选举端口号。 #server.0=18.11.1.10:2888:3888 #server.1=18.11.1.11:2888:3888 #server.2=18.11.1.12:2888:3888
#env user=root port=2181 dUser=root jxDir=/media shDir=/tmp zkDir=/root #ip集群做好免密 #ip=(192.168.88.12) ip=(192.168.88.12 192.168.88.13 192.168.88.14) echo -e "please input zookeeper version.ps: \033[1;32m3.4.8\033[0m or \033[1;32m3.4.14\033[0m" read version zkVersion=zookeeper-${version} dataDir=${zkDir}/${zkVersion}/data logDir=${zkDir}/${zkVersion}/logs
#-------------------------------------------------------------------begin
#tar if [ ! -f "${jxDir}/oneZk/${zkVersion}.tar.gz" ]; then   echo  "${zkVersion}.tar.gz not exists ! begin download..."   wget -P ${jxDir}/oneZk/ https://archive.apache.org/dist/zookeeper/${zkVersion}/${zkVersion}.tar.gz #else   #echo  "${zkVersion}.tar.gz already exists !" fi
ipCount=0 for i in ${ip[@]}; do   ipCount=`expr ${ipCount} + 1` done
if [ ${ipCount} -eq 3 ]; then   #---3   sed -i "s#dataDirx#${dataDir}#" zoo.cfg   sed -i "s#logDirx#${logDir}#" zoo.cfg   sed -i "s/2181/2181/" zoo.cfg   #logDel   #sed -i '26a\autopurge.snapRetainCount=5' zoo.cfg   #sed -i '30a\autopurge.purgeInterval=24' zoo.cfg   #cluster   j=0   for i in ${ip[@]};   do     sed -i "s/B${j}/${i}/" zoo.cfg     sed -i "s/C${j}/2888/" zoo.cfg     sed -i "s/D${j}/3888/" zoo.cfg     j=`expr $j + 1`   done   echo -e "\033[1;32mzoo.cfg done!\033[0m" elif [ ${ipCount} -eq 1 ]; then   #---1   #sed -i "s#dataDirx#${dataDir}#" zoo.cfg   #sed -i "s#logDirx#${logDir}#" zoo.cfg   sed -i "s/2181/2181/" zoo.cfg   #logDel   #sed -i '26a\autopurge.snapRetainCount=5' zoo.cfg   #sed -i '30a\autopurge.purgeInterval=24' zoo.cfg   #node1   sed -i "s/B0/${ip[0]}/" zoo.cfg   sed -i "s/B1/${ip[0]}/" zoo.cfg   sed -i "s/B2/${ip[0]}/" zoo.cfg   sed -i "s/C0/2887/" zoo.cfg   sed -i "s/C1/2888/" zoo.cfg   sed -i "s/C2/2889/" zoo.cfg   sed -i "s/D0/3887/" zoo.cfg   sed -i "s/D1/3888/" zoo.cfg   sed -i "s/D2/3889/" zoo.cfg   echo -e "\033[1;32mzoo.cfg done!\033[0m" else   echo -e "ip  error! \nplease input \033[1;31m1\033[0m or \033[1;31m3\033[0m ip."   exit fi
if [ ${ipCount} -eq 3 ]; then   id=0   for i in ${ip[@]};   do       echo "begin ${i}"     #scp     scp -rp ${jxDir}/oneZk/${zkVersion}.tar.gz ${dUser}@${i}:${shDir}     #tar     ssh ${dUser}@${i} "tar -zxf ${shDir}/${zkVersion}.tar.gz -C ${zkDir}"     #cp     scp -rp ${jxDir}/oneZk/zoo.cfg ${dUser}@${i}:${zkDir}/${zkVersion}/conf/     #mkdir     ssh ${dUser}@${i} "mkdir -p ${dataDir}"     ssh ${dUser}@${i} "mkdir -p ${logDir}"     #myid     ssh ${dUser}@${i} "echo ${id} > ${dataDir}/myid"     #start     ssh ${dUser}@${i} "source ~/.bash_profile && cd ${logDir} && ../bin/zkServer.sh start"     #enable     ssh ${dUser}@${i} "echo '#zk' >> /etc/rc.d/rc.local"     #ssh ${dUser}@${i} "echo "${zkDir}/${zkVersion}/bin/zkServer.sh start" >> /etc/rc.d/rc.local"     ssh ${dUser}@${i} "echo 'su - ${dUser} -l -c \"${zkDir}/${zkVersion}/bin/zkServer.sh start\"' >> /etc/rc.d/rc.local"     ssh ${dUser}@${i} "chmod +x /etc/rc.d/rc.loacl"     #port     ssh ${dUser}@${i} "netstat -lntp | grep ${port}"     ##ssh ${dUser}@${i} "ps -elf | grep zoo.cfg"     echo -e "\033[1;32m${i} done!\033[0m"     id=`expr ${id} + 1`   done   echo -e "\033[1;32m${i} Ths!\033[0m" #jps #QuorumPeerMain elif [ ${ipCount} -eq 1 ]; then   #scp   scp -rp ${jxDir}/oneZk/${zkVersion}.tar.gz ${dUser}@${ip[0]}:${shDir}   for ((i=0;i<3;i++));   do       echo "begin ${i}"     #tar     ssh ${dUser}@${ip[0]} "tar -zxf ${shDir}/${zkVersion}.tar.gz -C ${zkDir}"     ssh ${dUser}@${ip[0]} "mv ${zkDir}/${zkVersion} ${zkDir}/${zkVersion}-${i}"     #cp     scp -rp ${jxDir}/oneZk/zoo.cfg ${dUser}@${ip[0]}:${zkDir}/${zkVersion}-${i}/conf/     ssh ${dUser}@${ip[0]} "sed -i "s/2181/218${i}/" ${zkDir}/${zkVersion}-${i}/conf/zoo.cfg"     ssh ${dUser}@${ip[0]} "sed -i "s#logDirx#${zkDir}/${zkVersion}-${i}/logs#" ${zkDir}/${zkVersion}-${i}/conf/zoo.cfg"     ssh ${dUser}@${ip[0]} "sed -i "s#dataDirx#${zkDir}/${zkVersion}-${i}/data#" ${zkDir}/${zkVersion}-${i}/conf/zoo.cfg"     #mkdir     ssh ${dUser}@${ip[0]} "mkdir -p ${zkDir}/${zkVersion}-${i}/data"     ssh ${dUser}@${ip[0]} "mkdir -p ${zkDir}/${zkVersion}-${i}/logs"     #myid     ssh ${dUser}@${ip[0]} "echo ${i} > ${zkDir}/${zkVersion}-${i}/data/myid"     #start     ssh ${dUser}@${ip[0]} "source ~/.bash_profile && cd ${zkDir}/${zkVersion}-${i}/logs && ../bin/zkServer.sh start"     #enable     ssh ${dUser}@${ip[0]} "echo '#zk' >> /etc/rc.d/rc.local"     #ssh ${dUser}@${ip[0]} "echo "${zkDir}/${zkVersion}/bin/zkServer.sh start" >> /etc/rc.d/rc.local"     #ssh ${dUser}@${ip[0]} "echo 'su - ${dUser} -l -c \"${zkDir}/${zkVersion}-${i}/bin/zkServer.sh start\"' >> /etc/rc.d/rc.local"     ssh ${dUser}@${ip[0]} "echo 'su - ${dUser} -l -c \"source ~/.bash_profile && cd ${zkDir}/${zkVersion}-${i}/logs && ../bin/zkServer.sh start\"' >> /etc/rc.d/rc.local"     ssh ${dUser}@${ip[0]} "chmod +x /etc/rc.d/rc.loacl"     #port     ssh ${dUser}@${ip[0]} "netstat -lntp | grep 218${i}"     ##ssh ${dUser}@${ip[0]} "ps -elf | grep zoo.cfg"     echo -e "\033[1;32m${ip[0]}-${i} done!\033[0m"   done     echo -e "\033[1;32mThs!\033[0m"   fi