• 注册
当前位置:1313e > 默认分类 >正文

centos利用shell脚本快速部署nacos

本教程部署的是nacos1.4.0

一、首先将nacos包与jdk存放在目录nacos_deploy

在这里插入图片描述
将该文件夹压缩打包

tar -zcvf nacos_deploy.tar.gz nacos_deploy/

然后将nacos_deploy.tar.gz上传到OSS

二、利用shell从oss拉取 并部署
#!/bin/bash# define log & color
readonly FG_GREY="30"             #灰色
readonly FG_RED="31"
readonly FG_GREEN="32"
readonly FG_YELLOW="33"
readonly FG_BLUE="34"          #前景色蓝色
readonly FG_VIOLET="35"        #紫色
readonly FG_SKY_BLUE="36"
readonly FG_WHITE="37"readonly BG_RED="41"
readonly BG_GREEN="42"
readonly BG_YELLOW="43"
readonly BG_BLUE="44"
readonly BG_VIOLET="45"
readonly BG_SKYBLUE="46"
readonly BG_WHITE="47"readonly LOG_DEBUG="[调试]"
readonly LOG_INFO="[信息]"
readonly LOG_WARN="[警告]"
readonly LOG_ERROR="[错误]"function debug()
{echo -e "\033[${FG_WHITE}m${LOG_DEBUG}\033[0m $1"
}
function info(){echo -e "\033[${FG_GREEN}m${LOG_INFO}\033[0m $1"
}
function warn()
{echo -e "\033[${FG_YELLOW}m${LOG_WARN}\033[0m $1"
}
function error()
{echo -e "\033[${FG_RED}m${LOG_ERROR}\033[0m $1"
}# nacos部署路径
NACOS_DEPLOY_DIR="/usr/local/nacos/deploy"DEPLOY_GZ_FILE_NAME="nacos_deploy"# oss地址
OSS_URL="https://xxx/${DEPLOY_GZ_FILE_NAME}.tar.gz"# nacos集群IP
IP_1="192.168.0.1"
IP_2="192.168.0.2"
IP_3="192.168.0.3"DB_URL="jdbc:mysql://127.0.0.1:3306/nacos?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC"
DB_USER="root"
DB_PASSWORD="123456"function initDir() {rm -rf "${NACOS_DEPLOY_DIR}"mkdir "${NACOS_DEPLOY_DIR}"info 'end init dir...'
}function downloadRes() {cd ${NACOS_DEPLOY_DIR} && wget ${OSS_URL}info "download finished."
}function unGzip() {cd ${NACOS_DEPLOY_DIR}deploy_file=${DEPLOY_GZ_FILE_NAME}.tar.gztar -zxvf ${deploy_file}mv ${DEPLOY_GZ_FILE_NAME}/* ./rm -rf ${DEPLOY_GZ_FILE_NAME}rm -rf  ${deploy_file}tar -zxvf jdk-8u281-linux-x64.tar.gztar -zxvf nacos-server-1.4.0.tar.gzrm -rf jdk-8u281-linux-x64.tar.gzrm -rf nacos-server-1.4.0.tar.gzinfo 'end un gzip and clear dir.'
}function configNacosClusterIp() {nacos_config_dir=${NACOS_DEPLOY_DIR}/nacos/conftouch ${nacos_config_dir}/cluster.confecho '# nacos cluster ip'echo "${IP_1}:8848" >> ${nacos_config_dir}/cluster.confecho "${IP_2}:8848" >> ${nacos_config_dir}/cluster.confecho "${IP_3}:8848" >> ${nacos_config_dir}/cluster.confcat ${NACOS_DEPLOY_DIR}/nacos/conf/cluster.confinfo "end nacos cluster ip config: ${nacos_config_dir}/cluster.conf"echo "db.num=1" >> ${nacos_config_dir}/application.propertiesecho "db.url.0=${DB_URL}" >> ${nacos_config_dir}/application.propertiesecho "db.user=${DB_USER}" >> ${nacos_config_dir}/application.propertiesecho "db.password=${DB_PASSWORD}" >> ${nacos_config_dir}/application.propertieswarn "please check ${nacos_config_dir}/application.properties db config!"
}function configJdk() {echo -n "conform config java env? [1-yes,0-no]"read conformif [[ "0" == ${conform} ]];theninfo "bye~~"exit 0ficd ${NACOS_DEPLOY_DIR}info "start java env config! "curr_dir=$(pwd)echo "" >> /etc/profileecho "#java env [create on "$(date "+%Y-%m-%d %H:%M:%S]") >> /etc/profileecho "export JAVA_HOME=${curr_dir}/jdk1.8.0_281" >> /etc/profileecho 'export CLASSPATH=.:${JAVA_HOME}/jre/lib/rt.jar:${JAVA_HOME}/lib/tools.jar'  >> /etc/profileecho 'export PATH=$PATH:${JAVA_HOME}/bin'  >> /etc/profilenacos_config_dir=${NACOS_DEPLOY_DIR}/nacos/conf/application.propertieswarn "please check /etc/profile and do 'source /etc/profile' command!"}function main() {initDirdownloadResunGzipconfigNacosClusterIpconfigJdk
}main

最后还要检查一下/etc/profile,用java -version看java运行环境是否正常,正常后再检查nacos的配置,然后调用nacos提供的启动脚本启动即可

三、异常退出重启处理(拓展)

如果要加上systemd,满足在异常退出,及开机重启,脚本改成以下:

  • 不再配置系统级的Java环境变量,而是改成systemd级别的。
  • 使用systemctl start nacossystemctl status nacossystemctl stop nacos管理
#!/bin/bash# define log & color
readonly FG_GREY="30"             #灰色
readonly FG_RED="31"
readonly FG_GREEN="32"
readonly FG_YELLOW="33"
readonly FG_BLUE="34"          #前景色蓝色
readonly FG_VIOLET="35"        #紫色
readonly FG_SKY_BLUE="36"
readonly FG_WHITE="37"readonly BG_RED="41"
readonly BG_GREEN="42"
readonly BG_YELLOW="43"
readonly BG_BLUE="44"
readonly BG_VIOLET="45"
readonly BG_SKYBLUE="46"
readonly BG_WHITE="47"readonly LOG_DEBUG="[调试]"
readonly LOG_INFO="[信息]"
readonly LOG_WARN="[警告]"
readonly LOG_ERROR="[错误]"function debug()
{echo -e "\033[${FG_WHITE}m${LOG_DEBUG}\033[0m $1"
}
function info(){echo -e "\033[${FG_GREEN}m${LOG_INFO}\033[0m $1"
}
function warn()
{echo -e "\033[${FG_YELLOW}m${LOG_WARN}\033[0m $1"
}
function error()
{echo -e "\033[${FG_RED}m${LOG_ERROR}\033[0m $1"
}#NACOS_DEPLOY_DIR="/tmp/nacos/deploy"
NACOS_DEPLOY_DIR="/usr/local/nacos/deploy"DEPLOY_GZ_FILE_NAME="nacos_deploy"OSS_URL="https://xxx/${DEPLOY_GZ_FILE_NAME}.tar.gz"IP_1="192.168.1.1"
IP_2="192.168.1.2"
IP_3="192.168.1.3"DB_URL="jdbc:mysql://127.0.0.1:3306/nacos_config?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC"
DB_USER="root"
DB_PASSWORD="123456"function initDir() {debug '=============================================================='rm -rf "${NACOS_DEPLOY_DIR}"mkdir "${NACOS_DEPLOY_DIR}"info 'end init dir...'
}function downloadRes() {debug '=============================================================='cd ${NACOS_DEPLOY_DIR} && wget ${OSS_URL}info "download finished."
}function copyRes() {cp ~/Downloads/nacos_deploy.tar.gz ${NACOS_DEPLOY_DIR}
}function unGzip() {debug '=============================================================='cd ${NACOS_DEPLOY_DIR}deploy_file=${DEPLOY_GZ_FILE_NAME}.tar.gztar -zxvf ${deploy_file}mv ${DEPLOY_GZ_FILE_NAME}/* ./rm -rf ${DEPLOY_GZ_FILE_NAME}rm -rf  ${deploy_file}tar -zxvf jdk-8u281-linux-x64.tar.gztar -zxvf nacos-server-1.4.0.tar.gzrm -rf jdk-8u281-linux-x64.tar.gzrm -rf nacos-server-1.4.0.tar.gzinfo 'end un gzip and clear dir.'
}function configNacos() {debug '=============================================================='nacos_config_dir=${NACOS_DEPLOY_DIR}/nacos/conftouch ${nacos_config_dir}/cluster.confecho '# nacos cluster ip'echo "${IP_1}:8848" >> ${nacos_config_dir}/cluster.confecho "${IP_2}:8848" >> ${nacos_config_dir}/cluster.confecho "${IP_3}:8848" >> ${nacos_config_dir}/cluster.confcat ${NACOS_DEPLOY_DIR}/nacos/conf/cluster.confinfo "end nacos cluster config,please check: ${nacos_config_dir}/cluster.conf"echo "db.num=1"echo "db.url.0=${DB_URL}"echo "db.user=${DB_USER}"echo "db.password=${DB_PASSWORD}"echo "db.num=1" >> ${nacos_config_dir}/application.propertiesecho "db.url.0=${DB_URL}" >> ${nacos_config_dir}/application.propertiesecho "db.user=${DB_USER}" >> ${nacos_config_dir}/application.propertiesecho "db.password=${DB_PASSWORD}" >> ${nacos_config_dir}/application.propertiesinfo "end db config,please check: ${nacos_config_dir}/application.properties config!"
}function configJdk() {debug '=============================================================='cd ${NACOS_DEPLOY_DIR}echo -n "conform config java env? [1-yes,0-no]"read conformif [[ "0" == ${conform} ]];theninfo "bye~~"exit 0fiinfo "start java env config! "echo "" >> /etc/profileecho "#java env [create on "$(date "+%Y-%m-%d %H:%M:%S]") >> /etc/profileecho "export JAVA_HOME=${NACOS_DEPLOY_DIR}/jdk1.8.0_281" >> /etc/profileecho 'export CLASSPATH=.:${JAVA_HOME}/jre/lib/rt.jar:${JAVA_HOME}/lib/tools.jar'  >> /etc/profileecho 'export PATH=$PATH:${JAVA_HOME}/bin'  >> /etc/profilewarn "please check /etc/profile and do 'source /etc/profile' command!"
}function configSystemdShell() {debug '=============================================================='echo '#!/bin/bash' > ${NACOS_DEPLOY_DIR}/start_nacos.shecho "# java env [create on "$(date "+%Y-%m-%d %H:%M:%S]") >> ${NACOS_DEPLOY_DIR}/start_nacos.shecho "export JAVA_HOME=${NACOS_DEPLOY_DIR}/jdk1.8.0_281" >> ${NACOS_DEPLOY_DIR}/start_nacos.shecho 'export CLASSPATH=.:${JAVA_HOME}/jre/lib/rt.jar:${JAVA_HOME}/lib/tools.jar'  >> ${NACOS_DEPLOY_DIR}/start_nacos.shecho 'export PATH=$PATH:${JAVA_HOME}/bin'  >> ${NACOS_DEPLOY_DIR}/start_nacos.shecho -n 'echo "-------------Start nacos on [$(date "+%Y-%m-%d %H:%M:%S"])-------------"' >> ${NACOS_DEPLOY_DIR}/start_nacos.shecho " >> ${NACOS_DEPLOY_DIR}/deploy_nacos.txt" >> ${NACOS_DEPLOY_DIR}/start_nacos.shecho "/bin/sh ${NACOS_DEPLOY_DIR}/nacos/bin/startup.sh"  >> ${NACOS_DEPLOY_DIR}/start_nacos.shcat  ${NACOS_DEPLOY_DIR}/start_nacos.shinfo "end start_nacos.sh, please check: ${NACOS_DEPLOY_DIR}/start_nacos.sh!"echo '#!/bin/bash' > ${NACOS_DEPLOY_DIR}/stop_nacos.shecho -n 'echo "Stop nacos on [$(date "+%Y-%m-%d %H:%M:%S"])"' >> ${NACOS_DEPLOY_DIR}/stop_nacos.shecho " >> ${NACOS_DEPLOY_DIR}/deploy_nacos.txt" >> ${NACOS_DEPLOY_DIR}/stop_nacos.shecho "/bin/sh ${NACOS_DEPLOY_DIR}/nacos/bin/shutdown.sh"  >> ${NACOS_DEPLOY_DIR}/stop_nacos.shcat  ${NACOS_DEPLOY_DIR}/stop_nacos.shinfo "end stop_nacos.sh, please check: ${NACOS_DEPLOY_DIR}/start_stop.sh!"
}function configSystemd() {debug '=============================================================='echo '' > /usr/lib/systemd/system/nacos.serviceecho '[Unit]' >> /usr/lib/systemd/system/nacos.serviceecho 'Description=nacos-cluster' >> /usr/lib/systemd/system/nacos.serviceecho 'After=network.target' >> /usr/lib/systemd/system/nacos.serviceecho '' >> /usr/lib/systemd/system/nacos.serviceecho '[Service]' >> /usr/lib/systemd/system/nacos.serviceecho 'Type=forking' >> /usr/lib/systemd/system/nacos.serviceecho "ExecStart=/bin/bash ${NACOS_DEPLOY_DIR}/start_nacos.sh" >> /usr/lib/systemd/system/nacos.serviceecho "ExecStop=/bin/bash ${NACOS_DEPLOY_DIR}/stop_nacos.sh" >> /usr/lib/systemd/system/nacos.serviceecho 'Restart=on-failure' >> /usr/lib/systemd/system/nacos.serviceecho '' >> /usr/lib/systemd/system/nacos.serviceecho '[Install]' >> /usr/lib/systemd/system/nacos.serviceecho 'WantedBy=multi-user.target' >> /usr/lib/systemd/system/nacos.servicecat /usr/lib/systemd/system/nacos.serviceinfo "finish systemd config! please check in: /usr/lib/systemd/system/nacos.service"info "use:[ systemctl daemon-reload ]to reload, use  [ systemctl enable nacos ] to reboot start, use  [ systemctl disable nacos ] to close reboot start"info "use [ systemctl start nacos ] to start, use [ systemctl status nacos ] to view, use [ systemctl stop nacos ]to stop"
}function main() {initDirdownloadRes
#    copyResunGzipconfigNacos
#   configJdkconfigSystemdShellconfigSystemd
}main

本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 162202241@qq.com 举报,一经查实,本站将立刻删除。

最新评论

欢迎您发表评论:

请登录之后再进行评论

登录
相关推荐