python自动化运维技术与最佳实践(Python开发开源运维平台Spug)
python自动化运维技术与最佳实践(Python开发开源运维平台Spug)阿里云的镜像与 Docker hub 同步更新,国内用户建议使用阿里云的镜像。$ yum install docker $ systemctl start docker 2. 拉取镜像安装步骤以下安装步骤使用 Centos7.x 操作系统。1. 安装docker
Spug介绍Spug 面向中小型企业设计的轻量级无Agent的自动化运维平台,整合了主机管理、主机批量执行、主机在线终端、文件在线上传下载、应用发布部署、在线任务计划、配置中心、监控、报警等一系列功能。界面UI基于阿里开源的知名前端UI框架Ant Design。
仓库和文档地址
https://gitee.com/openspug/spug
https://github.com/openspug/spug
环境- 批量执行: 主机命令在线批量执行
- 在线终端: 主机支持浏览器在线终端登录
- 文件管理: 主机文件在线上传下载
- 任务计划: 灵活的在线任务计划
- 发布部署: 支持自定义发布部署流程
- 配置中心: 支持KV、文本、json等格式的配置
- 监控中心: 支持站点、端口、进程、自定义等监控
- 报警中心: 支持短信、邮件、钉钉、微信等报警方式
- 优雅美观: 基于 Ant Design 的UI界面
- 开源免费: 前后端代码完全开源
依赖环境
- Docker
- 现代浏览器
安装步骤
以下安装步骤使用 Centos7.x 操作系统。
1. 安装docker
$ yum install docker
$ systemctl start docker
2. 拉取镜像
阿里云的镜像与 Docker hub 同步更新,国内用户建议使用阿里云的镜像。
$ docker pull registry.aliyuncs.com/openspug/spug
3. 启动容器
Docker镜像内部使用的 Mysql 数据库。
如果需要持久化存储代码和数据,可以添加:-v 映射容器内/data路径
$ docker run -d -p 80:80 registry.aliyuncs.com/openspug/spug
# 持久化存储启动命令:
# mydata是本地磁盘路径,/data是容器内代码和数据初始化存储的路径
$ docker run -d -p 80:80 -v /mydata/:/data registry.aliyuncs.com/openspug/spug
4. 初始化
以下操作会创建一个用户名为 admin 密码为 spug.dev 的管理员账户,可自行替换管理员账户。
$ docker exec $CONTAINER_ID init_spug admin spug.dev
# 执行完毕后需要重启容器
$ docker restart $CONTAINER_ID
4. 访问测试
在浏览器中输入 http://localhost:80 访问。
用户名: admin
密码: spug.dev
标准安装(详细看文档)
此安装文档适合具有一定编程能力基础的人员进行二次开发时的环境搭建,如果你是在生产环境部署,请参考 生产环境部署 文档。
依赖环境
- Python 3.6及以上
- Nodejs 12.14 TLS
- Redis 3.x及以上
- 现代浏览器
安装步骤
以下安装步骤假设项目安装在一台 macOS 系统的 /data/spug 目录下。
1. Clone项目代码
$ git clone https://***
2. 创建运行环境
$ cd /data/spug/spug_api
$ python3 -m venv venv
$ source venv/bin/activate
$ pip install -r requirements.txt -i https://***
3. 初始化数据库
默认使用的 Sqlite 数据库。
$ python manage.py initdb
4. 创建默认管理员账户
$ python manage.py useradd -u admin -p spug.dev -s -n 管理员
# -u 用户名
# -p 密码
# -s 超级管理员
# -n 用户昵称
5. 启动 api 开发环境服务
$ python manage.py runserver
6. 安装前端依赖
可以把 npm 用 yarn 或 cnpm 代替。
$ cd /data/spug/spug_web
$ npm install
7. 启动前端
$ npm start
8. 访问测试
正常情况下 npm start 会自动在浏览器中打开项目,如果未打开可以在浏览器中输入 http://localhost:3000 访问。如果你按照上边的文档执行的话,在第 4 步创建了默认的管理员账户:
用户名:admin
密码:spug.dev
9. 其他可选服务
通过以上步骤已经可以正常访问 Spug 了,但一些功能依赖额外的服务,请参考以下文档(参考官方文档,此处不再叙述)
批量执行的任务卡住无法看到执行输出
任务计划模块添加的任务不会执行
监控中心模块添加的监控任务不会执行
总结Spug:麻雀,麻雀虽小,五脏俱全。
PS:优秀的开源项目有很多,也欢迎小伙伴们分享推荐!