中间件一键部署脚本:elasticsearch单机部署脚本(密码认证)

###安装包和脚本放在同级目录下

cat deployment_elasticsearch.sh

#!/bin/bash

#二进制安装包和脚本放在一个磁盘较大的目录下。

tar_name=$(ls elasticsearch*)

if [[ -z "${tar_name}" ]]; then
    echo "未找到 Elasticsearch 二进制安装包"
    exit 1
fi

echo "检查当前服务器的系统参数************"
selinux_status=$(getenforce)
max_count=$(sysctl -n vm.max_map_count)
max_files=$(ulimit -n)
is_sudo=$(sudo -v 2>/dev/null && echo "0" || echo "1")

if command -v java >/dev/null 2>&1; then
    echo "JDK 已安装"
else
    echo "JDK 未安装"
    exit 1
fi


if [ $selinux_status != "disabled" ]; then
    if [ $is_sudo -eq 0 ]; then
        echo "SELinux未禁用!当前用户拥有sudo权限,可以直接调整!"
        sudo setenforce 0
        sudo sed -i.bak  's@^SELINUX=\(.*\)@SELINUX=disabled@p' /etc/selinux/config
    else
        echo "SELinux未禁用!当前用户无sudo权限!,退出安装!"
        exit 1
    fi
fi

if [ $max_count -lt 262144 ]; then
   if [ $is_sudo -eq 0 ]; then
        echo "vm.max_map_count值低于262144!当前用户拥有sudo权限,可以直接调整!"
        sudo sysctl -w vm.max_map_count=262144
        # 修改或追加配置
        sudo sed -i 's/^vm\.max_map_count\s*=\s*.*/vm.max_map_count = 655360/' /etc/sysctl.conf || echo "vm.max_map_count = 655360" | sudo tee -a /etc/sysctl.conf
        sudo sysctl -p
    else
        echo "vm.max_map_count值低于262144!当前用户无sudo权限!,退出安装!"
        exit 1
    fi
fi

if [ $max_files -lt 65536 ]; then
   if [ $is_sudo -eq 0 ]; then
        echo "ulimit -n值低于65536!当前用户拥有sudo权限,可以直接调整!"
        echo "ulimit -n 65536" >> ~/.bash_profile
        source ~/.bash_profile
 
   else
        echo "ulimit -n值低于65536!当前用户无sudo权限!,退出安装!"
        exit 1
    fi
fi

#开始部署
tar -xvzf ${tar_name} -C $(pwd)
cd elasticsearch* && mkdir data logs
currentdir=$(pwd)

cat >config/elasticsearch.yaml <<EOF
#集群名称
cluster.name: elasticsearch
#节点名称
node.name: node-1
discovery.type: single-node
#数据目录
path.data: $currentdir/data
#日志目录
path.logs: $currentdir/logs
#ip 地址,填入每个节点的ip,填写三台机器的ip
network.host: 0.0.0.0
xpack.security.enabled: true
http.port: 9200
transport.tcp.port: 9300
ingest.geoip.downloader.enabled: false
EOF


if [ $(whoami) -eq 'root' ]; then
    echo "elasticsearch 不能使用root启动,需要创建elasticsearch用户"
     useradd elasticsearch
     echo "elasticsearch:Wiseco#2024" | chpasswd
     chown -R elasticsearch:elasticsearch $currentdir
     su - elasticsearch -c "$currentdir/bin/elasticsearch -d"
else
    "$currentdir/bin/elasticsearch -d"
fi


while ! netstat -tnlp | grep -q ":9200"; do
    echo "等待 9200 端口启动..."
    sleep 2
done
echo "9200 端口已启动,修改elastic用户密码"
PASSWORD=$($currentdir/bin/elasticsearch-setup-passwords auto | grep 'PASSWORD elastic =' | awk '{print $4}')
echo "Elastic 初始用户密码: $PASSWORD"

response=$(curl -s -o /dev/null -w "%{http_code}" -X POST -u elastic:$PASSWORD "http://localhost:9200/_security/user/elastic/_password" \
  -H 'Content-Type: application/json' \
  -d '{"password":"Wiseco#2024"}')

if [ "$response" -eq 200 ]; then
    echo "密码修改成功,新密码: Wiseco#2024"
else
    echo "密码修改失败,HTTP 状态码: $response"
fi
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值