2025-01-02 10:46:09 +08:00

158 lines
7.0 KiB
Bash
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/bin/bash
echo "由于脚本是在windows的vscode下写的所以需要安装dos2unix进行转换"
echo "try dos2unix filename"
read -p "什么?你已经执行过了?【y/n】" windows2unix
if [ $windows2unix = 'y' ]
then
echo "牛逼"
else
echo "滚回去执行!"
exit
fi
echo "脚本有1个参数主节点参数为1从节点参数为2 or 3比如./createES.sh 1"
read -p "什么你带参数了【y/n】" pram
if [ $# -ne 0 -a "$pram" = 'y' ]
then
echo "你真牛逼"
else
echo "给爷重新执行"
exit
fi
if [ $1 -eq 1 ]
then
while :
do
echo "请输入node2IP(回车结束):"
read node2IP
if [ $node2IP != "" ]
then
echo "你输入的node2IP为$node2IP,对吗?[y/n]"
read reply1
if [ $reply1 = "y" ]
then
break
else
echo "不对你瞎输入啥???,重新输入!"
continue
fi
fi
done
while :
do
echo "请输入node3IP(回车结束):"
read node3IP
if [ $node3IP != "" ]
then
echo "你输入的node3IP为$node3IP,对吗?[y/n]"
read reply2
if [ $reply2 = "y" ]
then
break
else
echo "不对你瞎输入啥???,重新输入!"
continue
fi
fi
done
fi
esnodetoke=""
echo -e "\033[41;33m Download and install the public signing key ing \033[0m"
wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo gpg --dearmor -o /usr/share/keyrings/elasticsearch-keyring.gpg
echo -e "\033[41;33m Download and install the public signing key done \033[0m"
echo -e "\033[41;33m install apt-transport-https \033[0m"
apt-get install apt-transport-https >> ./installES.log
echo -e "\033[41;33m install apt-transport-https done \033[0m"
echo -e "\033[41;33m Save the repository \033[0m"
echo "deb [signed-by=/usr/share/keyrings/elasticsearch-keyring.gpg] https://artifacts.elastic.co/packages/8.x/apt stable main" | sudo tee /etc/apt/sources.list.d/elastic-8.x.list
echo -e "\033[41;33m Save the repository done \033[0m"
echo -e "\033[41;33m install elasticsearch ing... \033[0m"
echo -e "\033[41;33m wait for some time shell running... \033[0m"
apt-get update >> ./installES.log && sudo apt-get install elasticsearch >> ./installES.log
echo -e "\033[41;33m install elasticsearch done \033[0m"
if [ ! $1 ]
then
echo -e "\033[41;33m erro,please input 1 or 2 or 3 \033[0m"
exit
elif [ $1 -eq 2 ]
then
read -p "请输入esnodetoken" esnodetoken
echo -e "\033[41;33m 2节点开始加入集群 \033[0m"
/usr/share/elasticsearch/bin/elasticsearch-reconfigure-node --enrollment-token $esnodetoken >> ./installES.log
echo -e "\033[41;33m 加入集群成功 \033[0m"
echo -e "\033[41;33m 2节点开始修改配置 \033[0m"
sed -i 's/#cluster.name: my-application/cluster.name: my-es/g' /etc/elasticsearch/elasticsearch.yml
echo -e "\033[41;33m 修改集群名称success \033[0m"
sed -i 's/#node.name: node-1/node.name: es-2/g' /etc/elasticsearch/elasticsearch.yml
echo -e "\033[41;33m 修改节点名称success \033[0m"
echo -e "\033[41;33m 修改2节点监听配置 \033[0m"
sed -i 's/#network.host: 192.168.0.1/network.host: 0.0.0.0/g' /etc/elasticsearch/elasticsearch.yml
echo -e "\033[41;33m 修改2节点监听配置success \033[0m"
echo -e "\033[41;33m 启动2节点ES \033[0m"
systemctl start elasticsearch.service
echo -e "\033[41;33m 启动完成 \033[0m"
elif [ $1 -eq 3 ]
then
read -p "请输入esnodetoken" esnodetoken
echo -e "\033[41;33m 3节点开始加入集群 \033[0m"
/usr/share/elasticsearch/bin/elasticsearch-reconfigure-node --enrollment-token $esnodetoken >> ./installES.log
echo -e "\033[41;33m 加入集群成功 \033[0m"
echo -e "\033[41;33m 3节点开始修改集群名称 \033[0m"
sed -i 's/#cluster.name: my-application/cluster.name: my-es/g' /etc/elasticsearch/elasticsearch.yml
echo -e "\033[41;33m 修改集群名称success \033[0m"
echo -e "\033[41;33m 3节点开始修改节点名称 \033[0m"
sed -i 's/#node.name: node-1/node.name: es-3/g' /etc/elasticsearch/elasticsearch.yml
echo -e "\033[41;33m 3节点修改节点名称succes \033[0m"
echo -e "\033[41;33m 修改3节点监听配置 \033[0m"
sed -i 's/#network.host: 192.168.0.1/network.host: 0.0.0.0/g' /etc/elasticsearch/elasticsearch.yml
echo -e "\033[41;33m 修改3节点监听配置success \033[0m"
echo -e "\033[41;33m 启动3节点ES \033[0m"
systemctl start elasticsearch.service
echo -e "\033[41;33m 启动完成 \033[0m"
elif [ $1 -eq 1 ]
then
echo -e "\033[41;33m 主节点开始修改配置 \033[0m"
sed -i 's/#cluster.name: my-application/cluster.name: my-es/g' /etc/elasticsearch/elasticsearch.yml
echo -e "\033[41;33m 修改集群名称success \033[0m"
echo -e "\033[41;33m 开始修改节点名称success \033[0m"
sed -i 's/#node.name: node-1/node.name: es-1/g' /etc/elasticsearch/elasticsearch.yml
echo -e "\033[41;33m 修改节点名称success \033[0m"
sed -i 's/^\(cluster.initial_master_nodes:.*\)/cluster.initial_master_nodes: \[\"es-1\"\]/g' /etc/elasticsearch/elasticsearch.yml
echo -e "\033[41;33m 修改主节点master配置success \033[0m"
echo -e "\033[41;33m 修改主节点监听配置 \033[0m"
sed -i 's/#network.host: 192.168.0.1/network.host: 0.0.0.0/g' /etc/elasticsearch/elasticsearch.yml
echo -e "\033[41;33m 修改主节点监听配置success \033[0m"
node1IP=$(ip a | awk '/inet / {print $2}' | awk -F / 'NR==2 {print $1}')
sed -i "s/#discovery.seed_hosts: \[\"host1\", \"host2\"\]/discovery.seed_hosts: \[\"$node1IP\", \"$node2IP\", \"$node3IP\"\]/g" /etc/elasticsearch/elasticsearch.yml
echo -e "\033[41;33m seed_hosts success \033[0m"
echo -e "\033[41;33m 启动主节点ES \033[0m"
systemctl start elasticsearch.service
echo -e "\033[41;33m 启动完成 \033[0m"
echo -e "\033[41;33m 主节点开始生成加入节点密码 \033[0m"
/usr/share/elasticsearch/bin/elasticsearch-create-enrollment-token -s node > ./esnodetoken
echo -e "\033[41;33m 请查看esnodetoken文件获取加入节点密码 \033[0m"
echo -e "\033[41;33m 主节点安装成功 \033[0m"
echo -e "\033[41;33m 等待其他节点加入... \033[0m"
ELASTIC_PASSWORD=`awk -F ' ' '/The generated password for the elastic built-in superuser is : / {print $11}' installES.log | tr -d '[:space:]'`
echo $ELASTIC_PASSWORD > ./ELASTIC_PASSWORD
while :
do
nodes=$(curl --silent --cacert /etc/elasticsearch/certs/http_ca.crt -u elastic:$ELASTIC_PASSWORD https://localhost:9200/_cat/nodes?v | wc -l)
if [ $nodes -eq 2 ]
then
echo -ne "wait 2 nodes join...\r"
elif [ $nodes -eq 3 ]
then
echo -ne "wait 1 node join...\r"
elif [ $nodes -eq 4 ]
then
echo "三个节点全部检测到啦"
break
fi
sleep 1
done
fi