关于运维
不管大小公司,运维面对最多的工作就是发布部署,近些年各种运维自动化工具也越来越多,运维自动化每个人都有一套自己的理解,那么中小公司一般都怎么做运维自动化呢?
我们先看一下中小企业面临的问题:
1、人员有限,小一点的公司专业运维可能没有,开发自己上线,也有可能1-2个运维人员,基本不会投入专门的运维开发来开发运维自动化平台。
2、服务器少,可能不超过50台服务器。
3、版本更新迭代比较快,需要快速方便的发布回滚。
中小企业运维自动化常见做法:
1、Gitlab+Jenkins,创建Jenkins任务,使用Jenkins登录服务器执行脚本实现发布,配合服务器多个脚本实现对服务器管理。
2、Gitlab+Jenkins+Ansible,使用Jenkins调用Ansible登录服务器执行脚本实现代码的发布,平时服务器管理使用Anaible进行服务器管理。
3、K8S平台,使用K8s发布平台,打包应用Docker镜像,通过K8s发布到线上。
4、使用开源的运维自动化平台发布管理,Github上有很多优秀的开源项目,可以使用。
虽然可以通过上面的几种方法把发布和经常操作的都实现自动化,但是避免不了登录服务器操作命令、配置任务计划,修改应用配置文件,配置服务器监控等。那么有没有开源平台可以很方便的实现上面说到的这些功能呢?
Spug简介
Spug是一款使用Python+Flask+Vue+Element组件开发的开源运维管理系统,系统前后端分离,帮助中小型企业完成主机、任务、发布部署、配置文件、监控、报警等管理。
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/ 开源地址:https://github.com/openspug/spug
标准安装模式:
依赖环境
Python 3.6及以上 Nodejs 12.14 TLS Redis 3.x及以上 现代浏览器
安装步骤
以下安装步骤假设项目安装在一台 macOS 系统的 /data/spug 目录下。
1. Clone项目代码
$ git clone https://github.com/openspug/spug /data/spug
2. 创建运行环境
$ cd /data/spug/spug_api $ python3 -m venv venv $ source venv/bin/activate $ pip install -r requirements.txt -i https://pypi.doubanio.com/simple/
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 --registry=https://registry.npm.taobao.org
7. 启动前端
$ npm start
8. 访问测试
正常情况下 npm start 会自动在浏览器中打开项目,如果未打开可以在浏览器中输入 http://localhost:3000 访问。
如果你按照上边的文档执行的话,在第 4 步创建了默认的管理员账户:
用户名:admin 密码:spug.dev
9. 其他可选服务
通过以上步骤已经可以正常访问 Spug 了
Docker安装模式:
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 --name=spug -p 80:80 registry.aliyuncs.com/openspug/spug
# 持久化存储启动命令:
# mydata是本地磁盘路径,/data是容器内代码和数据初始化存储的路径
$ docker run -d --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
4. 访问测试
在浏览器中输入 http://localhost:80 访问。
用户名: admin 密码: spug.dev
演示环境
演示地址:https://demo.spug.dev 演示账号: admin 演示密码:spug
特性
批量执行: 主机命令在线批量执行
在线终端: 主机支持浏览器在线终端登录
文件管理: 主机文件在线上传下载
任务计划: 灵活的在线任务计划
发布部署: 支持自定义发布部署流程
配置中心: 支持KV、文本、json等格式的配置
监控中心: 支持站点、端口、进程、自定义等监控
报警中心: 支持短信、邮件、钉钉、微信等报警方式
优雅美观: 基于 Ant Design 的UI界面
开源免费: 前后端代码完全开源
环境
Python 3.6+ Django 2.2 Node 12.14 React 16.11
http://www.savh.cn/thread-1348.htm
转载请注明:Savh.Cn 发表