概述
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://:foo123@127.0.0.1:6379/1",
"OPTIONS": {
"CLIENT_CLASS": "django_redis.client.DefaultClient",
}
}
}
CHANNEL_LAYERS = {
"default": {
"BACKEND": "channels_redis.core.RedisChannelLayer",
"CONFIG": {
"hosts": ["redis://:foo123@127.0.0.1:6379/0"],
},
},
}
最后
以上就是狂野小鸽子为你收集整理的超赞!强烈推荐这款开源、轻量的自动化运维平台的全部内容,希望文章能够帮你解决超赞!强烈推荐这款开源、轻量的自动化运维平台所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复