homework-jianmu/packaging/tools/quick_deploy.sh

220 lines
6.3 KiB
Bash

#!/bin/bash
log_date_time=`date +%m%d%Y-%H%M`
log=${log_date_time}.log
dataDir=/data
logDir=/data/taos/log
echo "#########collect sysinfo############"
cat /etc/os-release
free -g
cat /proc/cpuinfo |grep processor
uname -a
df -h
lsblk
blkid
cat /etc/fstab
mount
cat /etc/sysctl.conf
cat /etc/security/limits.conf
sysctl -p
######check hostname #####
echo "#########hostname"
hostname
hostname -f
echo "#########/etc/hostname"
cat /etc/hostname
echo "#########/etc/hosts"
cat /etc/hosts
echo "#########Step 1############"
echo "$#"
######single node without config file#####
if [ "$#" -eq 0 ] ;then
echo "#########This is for single node !!"
echo "#########Please provide config.ini file for cluster installation !!"
first_ep=`hostname -f`:6030
second_ep=""
fi
echo "#########Step 2############"
######use config file to configre cluster!#####
echo $1
config_file=$1
if [ "$#" -eq 1 ] ;then
echo "#########Use $1 file to configure cluster."
echo "#########The configure of cluster"
cat $config_file
first_ep=`sed -n '1p' $config_file |awk '{print $2}'`:6030
second_ep=`sed -n '2p' $config_file |awk '{print $2}'`:6030
fi
echo "#########Step 3############"
################################################################
echo "#########create data directory"
mkdir -p ${dataDir}/taos/{data,core,tmp,soft}
mkdir -p ${logDir}
chmod 777 ${dataDir}/taos/tmp
chmod 777 ${logDir}
echo "#########install suggest package and disable firewall"
os=$(cat /etc/os-release| grep PRETTY_NAME | awk '{print $1}'|awk -F '=' '{print $2}' | sed 's/"//g')
if [ $os = 'Ubuntu' ]
then
echo "This is Ununtu!"
#apt install screen tmux gdb fio iperf3 sysstat net-tools ntp tree wget
ufw status
ufw stop
ufw disable
elif [ $os = 'CentOS' -o $os = 'Red' ]
then
echo "This is Centos/Red"
#yum install -y screen tmux gdb fio iperf3 sysstat net-tools ntp tree wget
systemctl status firewalld
systemctl stop firewalld
systemctl disable firewalld
else
echo "####$os"
fi
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
echo "#########system tunning"
echo "fs.nr_open = 10485760" >>/etc/sysctl.conf
echo "net.core.somaxconn=10240" >> /etc/sysctl.conf
echo "net.core.netdev_max_backlog=20480" >> /etc/sysctl.conf
echo "net.ipv4.tcp_max_syn_backlog=10240" >> /etc/sysctl.conf
echo "net.ipv4.tcp_retries2=5" >> /etc/sysctl.conf
echo "net.ipv4.tcp_syn_retries=2" >> /etc/sysctl.conf
echo "net.ipv4.tcp_synack_retries=2" >> /etc/sysctl.conf
echo "net.ipv4.tcp_tw_reuse=1" >> /etc/sysctl.conf
echo "net.ipv4.tcp_tw_recycle=1" >> /etc/sysctl.conf
echo "net.ipv4.tcp_keepalive_time=600" >> /etc/sysctl.conf
echo "net.ipv4.tcp_abort_on_overflow=1" >> /etc/sysctl.conf
echo "net.ipv4.tcp_max_tw_buckets=5000" >> /etc/sysctl.conf
echo "net.ipv4.ip_local_port_range=10000 60999" >> /etc/sysctl.conf
echo "* soft ntaosc 65536" >>/etc/security/limits.conf
echo "* soft nofile 1048576" >>/etc/security/limits.conf
echo "* soft stack 65536" >>/etc/security/limits.conf
echo "* hard ntaosc 65536" >>/etc/security/limits.conf
echo "* hard nofile 1048576" >>/etc/security/limits.conf
echo "* hard stack 65536" >>/etc/security/limits.conf
echo "root soft ntaosc 65536" >>/etc/security/limits.conf
echo "root soft nofile 1048576" >>/etc/security/limits.conf
echo "root soft stack 65536" >>/etc/security/limits.conf
echo "root hard ntaosc 65536" >>/etc/security/limits.conf
echo "root hard nofile 1048576" >>/etc/security/limits.conf
echo "root hard stack 65536" >>/etc/security/limits.conf
echo "ulimit -c unlimited" >>/etc/profile
echo "kernel.core_pattern=${dataDir}/taos/core/core-%e-%p" >>/etc/sysctl.conf
sysctl -p
date
####to do check date timezone and ntp########
#cp -f /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
#NTP
#SWAP
#reboot
echo "#########install TDengine"
./install.sh -e no
pwd
echo "#########Create /etc/taos/taos.cfg"
mv /etc/taos/taos.cfg /etc/taos/taos.cfg.bak
cat /proc/cpuinfo | grep "processor" | wc -l
num=`cat /proc/cpuinfo | grep "processor" | wc -l`
cpunum=$(expr $num + $num)
host_name=`hostname -f`
#####vi /etc/taos/taos.cfg
echo "firstEp $first_ep
secondEp $second_ep
fqdn $host_name
supportVnodes $cpunum
logDir $logDir
dataDir ${dataDir}/taos/data
tempDir ${dataDir}/taos/tmp
keepColumnName 0
maxNumOfDistinctRes 10000000
timezone UTC-8
locale en_US.UTF-8
charset UTF-8
maxShellConns 100000
maxConnections 100000
audit 0
auditFqdn localhost
monitor 1
monitorFqdn localhost
logKeepDays 10
debugflag 131
shellActivityTimer 120
numOfRpcSessions 30000" >> /etc/taos/taos.cfg
########################
########################tunning taosadapter and taosx log directory
sed -i "/^\#*path/c\path\ =\ \"${logDir}\"" /etc/taos/taosadapter.toml
sed -i "/^\#*logs_home/c\logs_home\ =\ \"${logDir}\"" /etc/taos/taosx.toml
##########################single nodes
echo "#########Start toasd"
./start-all.sh
date
if [ "$#" -eq 0 ] ;then
sleep 5
taos -s "show dnodes;"
taos -s "show cluster\G;"
echo "########"
taosd -k
curl -u root:taosdata ${host_name}:6041/rest/sql -d "select server_version()"
echo -e "\r"
echo "#########Installation completed########"
echo "#########Suggest reboot OS##########"
date
exit
fi
##########################use $config_file to config cluster
if test "$host_name"x = `sed -n '1p' $config_file |awk '{print $2}'`x ;then
echo "#########Add dnodes and mnodes"
while read ip_address host_name
do
echo "$host_name"
taos -s "create dnode '$host_name:6030';"
sleep 5
done <$config_file
fi
host_name=`hostname -f`
if test "$host_name"x = `sed -n '3p' $config_file |awk '{print $2}'`x ;then
echo "#########Add mnodes"
taos -s "create mnode on dnode 2;"
sleep 5
taos -s "create mnode on dnode 3;"
fi
sleep 5
taos -s "show dnodes;"
taos -s "show mnodes;"
taos -s "show grants\G;"
taos -s "show cluster\G;"
echo "########"
taosd -k
echo "#########Test TDengine"
curl -u root:taosdata ${host_name}:6041/rest/sql -d "select server_version()"
echo -e "\r"
echo "#########Installation completed########"
echo "#########Suggest reboot OS##########"
date
cd ..