You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
356 lines
12 KiB
Bash
356 lines
12 KiB
Bash
#!/bin/bash
|
|
|
|
setenforce 0
|
|
sed -i s/mirror.centos.org/vault.centos.org/g /etc/yum.repos.d/*.repo
|
|
sed -i s/^#.*baseurl=http/baseurl=http/g /etc/yum.repos.d/*.repo
|
|
sed -i s/^mirrorlist=http/#mirrorlist=http/g /etc/yum.repos.d/*.repo
|
|
sed -i 's#SELINUX=enforcing#SELINUX=disabled#' /etc/selinux/config
|
|
|
|
### 检测操作系统位数,如果非64位操作系统,则退出
|
|
SYSBIT=`getconf LONG_BIT`
|
|
if [ X"${SYSBIT}" != X"64" ]; then
|
|
echo "当前系统非x64,不能执行安装!"
|
|
exit 1
|
|
fi
|
|
ARM=`arch`
|
|
|
|
installDatabase(){
|
|
rpm -i package/mysql57-community-release-el7-9.noarch.rpm
|
|
rm -f /etc/pki/rpm-gpg/RPM-GPG-KEY-mysql
|
|
rpm --import package/RPM-GPG-KEY-mysql-2022
|
|
DB_DIR=${BASE_DIR}/db
|
|
mkdir -p ${DB_DIR}
|
|
echo "************ 删除旧数据库 >>>>>>>>>>>>>"
|
|
echo ""
|
|
yum -y remove mariadb-libs*
|
|
echo ""
|
|
echo "************ 开始安装Mysql5.7 >>>>>>>>>>>>>"
|
|
echo ""
|
|
yum install -y -q perl net-tools
|
|
rpm -ivh package/mysql-community-common-5.7.44-1.el7.x86_64.rpm
|
|
rpm -ivh package/mysql-community-libs-5.7.44-1.el7.x86_64.rpm
|
|
rpm -ivh package/mysql-community-client-5.7.44-1.el7.x86_64.rpm
|
|
rpm -ivh package/mysql-community-server-5.7.44-1.el7.x86_64.rpm
|
|
sed -i 's#datadir=/var/lib/mysql#datadir='${DB_DIR}'#' /etc/my.cnf
|
|
echo 'sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION' >> /etc/my.cnf
|
|
sleep 1
|
|
echo ""
|
|
|
|
echo " 启动Mysql ..."
|
|
echo ""
|
|
systemctl start mysqld
|
|
sleep 1
|
|
sed -i 's/123456/'${DB_PASS}'/' package/init.sql
|
|
|
|
echo " 初始化数据库 ..."
|
|
echo ""
|
|
TMP_PASS=`grep 'temporary password' /var/log/mysqld.log | awk {'print $NF'}`
|
|
export MYSQL_PWD=${TMP_PASS}
|
|
mysql --connect-expired-password -u root < package/init.sql
|
|
sleep 1
|
|
echo " 重启数据库 ..."
|
|
echo ""
|
|
systemctl restart mysqld
|
|
}
|
|
|
|
createDatabase(){
|
|
echo " 建库建表 ..."
|
|
echo ""
|
|
sed -i 's/jsyx/'${DB_INS}'/g' package/jkpg.sql
|
|
export MYSQL_PWD=${DB_PASS}
|
|
mysql -u root < package/jkpg.sql
|
|
sleep 1
|
|
}
|
|
|
|
|
|
|
|
installJDK(){
|
|
echo "************[prepare to install OpenJDK]准备开始装OpenJDK >>>>>>>>>>>>>"
|
|
echo ""
|
|
JDK_HOME=${BASE_DIR}/jdk
|
|
if [ ! -d ${JDK_HOME} ]; then
|
|
tar -zxf package/jdk_x64_linux_8u392b08.tar.gz -C ${BASE_DIR}
|
|
ln -s ${BASE_DIR}/jdk8u392-b08 ${BASE_DIR}/jdk
|
|
echo ${JDK_HOME}" installed."
|
|
|
|
if [ `grep -c JAVA_HOME=${JDK_HOME} /etc/profile` -eq '0' ]; then
|
|
echo 'export JAVA_HOME='${JDK_HOME} >> /etc/profile
|
|
echo 'export PATH=$PATH:$JAVA_HOME/bin' >> /etc/profile
|
|
source /etc/profile
|
|
fi
|
|
else
|
|
echo ${JDK_HOME}" found, 跳过JDK."
|
|
fi
|
|
JAVA_PATH=${JDK_HOME}/bin/java
|
|
echo ""
|
|
sleep 1
|
|
}
|
|
|
|
|
|
|
|
installNginx(){
|
|
echo "************[prepare to install Nginx]准备开始装Nginx >>>>>>>>>>>>>"
|
|
echo ""
|
|
NGX_HOME=${BASE_DIR}/nginx
|
|
if [ ! -d ${NGX_HOME} ]; then
|
|
tar -zxf package/nginx.tar.gz -C ${BASE_DIR}
|
|
echo ${NGX_HOME}" installed."
|
|
sed -i 's#/etc/nginx/conf.d#'${BASE_DIR}'/conf#g' ${NGX_HOME}/conf/nginx.conf
|
|
|
|
echo ' echo "Starting nginx"' > ${BIN_DIR}/startNginx.sh
|
|
echo ${NGX_HOME}'/sbin/nginx -p '${NGX_HOME}' -c '${NGX_HOME}'/conf/nginx.conf' >> ${BIN_DIR}/startNginx.sh
|
|
echo ' echo "Stopping nginx"' > ${BIN_DIR}/stopNginx.sh
|
|
echo ${NGX_HOME}'/sbin/nginx -s stop -p '${NGX_HOME} >> ${BIN_DIR}/stopNginx.sh
|
|
chmod +x ${BIN_DIR}/startNginx.sh
|
|
chmod +x ${BIN_DIR}/stopNginx.sh
|
|
else
|
|
echo ${NGX_HOME}" found, 跳过Nginx."
|
|
fi
|
|
echo ""
|
|
sleep 1
|
|
|
|
}
|
|
|
|
installRedis(){
|
|
echo "************[prepare to install Redis]准备开始安装Redis >>>>>>>>>>>>>"
|
|
echo ""
|
|
REDIS_HOME=${BASE_DIR}/redis
|
|
if [ ! -d ${REDIS_HOME} ]; then
|
|
tar -zxf package/redis-5.0.14-x86_64.tar.gz -C ${BASE_DIR}
|
|
echo ${REDIS_HOME}" installed."
|
|
|
|
sed -i 's/daemonize no/daemonize yes/' ${REDIS_HOME}/conf/redis.conf
|
|
sed -i 's/bind 127.0.0.1/bind 0.0.0.0/' ${REDIS_HOME}/conf/redis.conf
|
|
if [ ! -z ${REDIS_PASS} ]; then
|
|
sed -i 's/# requirepass foobared/requirepass '${REDIS_PASS}'/' ${REDIS_HOME}/conf/redis.conf
|
|
fi
|
|
echo "cd "${REDIS_HOME} > ${BIN_DIR}/startRedis.sh
|
|
echo ${REDIS_HOME}/bin/redis-server ${REDIS_HOME}/conf/redis.conf >> ${BIN_DIR}/startRedis.sh
|
|
echo 'if [ -n "$(ps -ef | grep redis-server | grep -v grep | awk '"'"'{print $2}'"'"')" ]; then' > ${BIN_DIR}/stopRedis.sh
|
|
echo " rm -f ${BASE_DIR}/RUNNING.lock" >> ${BIN_DIR}/stopRedis.sh
|
|
echo ' kill $(ps -ef | grep redis-server | grep -v grep | awk '"'"'{print $2}'"'"')' >> ${BIN_DIR}/stopRedis.sh
|
|
echo ' echo "redis-server is stopping"' >> ${BIN_DIR}/stopRedis.sh
|
|
echo 'else' >> ${BIN_DIR}/stopRedis.sh
|
|
echo ' echo "redis-server is not running"' >> ${BIN_DIR}/stopRedis.sh
|
|
echo 'fi' >> ${BIN_DIR}/stopRedis.sh
|
|
chmod +x ${BIN_DIR}/startRedis.sh
|
|
chmod +x ${BIN_DIR}/stopRedis.sh
|
|
else
|
|
echo ${REDIS_HOME}" found, 跳过Redis."
|
|
fi
|
|
echo ""
|
|
sleep 1
|
|
}
|
|
|
|
|
|
installTomcat(){
|
|
echo "************[prepare to install Tomcat]准备开始装Tomcat >>>>>>>>>>>>>"
|
|
echo ""
|
|
TOMCAT_HOME=${BASE_DIR}/tomcat9
|
|
if [ ! -d ${TOMCAT_HOME} ]; then
|
|
tar -zxf package/tomcat9.tar.gz -C ${BASE_DIR}
|
|
|
|
echo ${TOMCAT_HOME}/bin/startup.sh >> ${BIN_DIR}/startTomcat.sh
|
|
|
|
echo '#!/bin/bash' > ${BIN_DIR}/stopTomcat.sh
|
|
echo 'if [ -n "$(ps -ef | grep tomcat9 | grep -v grep | awk '"'"'{print $2}'"'"')" ]; then' >> ${BIN_DIR}/stopTomcat.sh
|
|
echo ' kill $(ps -ef | grep tomcat9 | grep -v grep | awk '"'"'{print $2}'"'"')' >> ${BIN_DIR}/stopTomcat.sh
|
|
echo ' echo "Stopping tomcat9"' >> ${BIN_DIR}/stopTomcat.sh
|
|
echo 'else' >> ${BIN_DIR}/stopTomcat.sh
|
|
echo ' echo "tomcat9 is not running"' >> ${BIN_DIR}/stopTomcat.sh
|
|
echo 'fi' >> ${BIN_DIR}/stopTomcat.sh
|
|
|
|
|
|
chmod +x ${BIN_DIR}/startTomcat.sh
|
|
chmod +x ${BIN_DIR}/stopTomcat.sh
|
|
else
|
|
echo ${TOMCAT_HOME}" found, 跳过Tomcat."
|
|
fi
|
|
echo ""
|
|
sleep 1
|
|
}
|
|
|
|
|
|
installNewJKPG(){
|
|
echo "************[installing New JKPG]正在安装New JKPG >>>>>>>>>>>>>"
|
|
echo ""
|
|
TOMCAT_HOME=${BASE_DIR}/tomcat9
|
|
cp package/jkpg.conf ${BASE_DIR}/conf/
|
|
unzip -q package/static.zip -d ${JKPG_HOME}/
|
|
|
|
cp -r package/busi-app-control ${TOMCAT_HOME}/webapps/
|
|
cp -r package/busi-back-control ${TOMCAT_HOME}/webapps/
|
|
cp -r package/busi-back-serviceImpl ${TOMCAT_HOME}/webapps/
|
|
cp -r package/busi-back-ws ${TOMCAT_HOME}/webapps/
|
|
cp -r package/frame-base-control ${TOMCAT_HOME}/webapps/
|
|
cp -r package/frame-base-serviceImpl ${TOMCAT_HOME}/webapps/
|
|
|
|
sed -i 's#jsyx#'${DB_INS}'#g' ${TOMCAT_HOME}/webapps/busi-back-serviceImpl/WEB-INF/classes/jdbc.properties
|
|
sed -i 's#root#'${DB_USER}'#g' ${TOMCAT_HOME}/webapps/busi-back-serviceImpl/WEB-INF/classes/jdbc.properties
|
|
sed -i 's#123456#'${DB_PASS}'#g' ${TOMCAT_HOME}/webapps/busi-back-serviceImpl/WEB-INF/classes/jdbc.properties
|
|
sed -i 's#jsyx#'${DB_INS}'#g' ${TOMCAT_HOME}/webapps/frame-base-serviceImpl/WEB-INF/classes/jdbc.properties
|
|
sed -i 's#root#'${DB_USER}'#g' ${TOMCAT_HOME}/webapps/frame-base-serviceImpl/WEB-INF/classes/jdbc.properties
|
|
sed -i 's#123456#'${DB_PASS}'#g' ${TOMCAT_HOME}/webapps/frame-base-serviceImpl/WEB-INF/classes/jdbc.properties
|
|
|
|
if [ ! -z ${REDIS_PASS} ]; then
|
|
sed -i 's#redis.password.*#redis.password='${REDIS_PASS}'#g' ${TOMCAT_HOME}/webapps/busi-app-control/WEB-INF/classes/redis.properties
|
|
sed -i 's#redis.password.*#redis.password='${REDIS_PASS}'#g' ${TOMCAT_HOME}/webapps/busi-back-control/WEB-INF/classes/redis.properties
|
|
sed -i 's#redis.password.*#redis.password='${REDIS_PASS}'#g' ${TOMCAT_HOME}/webapps/busi-back-serviceImpl/WEB-INF/classes/redis.properties
|
|
sed -i 's#redis.password.*#redis.password='${REDIS_PASS}'#g' ${TOMCAT_HOME}/webapps/frame-base-control/WEB-INF/classes/redis.properties
|
|
sed -i 's#redis.password.*#redis.password='${REDIS_PASS}'#g' ${TOMCAT_HOME}/webapps/frame-base-serviceImpl/WEB-INF/classes/redis.properties
|
|
fi
|
|
|
|
echo ""
|
|
sleep 1
|
|
|
|
}
|
|
|
|
|
|
installZookeeper(){
|
|
echo "************[installing Zookeeper]正在安装Zookeeper >>>>>>>>>>>>>"
|
|
echo ""
|
|
ZOO_HOME=${BASE_DIR}/zookeeper
|
|
if [ ! -d ${ZOO_HOME} ]; then
|
|
tar -zxf package/zookeeper.tar.gz -C ${BASE_DIR}
|
|
echo ${ZOO_HOME}" installed."
|
|
|
|
sed -i 's#dataDir=.*#dataDir='${ZOO_HOME}'/data#' ${ZOO_HOME}/conf/zoo.cfg
|
|
sed -i 's#dataLogDir=.*#dataLogDir='${ZOO_HOME}'/logs#' ${ZOO_HOME}/conf/zoo.cfg
|
|
|
|
echo ${ZOO_HOME}'/bin/zkServer.sh start' >> ${BIN_DIR}/startZookeeper.sh
|
|
echo ${ZOO_HOME}'/bin/zkServer.sh stop' >> ${BIN_DIR}/stopZookeeper.sh
|
|
|
|
chmod +x ${BIN_DIR}/startZookeeper.sh
|
|
chmod +x ${BIN_DIR}/stopZookeeper.sh
|
|
|
|
else
|
|
echo ${ZOO_HOME}" found, 跳过Zookeeper."
|
|
fi
|
|
echo ""
|
|
sleep 1
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
#################### 加入开机启动 ################################################
|
|
setAutoStartTomcat(){
|
|
if [ `grep -c ${BIN_DIR}/startTomcat.sh /etc/rc.d/rc.local` -eq '0' ]; then
|
|
echo '#Tomcat' >> /etc/rc.d/rc.local
|
|
echo ${BIN_DIR}/startTomcat.sh >> /etc/rc.d/rc.local
|
|
echo 'Tomcat已加入开机启动.'
|
|
echo ''
|
|
fi
|
|
|
|
}
|
|
setAutoStartRedis(){
|
|
if [ `grep -c ${BIN_DIR}/startRedis.sh /etc/rc.d/rc.local` -eq '0' ]; then
|
|
echo '#Redis' >> /etc/rc.d/rc.local
|
|
echo ${BIN_DIR}/startRedis.sh >> /etc/rc.d/rc.local
|
|
echo "Redis已加入开机启动."
|
|
echo ""
|
|
fi
|
|
}
|
|
|
|
setAutoStartNginx(){
|
|
if [ `grep -c ${BIN_DIR}/startNginx.sh /etc/rc.d/rc.local` -eq '0' ]; then
|
|
echo '#Nginx' >> /etc/rc.d/rc.local
|
|
echo ${BIN_DIR}/startNginx.sh >> /etc/rc.d/rc.local
|
|
echo "Nginx已加入开机启动."
|
|
echo ""
|
|
fi
|
|
}
|
|
|
|
setAutoStartZookeeper(){
|
|
if [ `grep -c ${BIN_DIR}/startZookeeper.sh /etc/rc.d/rc.local` -eq '0' ]; then
|
|
echo '#Zookeeper' >> /etc/rc.d/rc.local
|
|
echo ${BIN_DIR}/startZookeeper.sh >> /etc/rc.d/rc.local
|
|
echo "Zookeeper已加入开机启动."
|
|
echo ""
|
|
fi
|
|
}
|
|
|
|
|
|
|
|
updateFirewall(){
|
|
echo "更新防火墙规则."
|
|
echo ""
|
|
firewall-cmd --permanent --zone=public --add-port=90/tcp
|
|
firewall-cmd --permanent --zone=public --add-port=443/tcp
|
|
firewall-cmd --permanent --zone=public --add-port=3306/tcp
|
|
firewall-cmd --permanent --zone=public --add-port=102/tcp
|
|
firewall-cmd --reload
|
|
}
|
|
|
|
|
|
|
|
sed -i 's/\r//g' setup.ini
|
|
source setup.ini
|
|
|
|
BASE_DIR=${BASE_DIR%*/}
|
|
BIN_DIR=${BASE_DIR}/bin
|
|
JKPG_HOME=${BASE_DIR}/jkpg
|
|
|
|
### 创建默认的目录
|
|
mkdir -p ${BIN_DIR}
|
|
mkdir -p ${JKPG_HOME}
|
|
mkdir -p ${BASE_DIR}/conf
|
|
if [ ! -e "/etc/rc.local" ]; then
|
|
cp package/rc.local /etc/
|
|
fi
|
|
chmod +x /etc/rc.local
|
|
if [ `grep -c 'Install' /lib/systemd/system/rc-local.service` -eq '0' ]; then
|
|
echo '' >> /lib/systemd/system/rc-local.service
|
|
echo '[Install]' >> /lib/systemd/system/rc-local.service
|
|
echo 'WantedBy=multi-user.target' >> /lib/systemd/system/rc-local.service
|
|
systemctl daemon-reload
|
|
fi
|
|
|
|
|
|
if [ $MYSQL_INS == 1 ]; then
|
|
installDatabase
|
|
fi
|
|
|
|
if [ $DB_CREATE == 1 ]; then
|
|
createDatabase
|
|
fi
|
|
|
|
if [ $JDK_INS == 1 ]; then
|
|
installJDK
|
|
fi
|
|
|
|
if [ $REDIS_INS == 1 ]; then
|
|
installRedis
|
|
setAutoStartRedis
|
|
fi
|
|
|
|
if [ $ZOO_INS == 1 ]; then
|
|
installZookeeper
|
|
setAutoStartZookeeper
|
|
fi
|
|
|
|
if [ $TOMCAT_INS == 1 ]; then
|
|
installTomcat
|
|
setAutoStartTomcat
|
|
fi
|
|
|
|
if [ $JKPG_INS == 1 ]; then
|
|
installNewJKPG
|
|
fi
|
|
|
|
if [ $NGINX_INS == 1 ]; then
|
|
installNginx
|
|
setAutoStartNginx
|
|
fi
|
|
|
|
updateFirewall
|
|
|
|
echo "************[install finished.]安装完成. >>>>>>>>>>>>>"
|
|
echo ""
|
|
sleep 1
|
|
echo "tips: 记得运行 source /etc/profile 使配置生效,之后可以使用${BIN_DIR}目录下的下列脚本"
|
|
cd ${BIN_DIR}
|
|
ls
|
|
echo "" |