超赞!强烈推荐这款开源、轻量的自动化运维平台

标签: 虚拟化  linux  docker  centos

spug简介

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

官网地址:https://www.spug.dev

使用文档:https://www.spug.dev/docs/about-spug/

更新日志:https://www.spug.dev/docs/change-log/

常见问题:https://www.spug.dev/docs/faq/

特性

批量执行: 主机命令在线批量执行

在线终端: 主机支持浏览器在线终端登录

文件管理: 主机文件在线上传下载

任务计划: 灵活的在线任务计划

发布部署: 支持自定义发布部署流程

配置中心: 支持KV、文本、json等格式的配置

监控中心: 支持站点、端口、进程、自定义等监控

报警中心: 支持短信、邮件、钉钉、微信等报警方式

优雅美观: 基于 Ant Design 的UI界面

开源免费: 前后端代码完全开源

环境

Python 3.6+

Django 2.2

Node 12.14

React 16.11

一、安装

以下安装步骤是基于Centos7.x操作系统。

1.安装docker

docker安装方法请参考:https://docs.docker.com/engine/install/centos/

2.拉取官网镜像

$ docker pull registry.aliyuncs.com/openspug/spug

3.启动容器

Docker镜像内部使用的mysql数据库。

如果需要持久化存储代码和数据,可以添加:-v 映射容器内/data路径

$ docker run -d --restart=always --name=spug -p 80:80 registry.aliyuncs.com/openspug/spug

持久化存储启动命令:
mydata指的是本地磁盘路径,也可以是其他目录,但需要保证映射的本地磁盘路径已经存在,/data是容器内代码和数据初始化存储的路径

$ docker run -d --restart=always --name=spug -p 80:80 -v /mydata/:/data registry.aliyuncs.com/openspug/spug

4.初始化

以下操作会创建一个用户名为 admin 密码为 spug.dev 的管理员账户,可自行替换管理员账户。

$ docker exec spug init_spug admin spug.dev

执行完毕后需要重启容器

$ docker restart spug

注:初始化必须出现返回值才算成功,否则不能登录

Running migrations:
  Applying account.0001_initial... OK
  Applying alarm.0001_initial... OK
  Applying config.0001_initial... OK
  Applying app.0001_initial... OK
  Applying deploy.0001_initial... OK
  Applying exec.0001_initial... OK
  Applying host.0001_initial... OK
  Applying monitor.0001_initial... OK
  Applying notify.0001_initial... OK
  Applying schedule.0001_initial... OK
  Applying setting.0001_initial... OK

5.访问测试

在浏览器中输入http://localhost:80访问。(这里的loaclhost就是你本地IP)

用户名:admin  
密码:spug.dev

在这里插入图片描述

二、安装部署常见问题

1.执行数据初始化命令 python manage.py initdb 报错
一般有以下两种情况
Django 版本使用了 3.x 的版本,我们仅支持 2.2.x 版本,安装依赖推荐使用文档中的 pip install -r requirements.txt 来安装
系统的 Sqlite 版本太低,Django 2.2 Sqlite 的版本最低要求为 3.8.3

2.Nginx 访问前端文件提示无权限问题
确认系统是否开启了 selinux。如果开启可通过执行 setenforce 0 来临时关闭后重试。

3.登录报错 请求失败: 504 Gateway Timeout
请确保 api 服务是否启动,如果已启动则可以通过控制台查看是否监听在 8000 端口,如果不是 8000 端口可以改为 8000 端口或者修改前端项目的 spug/spug_web/src/setupProxy.js 文件中的 target 值为你的 api 服务的监听地址和端口。

4.登录报错 请求失败: 502 Bad Gateway
请确保 api 服务已正常启动且 nginx 配置正确。另可查看 nginx 日志如有发现 13: Permission denied 字样的报错则可尝试关闭 selinux 后再测试。

5.登录报错Exception:Error 61 connecting to127.0.0.1:6379.
Connection refused.
需要安装 Redis,如果安装的 Redis 不是监听在 127.0.0.1 需要修改配置文件 spug_api/spug/settings.py 指定 Redis 的 Host,配置中的 CACHES 和 CHANNEL_LAYERS 均使用了 Redis。

6.添加主机报错 Exception: not a vaild RSA private key file
当 Spug 生成的**对无法通过验证时,会尝试读取系统的 ~/.ssh/ 目录下的**进行验证,这个报错一般是在读取系统**时出错。可以尝试先移除系统 的**,然后再操作添加主机,等添加完成后再恢复原有的**。

7.如何配置使用带密码的 Redis 服务?
假设 Redis 密码为 foo123,则需要更改以配置文件 spug_api/spug/settings.py 或者 overrides.py 如下内容

自定义的配置可以在 spug_api/spug/ 目录下创建 overrides.py 文件来覆盖默认的配置。

$ vi spug_api/spug/settings.py

CACHES = {
    "default": {
        "BACKEND": "django_redis.cache.RedisCache",
        "LOCATION": "redis://:[email protected]:6379/1",
        "OPTIONS": {
            "CLIENT_CLASS": "django_redis.client.DefaultClient",
        }
    }
}

CHANNEL_LAYERS = {
    "default": {
        "BACKEND": "channels_redis.core.RedisChannelLayer",
        "CONFIG": {
            "hosts": ["redis://:[email protected]:6379/0"],
        },
    },
}
版权声明:本文为weixin_44476161原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_44476161/article/details/108977607

智能推荐

Mac下的myeclipse安装

1.首先要安装jdk跟jre 2.安装过程中可能会遇到您需要安装旧 Java SE 6 运行环境才能打开此 Java 应用程序的提示     解决办法就是安装ava for os x 2015-001.,这里不要点系统给你提示的界面,根本没法下载 我上传的链接,可以直接下载:链接: https://pan.baidu.com/s/1qYbT6os 密码: x...

30分钟实战树莓派连接到微软云Azure IoT Hub并将数据可视化

更多内容,关注公众号: 树莓派是很多动手达人必备的小玩具,本节内容,让我们拿出树莓派,在30分钟内,将树莓派连接到微软云Azure的IoT Hub,然后将温湿度曲线可视化。 本实战完整视频: 树莓派连接到Azure IoT Hub 并用时序见解展示数据 本节内容中,树莓派发送的数据是模拟出来的,并没有真实的连接到传感器,您可以选购不同的传感器来采集真实的环境信息。 Azure IoT Hub 为我...

spring cloud gateway 整合ribbon、nacos discovery实现负载均衡源码简析

1 spring cloud gateway 负载均衡入口 spring cloud gateway 使用 LoadBalancerClientFilter 来实现载均衡的功能,该过滤器通过LoadBalancerClient.choose(ServerWebExchange exchange)方法来获取目标实例。 LoadBalancerClient 为spring-cloud-commons包...

VUE快速搭建项目

作为一个前端小辣鸡 今天在网上找到了 一个 快速 无脑式搭建vue项目的方式 分享一下 我们采用图形界面创建项目。通过 vue ui 命令启动 vue cli service 后,访问 http://localhost:8000/project/create 可以直接进入项目创建流程。 步骤中有些地方值得一提 详情:包管理器指定 npm,后续在npm 配置文件(.npmrc)中可手动指定国内镜像源...

2017-8-10 Struts2学习笔记二

一、web.xml文件的编写 1. 由于struts2是用过滤器拦截请求的,所以需要在web.xml文件中配置一个过滤器。 2. 这个过滤器的名字叫StrutsPrepareAndExecuteFilter,中文名曰struts准备和执行过滤器,就是这个过滤器拦截我们在地址栏的请求。 3. 查找这个过滤器,将它的全路径写在filter-class标签中,eclipse可以使用Shift+Ctrl+...

猜你喜欢

Windows Terminal配置Git

文章目录 Windows Terminal配置Git 效果 下载和安装 配置Windows Terminal 配置其它命令行 Windows Terminal配置Git 效果 先上效果图: 下载和安装 Windows Terminal是微软开发的面向命令行用户的全新,现代,功能丰富,高效的终端应用程序。 它包括Windows命令行社区最常请求的许多功能,包括对选项卡,富文本,全球化,可配置性,主题...

CW MCU v11.1学习笔记1

说明:通过处理器专家创建芯片为MC9S08DZ60的工程,按键控制LED 一、CW11.1软件界面布局 1、双击桌面图标,打开软件,设置工作空间 软件主界面 调试界面 处理器专家界面 有时经常调整(删除)面板布局,如果想恢复布局,可在Window工具栏下的Reset Perspective选项来复位面板布局 二、新建工程 1、在C/C++模式下,在Commander面板下点击New MCU pro...

栈-综合应用-中缀表达式转后缀表达式

综合应用 使用栈完成一个计算表达式的结果 输入:2 * 3 - 4 / 5 * 0.2 => 0.08 思路 使用index -> 2 (第一个为止),数字放入数栈,符号放入符号栈,符号栈为空,直接放入。 遇到第二个运算符,与符号栈中的符号进行运算符优先级比较。 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-gvhtZGbo-1601271684334)...

git分支管理

一、主分支Master 首先,代码库应该有一个、且仅有一个主分支。所有提供给用户使用的正式版本,都在这个主分支上发布。 Git主分支的名字,默认叫做Master。它是自动建立的,版本库初始化以后,默认就是在主分支在进行开发。 二、开发分支Develop 主分支只用来分布重大版本,日常开发应该在另一条分支上完成。我们把开发用的分支,叫做Develop。 这个分支可以用来生成代码的最新隔夜版本(nig...

分享一道百度笔试程序题

有个朋友去百度面试,带回来一道笔试题,题目如下: 题目大意就是这样! 初步分析挺简单的嘛,不就是当收到的礼物超过K个时,接下来每次拿到手一个礼物之后,和手里的K个礼物做对比,淘汰K个里面比当前手里礼物价值低的里面的最低的一个! 不过,写的时候还是把自己绕沟里去了,修改了一次才成功。 下面是代码: 运行结果如下: 欢迎大家交流!!...