Giter VIP home page Giter VIP logo

openspug / spug Goto Github PK

View Code? Open in Web Editor NEW
9.9K 192.0 2.0K 5.41 MB

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

Home Page: https://spug.cc

License: GNU Affero General Public License v3.0

Python 36.30% Shell 0.21% JavaScript 59.46% CSS 0.83% HTML 0.19% Less 3.01%
ops operations devops webssh ops-admin opsadmin jenkins webshell webconsole django-ops

spug's Introduction

Spug

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

演示环境

演示地址:https://demo.spug.cc

🔐免费通配符SSL证书

免费通配符,付费证书价格亲民,性价比超高,低于市场其他平台价格,免费专家一对一配置服务,购买流程简单快速,且支持7天无理由退款和开具发票。提供一键下载和SSL过期通知配置,免费申请:https://ssl.spug.cc

🔥推送助手

推送助手是一个集成了电话、短信、邮件、飞书、钉钉、微信、企业微信等多通道的消息推送平台,可以3分钟实现Zabbix、Prometheus、夜莺等监控系统的电话短信报警,点击体验:https://push.spug.cc

特性

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

环境

  • Python 3.6+
  • Django 2.2
  • Node 12.14
  • React 16.11

安装

官方文档

更多使用帮助请参考: 使用文档

推荐项目

Yearning — MYSQL 开源SQL语句审核平台

预览

主机管理

image

主机在线终端

image

文件在线上传下载

image

主机批量执行

image image

应用发布

image

监控报警

image

角色权限

image

赞助


UCloud
5 元/月云主机

阿里云
2核心2G低至99元/年

马哥教育
IT人高薪职业学院

开发者群

关注Spug运维公众号加微信群、QQ群、获取最新产品动态

spug-qq

License & Copyright

AGPL-3.0

spug's People

Contributors

dependabot[bot] avatar lucius-chen avatar vanishcode avatar vapao avatar xfan1024 avatar xiasf avatar xyombo avatar zyupo avatar zzqqw avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

spug's Issues

账号密码问题

用户重置密码以后只能使用默认密码,无法修改密码。

主机添加问题

强烈建议添加密码登录功能
以及 批量导入、自定义扫描网段、公有云接入等添加批量主机的方式

二次开发问题

麻烦作者提供一下二次开发添加新功能的全部流程。包括:前段导航-路由-权限-视图》》》》》

自定义发布一些问题

不是基于git的应用发布,不适用于常规发布,使用自定义发布,自定义的环境环境变量,每一步不能通用,spug的全局变量没有当前发布机器的ip地址

报警联系组删除问题

删除已经有监控任务,监控联系人的报警联系组,前端页面显示删除成功,但实际未删除,且从逻辑上也应该不允许删除,后台代码逻辑发现是这样的:
def delete(self, request):
form, error = JsonParser(
Argument('id', type=int, help='请指定操作对象')
).parse(request.GET)
if error is None:
detection = Detection.objects.filter(notify_grp__contains=f'"{form.id}"').first()
if detection:
return json_response(error=f'监控任务【{detection.name}】正在使用该报警组,请解除关联后再尝试删除该联系组')
Group.objects.filter(pk=form.id).delete()
return json_response(error=error)
水平有限,暂未查出问题出在哪?

在应用列表里点击发布是有报错


ERROR in middleware [/spug/spug_api/libs/middleware.py:40]:
'bool' object has no attribute 'lower'

Traceback (most recent call last):
File "/usr/lib/python3.6/site-packages/flask/app.py", line 1612, in full_dispatch_request
rv = self.dispatch_request()
File "/usr/lib/python3.6/site-packages/flask/app.py", line 1598, in dispatch_request
return self.view_functionsrule.endpoint
File "/spug/spug_api/libs/decorators.py", line 28, in wrapper
return func(*args, **kwargs)
File "/spug/spug_api/apps/deploy/publish.py", line 39, in app_update
Argument('host_ids', type=list)
File "/spug/spug_api/libs/tools.py", line 143, in parse
rst[e.name] = e.parse(*self._get(e.name))
File "/spug/spug_api/libs/tools.py", line 108, in parse
assert value.lower in ['true', 'false']
AttributeError: 'bool' object has no attribute 'lower'

这是是我操作问题,还是bug呢

你好,我遇到了添加主机的问题。

我通过docker 在虚拟机部署完毕后,可以正常打开网页,在主机管理里面我添加单条主机不能成功,里面的连接主机docker的地址,我添加为虚拟机的IP不能成功,docker的2375端口映射为主机的2375端口也不能成功提示信息为:
“获取扩展信息失败,请检查docker是否可以正常连接“
在网站上没有找到相关说明。
编辑主机
链接失败

python3.7.1安装python-ldap失败

Traceback (most recent call last):
File "setup.py", line 8, in
from setuptools import setup, Extension
File "/data/spug/spug_api/venv/lib/python3.7/site-packages/setuptools/init.py", line 20, in
from setuptools.dist import Distribution, Feature
File "/data/spug/spug_api/venv/lib/python3.7/site-packages/setuptools/dist.py", line 35, in
from setuptools import windows_support
File "/data/spug/spug_api/venv/lib/python3.7/site-packages/setuptools/windows_support.py", line 2, in
import ctypes
File "/usr/local/lib/python3.7/ctypes/init.py", line 7, in
from _ctypes import Union, Structure, Array
ModuleNotFoundError: No module named '_ctypes'

总是有依赖会安装失败,各种查,心累。

demo 演示地址

您好:
感谢开源和分享 spug 项目,已收录到 HG 月刊。将于本月 28 号发布,阅读该项目过程中发现如下问题:

  • 访问 demo 演示地址,显示:链接不安全。可能是服务器 https 证书配置有问题,用户可能会停在这个警告下,影响项目的推广。

使用任务模板出错

117

使用任务模板时出错?这是怎么回事?我从运行正常的shell脚本中拷贝代码过来也是出错。

麻烦大家指教一下。

发布日志

image
这是一个发布完成的日志,但是去查看日志的时候,日志并没有显示完全,而且发布过程中的deploy还在转圈

应用发布过程还是发布中是否可以取消

应用发布过程还是发布中时候,是否可以增加取消发布功能。
因为有时候发布都几十分过去了还是显示发布中真的好无奈啊。。。,一直在『检出前任务』那里不动,也不知道是什么原因(退出登录进入还是发布中)
image

Exception: Authentication failed

账号密码 ip 地址都对, 首次验证也通过
但是console 里面提示验证失败

Connecting ...
Exception: Authentication failed.

Connection is closed.

监控中心能不能发送的消息能不能多一点?

只返回状态信息,并不知道具体是什么情况。
比如说:我想知道每天某个指定文件夹下多了几个文件?每个文件的名称。
我希望看到每天的具体内容。

如果放在计划任务里,发不了短信。
如果放在监控中心里,发送回的信息太少。

centeros7 执行 python manage.py init.db报错

File "/data/spug/spug_api/venv/lib/python3.6/site-packages/django/core/checks/model_checks.py", line 32, in check_all_models
errors.extend(model.check(**kwargs))
File "/data/spug/spug_api/venv/lib/python3.6/site-packages/django/db/models/base.py", line 1235, in check
*cls._check_fields(**kwargs),
File "/data/spug/spug_api/venv/lib/python3.6/site-packages/django/db/models/base.py", line 1314, in _check_fields
errors.extend(field.check(**kwargs))
File "/data/spug/spug_api/venv/lib/python3.6/site-packages/django/db/models/fields/init.py", line 918, in check
*super().check(**kwargs),
File "/data/spug/spug_api/venv/lib/python3.6/site-packages/django/db/models/fields/init.py", line 205, in check
*self._check_backend_specific_checks(**kwargs),
File "/data/spug/spug_api/venv/lib/python3.6/site-packages/django/db/models/fields/init.py", line 326, in _check_backend_specific_checks
return connections[db].validation.check_field(self, **kwargs)
File "/data/spug/spug_api/venv/lib/python3.6/site-packages/django/db/utils.py", line 201, in getitem
backend = load_backend(db['ENGINE'])
File "/data/spug/spug_api/venv/lib/python3.6/site-packages/django/db/utils.py", line 110, in load_backend
return import_module('%s.base' % backend_name)
File "/usr/local/python3.6/lib/python3.6/importlib/init.py", line 126, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "", line 978, in _gcd_import
File "", line 961, in _find_and_load
File "", line 950, in _find_and_load_unlocked
File "", line 655, in _load_unlocked
File "", line 678, in exec_module
File "", line 205, in _call_with_frames_removed
File "/data/spug/spug_api/venv/lib/python3.6/site-packages/django/db/backends/sqlite3/base.py", line 66, in
check_sqlite_version()
File "/data/spug/spug_api/venv/lib/python3.6/site-packages/django/db/backends/sqlite3/base.py", line 63, in check_sqlite_version
raise ImproperlyConfigured('SQLite 3.8.3 or later is required (found %s).' % Database.sqlite_version)
django.core.exceptions.ImproperlyConfigured: SQLite 3.8.3 or later is required (found 3.7.17).

紧急求帮助 谢谢。

init_db初始化异常

linkding:spug_api Linkding$ python manage.py init_db
Traceback (most recent call last):
  File "manage.py", line 117, in <module>
    r_func(*sys.argv)
  File "manage.py", line 47, in init_db
    import apps.configuration.models
  File "/Users/Linkding/Linkding.com/project.Linkding.com/spug-master/spug_api/apps/configuration/__init__.py", line 2, in <module>
    from apps.configuration import service
  File "/Users/Linkding/Linkding.com/project.Linkding.com/spug-master/spug_api/apps/configuration/service.py", line 4, in <module>
    from apps.deploy.models import App
  File "/Users/Linkding/Linkding.com/project.Linkding.com/spug-master/spug_api/apps/deploy/__init__.py", line 1, in <module>
    from apps.deploy import app as app_page
  File "/Users/Linkding/Linkding.com/project.Linkding.com/spug-master/spug_api/apps/deploy/app.py", line 2, in <module>
    from apps.deploy.models import App, AppHostRel, DeployMenu
  File "/Users/Linkding/Linkding.com/project.Linkding.com/spug-master/spug_api/apps/deploy/models.py", line 3, in <module>
    from apps.system.models import NotifyWay
  File "/Users/Linkding/Linkding.com/project.Linkding.com/spug-master/spug_api/apps/system/__init__.py", line 1, in <module>
    from apps.system import notify
  File "/Users/Linkding/Linkding.com/project.Linkding.com/spug-master/spug_api/apps/system/notify.py", line 68
    message = f'# <font face=\"微软雅黑\">运维平台通知</font> #  \n ' \
                                                          ^
SyntaxError: invalid syntax

系统环境:MacOS

python version:3.5.2

菜单权限控制问题

你好,我看到网站的菜单权限貌似是通过localstorage对象来存储并基于此来控制的。但这个对象前台用户是可以自己更改的,这样用户就可以自定义属性来修改权限(如localStorage.setItem('is_supper',"true")),他就能看到所有的菜单了。

常规发布:一直卡在“检出前任务”不动

11:46:57 建立接连... 完成
11:46:57 发布准备... 完成
11:46:57 检出前任务...

常规发布
代码迁出前执行:
date
或是
代码迁出前执行:
echo 'test'

都没反应,发布时一直在“检出前任务”转

点返回,发布状态是“发布异常”;点“查看”,“检出前任务”还在转。

代码迁出后执行,也有这问题

能否支持使用私钥登录

出于安全考虑,服务器已关闭密码登录,能否在主机管理中支持使用私钥登录的方式,否则无法添加主机

主机管理需要增加共钥登陆

服务器的主机一般还要添加密钥登陆,否则极不安全,目前的版本只能账号密码登陆,考虑增加下密钥登陆,谢谢

Docker 部署之后上传xls提示 pyexcel-xls 缺失

ERROR in middleware [/spug/spug_api/libs/middleware.py:40]:
Please install pyexcel-xls

Traceback (most recent call last):
File "/usr/lib/python3.6/site-packages/flask/app.py", line 1612, in full_dispatch_request
rv = self.dispatch_request()
File "/usr/lib/python3.6/site-packages/flask/app.py", line 1598, in dispatch_request
return self.view_functionsrule.endpoint
File "/spug/spug_api/libs/decorators.py", line 28, in wrapper
return func(*args, **kwargs)
File "/spug/spug_api/apps/assets/host.py", line 122, in host_import
data = excel_parse()
File "/spug/spug_api/apps/assets/utils.py", line 7, in excel_parse
return dict(request.get_dict(field_name='file'))
File "/usr/lib/python3.6/site-packages/pyexcel_webio/init.py", line 114, in get_dict
return pe.get_dict(**params)
File "/usr/lib/python3.6/site-packages/pyexcel/core.py", line 141, in get_dict
**keywords)
File "/usr/lib/python3.6/site-packages/pyexcel/core.py", line 36, in get_sheet
named_content = sources.get_sheet_stream(**keywords)
File "/usr/lib/python3.6/site-packages/pyexcel/internal/core.py", line 20, in get_sheet_stream
sheets = a_source.get_data()
File "/usr/lib/python3.6/site-packages/pyexcel/plugins/sources/memory_input.py", line 38, in get_data
**self._keywords)
File "/usr/lib/python3.6/site-packages/pyexcel/plugins/parsers/excel.py", line 25, in parse_file_content
file_content, file_type=self._file_type, **keywords)
File "/usr/lib/python3.6/site-packages/pyexcel/plugins/parsers/excel.py", line 35, in _parse_any
anything, file_type=file_type, **keywords)
File "/usr/lib/python3.6/site-packages/pyexcel_io/io.py", line 65, in get_data
streaming=False, **keywords)
File "/usr/lib/python3.6/site-packages/pyexcel_io/io.py", line 83, in _get_data
return load_data(**keywords)
File "/usr/lib/python3.6/site-packages/pyexcel_io/io.py", line 173, in load_data
reader = READERS.get_a_plugin(file_type, library)
File "/usr/lib/python3.6/site-packages/pyexcel_io/plugins.py", line 77, in get_a_plugin
plugin = self.load_me_now(__file_type, library=library)
File "/usr/lib/python3.6/site-packages/lml/plugin.py", line 289, in load_me_now
self.raise_exception(key)
File "/usr/lib/python3.6/site-packages/pyexcel_io/plugins.py", line 91, in raise_exception
raise exceptions.SupportingPluginAvailableButNotInstalled(message)
pyexcel_io.exceptions.SupportingPluginAvailableButNotInstalled: Please install pyexcel-xls

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.