# /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"
Shell之自动化安装elasticsearch代码实现V2
最新推荐文章于 2023-07-12 00:51:58 发布

376

被折叠的 条评论
为什么被折叠?



