Shell之自动化安装elasticsearch代码实现V2

4 篇文章 0 订阅
4 篇文章 0 订阅
# /bin/bash

 rm -rf /home/elasticsearch/*
 rm -rf /app/elasticsearch-7.8.0

user=elasticsearch
group=elasticsearch
egrep "^${group}" /etc/group >& /dev/null
if [ $? -ne 0 ]; then
    groupadd elasticsearch
    echo "创建es用户组成功"
fi

egrep "^${user}" /etc/passwd >& /dev/null
if [ $? -ne 0 ]; then
    useradd -g elasticsearch elasticsearch
    echo "123456" | passwd --stdin elasticsearch
    echo "创建es用户成功"
fi

# 查看磁盘大小df -k,决定目录位置
dir_name=`df -k|sort -n -t " " -k 2|awk 'END {print}'|awk '{print $6}'`
mkdir -p ${dir_name}/es
chown  elasticsearch:elasticsearch /${dir_name}/es

echo "${dir_name}/es 已建好"

unlimited_result=`grep -r unlimited /etc/security/limits.conf|wc -l`
if [ $unlimited_result -eq 0 ];then
    echo "* hard memlock unlimited" >> /etc/security/limits.conf
    echo "* soft memlock unlimited" >> /etc/security/limits.conf
else
    echo "memlock设置已存在"
fi
memlock_result=`grep -r DefaultLimitMEMLOCK=infinity /etc/systemd/system.conf|wc -l`
if [ $memlock_result -eq 0 ];then
    echo "DefaultLimitNOFILE=65535" >> /etc/systemd/system.conf
    echo "DefaultLimitNPROC=32000" >> /etc/systemd/system.conf
    echo "DefaultLimitMEMLOCK=infinity" >> /etc/systemd/system.conf
else
    echo "DefaultLimitMEMLOCK设置已存在"
fi
nproc_result=`grep -r 20480 /etc/security/limits.d/20-nproc.conf|wc -l`
if [ $nproc_result -eq 0 ];then
    echo "*          hard    nproc     20480" >> /etc/security/limits.d/20-nproc.conf
else
    echo "hard    nproc设置已存在"
fi
vm_result=`grep -r vm.max_map_count=262144 /etc/sysctl.conf|wc -l`
if [ $vm_result -eq 0 ];then
    echo "vm.max_map_count=262144" >> /etc/sysctl.conf
else
    echo "vm.max_map_count设置已存在"
fi
/sbin/sysctl -p

echo "es系统环境已完成"
su - ${user} <<!
cd /home/elasticsearch/
wget 192.168.0.0:18080/ansible/Software/elasticsearch-7.8.0-linux-x86_64.tar.gz
wget 192.168.0.0:18080/ansible/Software/elasticsearch-analysis-ik-7.8.0.zip
wget 192.169.0.0:18080/ansible/Software/elasticsearch-analysis-pinyin-7.8.0.zip
!
tar -xzvf /home/elasticsearch/elasticsearch-7.8.0-linux-x86_64.tar.gz -C /app/
echo -e "\n\n" | /bin/sh /app/elasticsearch-7.8.0/bin/elasticsearch-certutil ca
echo -e "\n\n\n" | /bin/sh /app/elasticsearch-7.8.0/bin/elasticsearch-certutil cert --ca elastic-stack-ca.p12 
chown -R  elasticsearch:elasticsearch /app/elasticsearch-7.8.0

#*********************************************************
# log4j漏洞处理start
cd /app/elasticsearch-7.8.0/lib/
mv log4j-api-2.11.1.jar api.bak
mv log4j-core-2.11.1.jar core.bak

wget 192.169.0.0:18080/ansible/log4j/log4j-api-2.17.0.jar -P /tmp -O /tmp/log4j-api-2.17.0.jar
wget 192.169.0.0:18080/ansible/log4j/log4j-core-2.17.0.jar -P /tmp -O /tmp/log4j-core-2.17.0.jar

cp -f /tmp/log4j-api-2.17.0.jar /app/elasticsearch-7.8.0/lib/
cp -f /tmp/log4j-core-2.17.0.jar /app/elasticsearch-7.8.0/lib/

chmod +x log4j-api-2.17.0.jar
chmod +x log4j-core-2.17.0.jar

mv *.bak /tmp/
# log4j漏洞处理end
#*********************************************************

\cp -rf /app/elasticsearch-7.8.0/*.p12 /home/osoper/
mv /app/elasticsearch-7.8.0/*.p12 /app/elasticsearch-7.8.0/config/

su - ${user} <<FOE
mkdir -p /app/elasticsearch-7.8.0/plugins/{ik,pinyin}
unzip /home/elasticsearch/elasticsearch-analysis-ik-7.8.0.zip -d /app/elasticsearch-7.8.0/plugins/ik/
unzip /home/elasticsearch/elasticsearch-analysis-pinyin-7.8.0.zip -d /app/elasticsearch-7.8.0/plugins/pinyin/
FOE

sed -i "s/<[[:space:]]<(env)/<<<'env'/g" /app/elasticsearch-7.8.0/bin/elasticsearch-env

totaljvm=$(free -h|egrep "^Mem"|awk '{print $2}'|sed "s/G//"|cut -f1 -d ".")
halfjvm=$(($totaljvm/2))
\cp -rf /app/elasticsearch-7.8.0/config/jvm.options /app/elasticsearch-7.8.0/config/jvm.options.bak
sed -i "s/-Xms1g/-Xms${halfjvm}g/" /app/elasticsearch-7.8.0/config/jvm.options
sed -i "s/-Xmx1g/-Xmx${halfjvm}g/" /app/elasticsearch-7.8.0/config/jvm.options

chown -R  elasticsearch:elasticsearch /app/elasticsearch-7.8.0

cat << EOF > /app/elasticsearch-7.8.0/config/elasticsearch.yml
cluster.name: es_`hostname`
node.name: server1
node.master: true
node.data: true
path.data: ${dir_name}/es/data
path.logs: ${dir_name}/es/logs
bootstrap.memory_lock: true
network.host: 0.0.0.0
http.port: 19200
transport.tcp.port: 19300

discovery.seed_hosts: ["$1:19300","$2:19300","$3:19300"]
cluster.initial_master_nodes: ["server1"]

xpack.security.enabled: true
xpack.security.transport.ssl.enabled: true
xpack.security.transport.ssl.verification_mode: certificate
xpack.security.transport.ssl.keystore.path: elastic-certificates.p12
xpack.security.transport.ssl.truststore.path: elastic-certificates.p12
xpack.security.audit.enabled: true
EOF


chown  -R elasticsearch:elasticsearch /app/elasticsearch-7.8.0
echo -e "\n\n将home/osoper下p12文件传到另外两个节点"
echo "修改所有节点的 /app/elasticsearch-7.8.0/config/elasticsearch.yml 文件:[node.name,node.master,node.data,discovery.seed_hosts]"
echo "切换用户 su - elasticsearch "
echo "拉起集群服务 /app/elasticsearch-7.8.0/bin/elasticsearch -d "
echo "服务拉起后设置密码:"
echo "echo -e \"y\n123456\n123456\n123456\n123456\n123456\n123456\n123456\n123456\n123456\n123456\n123456\n123456\n\" | /bin/sh /app/elasticsearch-7.8.0/bin/elasticsearch-setup-passwords interactive"
echo -e "最后一步,验证集群状态: curl -u elastic:123456 http://$1:19200/_cluster/health?pretty\n\n"


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值