Nsking和他的想法

使用bash脚本快速部署Elasticsearch6.3和Ik分词器
2020-05-22

近期有项目用到Es,但是由于一些原因需要进行多机负载均衡(如果通过307跳转指定随机服务器响应请求也算的话),要在多台服务器部署es,但是es的部署流程非常漫长,所以就写了这个脚本。作为一个bash初学者,这个脚本写的还有很多不足,轻喷。。。
适用平台:Centos 7.x X86-64架构

#!/bin/bash
cd /tmp
if [ -e "/es/" ];then
read -p "es安装目录/es已经存在,是否删除重新安装?y/n": del
case $del in
y)
rm -rf /es
;;
n)
echo "正在退出脚本"
exit
;;
esac
else
echo "开始安装"
fi
mkdir /es
echo 正在卸载已有的java版本
rpm -qa | grep java | xargs rpm -e --nodeps
echo 正在安装jdk1.8
yum update -y && yum -y install java-1.8.0-openjdk.x86_64 java-1.8.0-openjdk-devel.x86_64

if [ -e "./elasticsearch-6.3.0.tar.gz" ];then
read -p "es安装包已经存在,是否要删除重新下载?y/n": download
case $download in
y)
rm ./elasticsearch-6.3.0.tar.gz
echo 正在从镜像站下载es6.3.0
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.3.0.tar.gz
;;
n)
echo "将使用已经存在的安装包进行安装"
;;
esac
else
echo 正在从镜像站下载es6.3.0
wget http://13.75.108.121/elasticsearch-6.3.0.tar.gz
fi
tar -xzvf elasticsearch-6.3.0.tar.gz -C /es
adduser es
chown -R es:es /es
cd /es/elasticsearch-6.3.0
echo 正在安装ik分词插件
bash ./bin/elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v6.3.0/elasticsearch-analysis-ik-6.3.0.zip
echo "正在配置系统环境"
echo "vm.max_map_count=262144" > /etc/sysctl.conf
echo "es soft nofile 65536" >> /etc/security/limits.conf
echo "es hard nofile 65536" >> /etc/security/limits.con
sysctl -p
yum -y install screen
screen_name=$"es_server"
screen -S $screen_name -X quit
screen -dmS $screen_name
cmd1=$"su es";
cmd2=$"/es/elasticsearch-6.3.0/bin/elasticsearch";
screen -x -S $screen_name -p 0 -X stuff "$cmd1"
screen -x -S $screen_name -p 0 -X stuff $'\n'
screen -x -S $screen_name -p 0 -X stuff "$cmd2"
screen -x -S $screen_name -p 0 -X stuff $'\n'
#firewall-cmd --add-port=9200/tcp --permanent
#防火墙不建议开放,而是建议通过一些其他方式例如nginx反代等办法实现外网访问。
echo "安装完成 输入screen -r es_server即可进入。"

留个小脚印

  • *只有经过审核的评论才会显示出来噢 发表评论
  • 还没有人留下脚印噢,快来踩踩叭