共计 3147 个字符,预计需要花费 8 分钟才能阅读完成。
介绍
Spug 面向中小型企业设计的轻量级无 Agent 的自动化运维平台,整合了主机治理、主机批量执行、主机在线终端、文件在线上传下载、利用公布部署、在线工作打算、配置核心、监控、报警等一系列性能。
个性
- 批量执行: 主机命令在线批量执行
- 在线终端: 主机反对浏览器在线终端登录
- 文件治理: 主机文件在线上传下载
- 工作打算: 灵便的在线工作打算
- 公布部署: 反对自定义公布部署流程
- 配置核心: 反对 KV、文本、json 等格局的配置
- 监控核心: 反对站点、端口、过程、自定义等监控
- 报警核心: 反对短信、邮件、钉钉、微信等报警形式
- 优雅好看: 基于 Ant Design 的 UI 界面
- 开源收费: 前后端代码齐全开源
docker 部署
docker 默认集成数据库,须要独自部署参考这里
# 1、拉取镜像
docker pull registry.aliyuncs.com/openspug/spug
# 2、启动容器
docker run -d --restart=always --name=spug -p 80:80 -v /spug:/data -v /usr/local/java/jdk1.8.0_211:/usr/local/java/jdk1.8.0_211 -v /home/ywuser/apache-maven-3.6.3:/home/ywuser/apache-maven-3.6.3 registry.aliyuncs.com/openspug/spug
# 长久化存储启动命令:# /spug 指的是映射本地的磁盘门路,也能够是其余目录,/data 是容器内代码和数据初始化存储的门路
# -v 是 docker 挂载目录,docker 和宿主机共用一个 maven。用来编译打包我的项目。
# 3、进入 docker 容器配置 jdk 和 maven。docker exec -it spug bash
# 4、配置 docker 容器 jdk 和 maven
#全局 jdk
JAVA_HOME=/usr/local/java/jdk1.8.0_211
JRE_HOME=/usr/local/java/jdk1.8.0_211/jre
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
PATH=$JAVA_HOME/bin:$PATH
export PATH JAVA_HOME CLASSPATH
#全局 maven
MAVEN_HOME=/home/ywuser/apache-maven-3.6.3
export MAVEN_HOME
export PATH=${PATH}:${MAVEN_HOME}/bin
# 5、初始化
# 创立一个用户名为 admin 明码为 spug.dev 的管理员账户,可自行替换管理员账户。docker exec spug init_spug admin spug.dev
# 执行结束后须要重启容器
docker restart spug
# 6、拜访测试
在浏览器中输出 http://localhost:80 拜访。用户名:admin
明码:spug.dev
springboot 公布配置
1、增加主机
填完信息点击[验证], 有弹出框填写明码
2、新建一个利用
3、新建公布配置
留神: 这里 [构建配置] 的命令是在部署 Spug 的服务器上执行,须要在 docker 容器里,配置 jdk 和 maven
set -e
echo '代码开始编译'
mvn clean package -Dmaven.test.skip=true
# 挪动包
mv ./demo-web/target/demo-web.jar ./
rm -rf ./demo-web
rm -rf ./demo-core
rm -rf ./demo-api
rm -rf ./demo-third
rm -rf ./pom.xml
rm -rf ./.gitignore
rm -rf ./README.md
rm -rf ./.mvn
echo '代码编译实现'
set -e
# 复制脚本
cp /home/ywuser/script/jar.sh ./
# 刷新配置
source /etc/profile
# 启动
echo '老版本开始停机'
sh ./jar.sh stop
echo '老版本停机实现'
echo '新版本开始启动'
sh ./jar.sh start
echo '新版本启动实现'
----------
sh ./jar.sh status
echo '利用公布实现'
留神: 这里 [公布配置] 命令在我的项目部署服务器上执行
附: 启动 sheel 脚本: jar.sh
set +e
source /etc/profile
PROJECT_NAME=$(cd "$(dirname"$0")";pwd)
jar_file=$(ls *.jar)
mkdir -p ${PROJECT_NAME}/dump
if [`echo ${jar_file} | xargs -n1 | wc -l` -eq 1 ];then
APP_NAME=${jar_file}
else
echo 'ERR: Twee fles pakkette word nie toegelaat nie.'
exit 2
fi
# help
usage() {echo "Usage: sh jar.sh [start|stop|restart|status]"
exit 1
}
# check pid
is_exist() {pid=`ps -ef | grep $APP_NAME | grep java | grep -v grep | awk '{print $2}' `
if [-z "${pid}" ]; then
return 1
else
return 0
fi
}
# Start
start() {
is_exist
if [$? -eq "0"]; then
echo "${APP_NAME} is already running. pid=${pid} ."
else
cd ${PROJECT_NAME}
nohup java -XX:+UseG1GC -XX:MaxGCPauseMillis=200 -Xmx5G -Xms5G -XX:+UnlockExperimentalVMOptions -XX:+DisableExplicitGC -Xloggc:/home/ywuser/logs/gc-%t.log -XX:+PrintGCDetails -XX:+PrintGCCause -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=10 -XX:GCLogFileSize=50M -XX:+PrintGCDateStamps -XX:+PrintGCTimeStamps -XX:+PrintHeapAtGC -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/home/ywuser/logs/heapDump.log -jar $APP_NAME --spring.profiles.active=dev &>logs.out &
fi
}
# Stop
stop() {
is_exist
if [$? -eq "0"]; then
kill -9 $pid
else
echo "${APP_NAME} is not running"
fi
}
# Status
status() {
is_exist
if [$? -eq "0"]; then
echo "${APP_NAME} is running. Pid is ${pid}"
else
echo "${APP_NAME} is not running."
fi
}
# Restart
restart() {
stop
start
}
# run
case "$1" in
"start")
start
;;
"stop")
stop
;;
"status")
status
;;
"restart")
restart
;;
*)
usage
;;
esac
4、构建打包
点击【确定】按钮
5、新建公布打算
抉择 构建仓库
6、公布我的项目
我的项目主动部署实现。
参考信息
参考信息
正文完