SPUG:方便的集群自动化运维平台

因为一些特殊的需求,我有20多台服务器/VPS,桌面和手机端用Termius管理很方便,但如果频繁地需要部署一些特殊的应用,一个个操作起来有些麻烦。很早就知道SPUG,也部署过,但当时实际需求并没有太强烈,就并没有长期使用。直到最近,复杂的网络环境让我不得不频繁地运维,SPUG的优势就体现出来了。

 

一、关于SPUG

Spug  面向中小型企业设计的轻量级无 Agent 的自动化运维平台,整合了主机管理、主机批量执行、主机在线终端、文件在线上传下载、应用发布部署、在线任务计划、配置中心、监控、报警等一系列功能。

官网: http://spug.cc/

特性:

批量执行: 主机命令在线批量执行
在线终端: 主机支持浏览器在线终端登录
文件管理: 主机文件在线上传下载
任务计划: 灵活的在线任务计划
发布部署: 支持自定义发布部署流程
配置中心: 支持 KV、文本、json 等格式的配置
监控中心: 支持站点、端口、进程、自定义等监控
报警中心: 支持短信、邮件、钉钉、微信等报警方式
优雅美观: 基于 Ant Design 的 UI 界面
开源免费: 前后端代码完全开源

 

预览:

SPUG

 

 

二、首次部署

作为一个习惯Docker的用户,用Docker部署起来特别轻松:

 

1、拉取镜像

docker pull openspug/spug

 

2、安装

docker run -d --restart=always --name=spug -p 8002:80 -v ~/spug/:/data openspug/spug

你也可以自定义【持久化目录】和【端口】,如

docker run -d --restart=always --name=spug -p 【端口】:80 -v 【持久化目录】:/data openspug/spug

 

3、初始化超级管理员

docker exec spug init_spug 【账号】 【密码】

至此,就已经安装好了。

 

 

三、备份与恢复

如果已经成功部署好SPUG,则可以通过备份,在新的机器上恢复数据。

1、备份

你可以创建一个备份shell文件,如:

nano ~/spugbackup.sh
#!/bin/bash
cd /root
tar -zcvf spug.tgz /root/spug
cp -rf /root/spug.tgz 【备份目录】/data/spug/spug_"$(date +"%Y-%m-%d_%H-%M")".tgz
rm -rf spug.tgz
chmod +x spugbackup.sh

 

也可以创建定时备份,如:

nano /etc/crontab
50 6 * * * root bash /root/spugbackup.sh

 

2、恢复

先完成SPUG的安装:

docker pull openspug/spug
docker run -d --restart=always --name=spug -p 8002:80 -v ~/spug/:/data openspug/spug

而后下载备份文件到root目录,再进行恢复:

tar -zxvf spug.tgz
rm -rf /root/spug
mv /root/root/spug /root/spug
rm -rf /root/root

最后重启SPUG的Docker

docker restart spug

之前备份的全部数据就恢复了!

 

 

四、使用Caddy反代

如果你不想用域名+端口号的方式访问,可以使用Caddy反代

1、安装Caddy

#添加caddy官方的软件源,更新软件包并安装caddy v2

echo "deb [trusted=yes] https://apt.fury.io/caddy/ /" \
    | sudo tee -a /etc/apt/sources.list.d/caddy-fury.list
sudo apt update
sudo apt install caddy

 

2、配置Caddyfile

nano /etc/caddy/Caddyfile

 

xx.xx.xx {
    reverse_proxy localhost:8002
}

xx.xx.xx {
    reverse_proxy localhost:【安装时的自定义端口】
}

 

3、重启Caddy

systemctl restart caddy.service

 

五、使用宝塔面板反代

添加完反代的域名+端口后,需要修改反代的配置文件 内容为如下内容,否则WEB终端会无法正常使用。

#PROXY-START/
location / {
    proxy_pass http://【域名:端口】;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  }
location ^~ /api/ws/ {
    proxy_pass http://【域名:端口】;
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "Upgrade";
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  }
#PROXY-END/

记得修改【域名:端口】

 

最后附上SPUG的官方文档,有兴趣可以深入研究。

 

 

打完收工!!

阅读剩余
THE END