超赞!强烈推荐这款开源、轻量的自动化运维平台
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"],
},
},
}
智能推荐
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个里面比当前手里礼物价值低的里面的最低的一个! 不过,写的时候还是把自己绕沟里去了,修改了一次才成功。 下面是代码: 运行结果如下: 欢迎大家交流!!...