158 lines
7.0 KiB
Bash
158 lines
7.0 KiB
Bash
#!/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 |