# cloud_db_ops **Repository Path**: spwx/cloud_db_ops ## Basic Information - **Project Name**: cloud_db_ops - **Description**: WIP: 在云服务器,虚拟主机等上,快速建立可靠,可监控,在线运维的数据库(mysql, redis, etc); 类似各大云厂商数据库产品 - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 2 - **Forks**: 0 - **Created**: 2020-05-19 - **Last Updated**: 2022-02-21 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ## 简介 > 一款针对小型团队的简易而完善的数据库管理平台。使用[Go Frame](https://gitee.com/johng/gf)做开发框架,使用django做数据模型管理工具,集成现有优秀开源的数据库解决方案。 > 远程机器只支持ubuntu 18.04; 也就是说,通过这个平台,数据库只能安装在ubuntu 18.04上, 其他平台需要自行修改脚本和文件。 > 声明: 该平台不对操作做任何保障,执行之前需要使用者了解每个操作的含义,并知晓其会造成的影响。 ## 已实现功能 - 管理 web ui - 管理员登录,注销 - mysql 服务信息管理 - mysql 自动部署 (ansible) - mysql 主从复制 (ansible) - mysql 监控(pmm, Percona MySQL Monitor, Grafana, Prometheus) - mysql 定期热备(xtrabackup+crontab) - mysql phpmyadmin 登录管理 - redis 服务信息管理 - redis 自动部署 (ansible) - redis 主从复制 (ansible, 不支持 redis-cluster) - redis 监控(influx+telegraf+redis-plugin) - redis 网页 tty 登录 - 服务器网页 tty 登录 - 所有功能都整合在一个域名下 - mongodb集群管理, 部署, 监控 - elastic search / kibana集群管理, 部署, kibana登陆 - apisix 网关部署、和监控 ## 规划功能 - kafka , etcd, nacos 等部署和管理 - etc ... ## 功能说明文档 todo ## 使用组件 - go frame -- GF(Go Frame)是一款模块化、高性能、生产级的 Go 基础开发框架 [link](https://gitee.com/johng/gf) - ansible-role-mysql [link](https://github.com/geerlingguy/ansible-role-mysql) - pmm, Percona MySQL Monitor - ansible-role-redis - phpmyadmin - influxdb, telegraf - gotty -- share tty as web [link](https://github.com/yudai/gotty/) - gowebsocket -- websocket client for go - django -- 数据model管理 - go-django-hashers -- 在go web中使用django用户管理系统 [link](github.com/meehow/go-django-hashers) ## 部署和停止服务 > 下载 release 并解压 ``` mkdir -p deploy; mv release*.tar.gz ./deploy/; cd ./deploy/; tar -xzvf release.*.tar.gz ``` > 部署服务 (下面以ubuntu/debian为例, 其他系统需要相应修改脚本) - 1. 初始化运行环境 ``` bash ./pkg_init.sh ``` - 2. 修改配置文件 ``` cp config/template_config.yaml config/config.yaml 把 config.yaml中的 ansible_host 改成你自己的内网地址。 ``` - 3. 初始化数据库 ``` bash ./server_init.sh 如果运行顺利需要设置初始的管理员账号密码. ... Running migrations: Applying redis_info.0001_initial... OK Applying redis_info.0002_auto_20200610_0221... OK Applying redis_info.0003_redisinfo_redis_master_ip... OK Applying redis_info.0004_auto_20200610_0232... OK Applying redis_info.0005_remove_redisinfo_redis_role... OK Applying redis_info.0006_auto_20200610_1358... OK Done. [localhost] local: cd common/py_app_models; python3 manage.py createsuperuser Username (leave blank to use 'root'): xxx Email address: xxx@xx.com Password: xxxxxxxx Password: xxxxxxxx Done. ``` - 4. 启动服务 ``` bash ./start.sh 如果一切顺利,访问 http://localhost/login.html , 输入前面设置的管理员账号密码就可以登录了。 ``` > 停止服务 ``` bash ./stop.sh ``` ## 开发 > web开发 ``` bash ./server_init.sh bash ./start_dev.sh go mod tidy go run . ```