使用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即可进入。"