-
CentOS7.9部署 nacos2.3.2 单机版,使用默认配置存储数据
-
由于nacos是java语言编写,所以脚本中有检测jdk,如果没有jdk会按脚本中JDK_VER,
JDK_VER_DETAIL指定的版本下载配置jdk -
脚本中已开启nacos的授权访问,初始账户 nacos,密码nacos,登录后请修改密码
-
下载的安装包,存储在/opt/source目录,可以按需修改变量值 jdk和nacos 安装在/opt目录,可以按需修改变量值
-
目录结构如下
/opt
├── jdk-20.0.2
│ ├── bin
│ ├── conf
│ ├── include
│ ├── jmods
│ ├── legal
│ ├── lib
│ ├── LICENSE -> legal/java.base/LICENSE
│ ├── man
│ ├── README
│ └── release
├── nacos
│ ├── bin
│ ├── conf
│ ├── data
│ ├── LICENSE
│ ├── logs
│ ├── NOTICE
│ └── target
└── source
部署脚本如下
#! /bin/bash
PACKAGE_DIR=/opt/source
APP_DIR=/opt
NACOS_VER=2.3.2
JDK_VER=20
JDK_VER_DETAIL=20.0.2
NACOS_SERVICE=/usr/lib/systemd/system/nacos.service
function set_jdk {
wget -V
if [ $? -ne 0 ];then
yum install wget -y
fi
yum install wget -y
if [ ! -d $PACKAGE_DIR ];then
mkdir -p $PACKAGE_DIR
fi
wget -P $PACKAGE_DIR https://download.oracle.com/java/${JDK_VER}/archive/jdk-${JDK_VER_DETAIL}_linux-x64_bin.tar.gz
if [ $? -ne 0 ];then
echo " jdk 安装包下载失败,请手动下载,即将退出"
return 1
else
tar -xzvf ${PACKAGE_DIR}/jdk-${JDK_VER_DETAIL}_linux-x64_bin.tar.gz -C $APP_DIR
echo "export JAVA_HOME=${APP_DIR}/jdk-${JDK_VER_DETAIL}" >> /etc/profile
echo "export PATH=\$PATH:\$JAVA_HOME/bin" >> /etc/profile
source /etc/profile
java -version
if [ $? -ne 0 ];then
return 1
else
echo "JDK 已配置完成"
fi
fi
}
function deploy_nacos {
if [ ! -d $PACKAGE_DIR ];then
mkdir $PACKAGE_DIR
fi
if [ ! -f $PACKAGE_DIR/nacos-server-${NACOS_VER}.zip ];then
wget -w4 -P $PACKAGE_DIR https://github.com/alibaba/nacos/releases/download/${NACOS_VER}/nacos-server-${NACOS_VER}.zip
if [ $? -ne 0 ];then
echo " nacos 安装包下载失败,请手动下载, 即将退出"
return 1
fi
fi
unzip -d $APP_DIR $PACKAGE_DIR/nacos-server-${NACOS_VER}.zip
sed -i 's/nacos.core.auth.enabled=false/nacos.core.auth.enabled=true/g' ${APP_DIR}/nacos/conf/application.properties
sed -i 's/nacos.core.auth.server.identity.key=/nacos.core.auth.server.identity.key=${NACOS_AUTH_IDENTITY_KEY:example}/g' ${APP_DIR}/nacos/conf/application.properties
sed -i 's/nacos.core.auth.server.identity.value=/nacos.core.auth.server.identity.value=${NACOS_AUTH_IDENTITY_KEY:example}/g' ${APP_DIR}/nacos/conf/application.properties
sed -i 's/nacos.core.auth.plugin.nacos.token.secret.key=/nacos.core.auth.plugin.nacos.token.secret.key=${NACOS_AUTH_TOKEN:SecretKey01234567890123456789012345345678999987654901234567890123456789}/g' ${APP_DIR}/nacos/conf/application.properties
cd ${APP_DIR}/nacos/bin && ./startup.sh -m standalone
if [ $? -eq 0 ];then
echo "nacos 已部署启动成功"
return 0
else
echo "nacos 安装出现异常,请查看报错信息"
return 1
fi
}
function set_nacos_to_service {
echo "将nacos 配置成服务,设置成开机启动"
if [ ! -f $NACOS_SERVICE ];then
touch $NACOS_SERVICE
else
echo "Nacos 服务配置文件已存在"
fi
cat > $NACOS_SERVICE << EOF
[Unit]
Description=https://nacos.io/
After=network.target
[Service]
Type=forking
Environment=JAVA_HOME=${APP_DIR}/jdk-${JDK_VER_DETAIL}
ExecStart=$APP_DIR/nacos/bin/startup.sh -m standalone
ExecStop=$APP_DIR/nacos/bin/shutdown.sh
PrivateTmp=true
[Install]
WantedBy=multi-user.target
EOF
cat $NACOS_SERVICE
systemctl daemon-reload
ss -ntaulp |grep 8848
if [ $? -eq 0 ];then
sh $APP_DIR/nacos/bin/shutdown.sh
sleep 5
fi
systemctl enable nacos
systemctl start nacos
if [ $? -eq 0 ];then
echo "nacos 服务配置成功, nacos 服务已启动"
else
echo "nacos 服务配置异常,请检查服务配置信息"
fi
}
java -version
if [ $? -eq 0 ];then
echo "JDK 已配置"
else
echo "没有jdk环境,开始安装jdk"
set_jdk
fi
deploy_nacos
if [ $? -eq 0 ];then
set_nacos_to_service
fi