自动化脚本从ftp拉取es包并部署elasticsearch,创建es索引

#!/bin/bash

#ftp地址
ftp_ip=22.5.5.5
ftp_port=22
ftp_user=cib
ftp_pwd='cib'
#ftp存放es及插件包路径
ftp_srcDirectory='/oy'

#es包名及插件名
es_tar=elasticsearch-7.16.3-linux-x86_64.tar.gz
ik_tar=elasticsearch-analysis-ik-7.16.3.zip
ingest_tar=ingest-attachment-7.16.3.zip

#es用户及es路径
es_user=es
es_path=/home/es
es_plugins_path=/home/es/plugins
es_package_path=/home/es/package

#解压后es名称和es的binlujing
es_name=elasticsearch-7.16.3
es_bin=/home/es/elasticsearch-7.16.3/bin
es_plugins=/home/es/elasticsearch-7.16.3/plugins

#es  ip地址及所需修改的配置
es_cluster_name=elasticsearch
es_node_name=node-1
es_network_host=28.7.54.89
es_http_port=9200
es_cluster_initial_master_nodes=["node-1"]
es_ingest_geoip_downloader_enabled=false

es_mem_max=-Xmx4g
es_mem_min=-Xms4g

#端口
PORT=9200
NAME=elasticsearch
#根据名称查询es的进程号
ID=`ps -aux|grep "$NAME" |grep -v "grep" |awk '{print $2}'`
#根据端口号查es的进程号
CHECK_PORT=`netstat -tnlp|grep "$PORT"`
#es的bin路径
ELASTICSEARCH_SERVER=/home/es/elasticsearch-7.16.3/bin/elasticsearch
RETAVL=0

#es地址
url=http://28.7.54.89:9200
#es ingest插件管道
ingest=_ingest/pipeline/attachment
#es索引
index=file_datas

echo "es init ----------------start"

#创建es路径
if [ ! -d "$es_path" ];then
    mkdir $es_path
else 
    echo "$es_path folder already exist!"
fi

#创建es启动用户
function add_user(){
    echo "add es user"
    userdel -r ${es_user}
    useradd ${es_user}
}

add_user

#创建es插件lujing
if [ ! -d "$es_plugins_path" ];then
    mkdir $es_plugins_path
else 
    echo "$es_plugins_path folder already exist!"
fi

#创建es安装包路径
if [ ! -d "$es_package_path" ];then
    mkdir $es_package_path
else 
    echo "$es_package_path folder already exist!"
fi

#配置系统环境变量
function etc_profile(){
echo "修改用户打开es最大线程数和文件数"
echo 'es soft nofile 65536' >>/etc/security/limits.conf
echo 'es hard nofile 65536' >>/etc/security/limits.conf
echo 'vm.max_map_count=655360' >>/etc/sysctl.conf

}

etc_profile

sysctl -p



echo "es init ----------------end"

sleep 2

echo "es install----------------start"
#登录ftp,拉取es包
ftp -i -v -n $ftp_ip <<EOF
user $ftp_user $ftp_pwd
echo "login ftp successfully!"
cd ${ftp_srcDirectory}
binary
get $es_tar $es_package_path/$es_tar

bye
EOF


#登录ftp,拉取ik分词器包
ftp -i -v -n $ftp_ip <<EOF
user $ftp_user $ftp_pwd
echo "login ftp successfully!"
cd ${ftp_srcDirectory}
binary
get $ik_tar $es_package_path/$ik_tar

bye
EOF

#登录ftp,拉取ingest插件包
ftp -i -v -n $ftp_ip <<EOF
user $ftp_user $ftp_pwd
echo "login ftp successfully!"
cd ${ftp_srcDirectory}
binary
get $ingest_tar $es_package_path/$ingest_tar

bye
EOF

echo  "get from ftp successfully!"

#解压es包
cd $es_package_path
echo "解压es"
tar -zxvf $es_tar -C ../

#修改es配置
cd $es_package_path/$es_name/config

function editES(){
echo 'cluster.name: '"${es_cluster_name}" >> elasticsearch.yml
echo 'node.name: '"${es_node_name}" >> elasticsearch.yml
echo 'network.host: '"${es_network_host}" >> elasticsearch.yml
echo 'http.port: '"${es_http_port}" >> elasticsearch.yml
echo 'cluster.initial_master_nodes: '"${es_cluster_initial_master_nodes}" >> elasticsearch.yml
echo 'ingest.geoip.downloader.enabled: '"${es_ingest_geoip_downloader_enabled}" >> elasticsearch.yml

echo "${es_mem_max}" >>jvm.options
echo "${es_mem_min}" >>jvm.options
}

editES
echo "edit es config successfully!"

#解压ik分词器放到es的plugins目录下
cd $es_package_path
unzip -n $ik_tar -d $es_plugins/ik

sleep 3

#解压ingest插件放到es的plugins目录下
unzip -n $ingest_tar -d $es_plugins/ingest

#给es目录授权
chown -R ${es_user}:${es_user} ${es_path}
chown -R ${es_user}:${es_user} ${es_plugins_path}
chown -R ${es_user}:${es_user} ${es_package_path}

echo "es install-------------end"

sleep 2
echo "es start-------------end"

#启动es服务
function start(){
    OLDPID=""
    queryPid(){
        OLDPID=$(ps -ef|grep $es_name|grep -v grep|awk '{print $2}')
    }

    queryPid
    if [ x"$OLDPID" != x"" ];then
        kill -TERM $OLDPID
        echo "$es_name (pid:$OLDPID) exiting..."
        while [ x"$OLDPID" != x"" ]
        do
            sleep 1
            queryPid
        done
        echo "$NAME already running"
    else
        su - es <<!
            nohup $ELASTICSEARCH_SERVER -d > app.log 2 >error.log &
            if [ $? -eq 0 ];then
                echo "elasticsearch run successfully"
            else
                echo "elasticsearch run fail"
            fi
        exit
        !
    fi
}

#停止es服务
function stop(){
echo "stop es"
    OLDPID=""
    queryPid(){
        OLDPID=$(ps -ef|grep $es_name|grep -v grep|awk '{print $2}')
    }

    queryPid
    if [ x"$OLDPID" != x"" ];then
        kill -TERM $OLDPID
        echo "$es_name (pid:$OLDPID) exiting..."
        while [ x"$OLDPID" != x"" ]
        do
            sleep 1
            queryPid
        done
        echo "$NAME process is killed "
    else
        echo "$NAME is not running "
    fi

}


#重启服务
function restart(){
    stop
    sleep 5
    start
}

restart


echo "es start -------------end"

sleep  35

echo "create es  index --------------start"
#先删除索引
curl -X DELETE \
    "$url$index" \
    -H 'Content-Type: application/json' \

#创建索引
curl -X PUT "$url$index" -H 'Content-Type: application/json' -d  '
{


}'

echo "create es  index --------------end"

















拆分:将包插件准备好

linux:LINUX X86_64

华为麒麟:LINUX AARCH64

https://www.elastic.co/cn/downloads/past-releases/elasticsearch-7-16-3

各插件地址:

https://elasticsearch.cn/download/

1.elasticsearch的安装

#!bin/bash
#es包及插件所在位置
package_remote_path=/home/cios/es

#es包名及插件名
es_tar=elasticsearch-7.16.3-linux-x86_64.tar.gz
ik_tar=elasticsearch-analysis-ik-7.16.3.zip
ingest_tar=ingest-attachment-7.16.3.zip

#es用户及最终路径
es_user=esadm
es_path=/home/esadm

#暂存路径
es_plugins_path=/home/esadm/plugins
es_package_path=/home/esadm/package

#es名称 用来判断进程是否存在
es_name=elasticsearch-7.16.3
es_bin=/home/esadm/elasticsearch-7.16.3/bin
es_plugins=/home/esadm/elasticsearch-7.16.3/plugins

#es相关配置 elasticsearch.yml
es_cluster_name=elasticsearch
es_node_name=node-1
es_ip=28.7.35.125
es_host=9200
es_nodes=["node-1"]
es_enabled=false

es_memer_max=-Xmx4g
es_memer_min=-Xms4g

echo "es install -----start"

#创建es启动用户
function add_user(){
    echo "新增es用户"
    userdel -r ${es_user}
    useradd ${es_user}
}
add_user

if [ ! -d "$es_path" ];then
    mkdir $es_path
else
    echo "$es_path folder already exists!"
fi

if [ ! -d "$es_plugins_path" ];then
    mkdir $es_plugins_path
else
    echo "$es_plugins_path folder already exists!"
fi

if [ ! -d "$es_package_path" ];then
    mkdir $es_package_path
else
    echo "$es_package_path folder already exists!"
fi

#给es用户授权
chown -R ${es_user}:${es_user}  ${es_path}
chown -R ${es_user}:${es_user}  ${es_path}
chown -R ${es_user}:${es_user}  ${es_package_path}

#es包放置es目录
cd ${package_remote_path}
cp $es_tar  $es_package_path/$es_tar
cp $ik_tar    $es_package_path/$ik_tar
cp $ingest_tar $es_package_path/$ingest_tar

#解压
cd $es_package_path
tar -zxvf $es_tar -C ../

#修改es配置文件
cd $es_parh/$es_name/config
function editES(){
    echo 'cluster.name: '"${es_cluster_name}">>elasticsearch.yml
    echo 'node.name: '"${es_node_name}">>elasticsearch.yml
    echo 'network.host: '"${es_ip}">>elasticsearch.yml
    echo 'http.host: '"${es_host}">>elasticsearch.yml
    echo 'cluster.initial_master_nodes: '"${es_nodes}">>elasticsearch.yml
    echo 'ingest.geoip.downloader.enabled: '"${es_enabled}">>elasticsearch.yml

    echo "${es_memer_max}">>jvm.options
    echo "${es_memer_min}">>jvm.options
}

editES
if [ $? -ne 0];then
    echo "edit es config fail"
fi

#解压插件,放置es的plugins目录下
cd $es_package_path
unzip -n $ik_tar -d  $es_plugins/ik

sleep 3

unzip -n $ingest_tar -d  $es_plugins/ingest

#es目录授权
chown -R ${es_user}:${es_user} ${es_path}
chown -R ${es_user}:${es_user} ${es_plugins_path}
chown -R ${es_user}:${es_user} ${es_package_path}
chmod -R 755 ${es_path}

echo "es install end"















2.es启动

#!/bin/bash
es_name=elasticsearch-7.16.3
port=9200
ELASTICSEARCH_SERVER=/home/esadm/elasticsearch-7.16.3/bin/elasticsearch

function start(){
    PID=""
    query(){
        PID=$(ps -ef|grep $es_nme|grep -v grep |awk '{print $2}')
    }
    query
    if [ x"$PID" != x"" ];then
        kill -TERM $PID
        echo "$es_name (pid:$PID) exiting..."
        while [ x"$PID" != x"" ]
        do
            sleep 1
            query
        done
        echo "es already running"
    else
        nohup $ELASTICSEARCH_SERVER -d >app.log 2>error.log &
        echo "es run successfully"
        echo 0
    fi
}
start

3.es停止

#!/bin/bash
es_name=elasticsearch-7.16.3
port=9200
ELASTICSEARCH_SERVER=/home/esadm/elasticsearch-7.16.3/bin/elasticsearch

function stop(){
    PID=""
    query(){
        PID=$(ps -ef|grep $es_nme|grep -v grep |awk '{print $2}')
    }
    query
    if [ x"$PID" != x"" ];then
        kill -TERM $PID
        echo "$es_name (pid:$PID) exiting..."
        while [ x"$PID" != x"" ]
        do
            sleep 1
            query
        done
        echo "es is killed"
    else
        echo "es is noting running"
    fi
}

stop

4.es创建索引

curl命令,可以用postman code生成curl命令

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值