All Projects → hequan2017 → Autoops

hequan2017 / Autoops

Licence: apache-2.0
linux资产管理,cmdb,django, webssh,运维管理平台,数据库操作平台 本项目已停止开发!因长时间未对代码进行维护,可能会造成项目在不同环境上无法部署、运行BUG等问题,请知晓!项目仅供参考!

Programming Languages

python
139335 projects - #7 most used programming language
shell
77523 projects
python3
1442 projects

Projects that are alternatives of or similar to Autoops

Opensa
资产管理、资产采集、灰度发布、反向代理、批量任务、任务编排、计划任务、日志审计、权限管理、角色管理、部门管理、运维自动化
Stars: ✭ 220 (-35.29%)
Mutual labels:  cmdb, django, celery, devops, ops, nginx
Chain
链喵 CMDB 本项目已停止开发!因长时间未对代码进行维护,可能会造成项目在不同环境上无法部署、运行BUG等问题,请知晓!项目仅供参考!
Stars: ✭ 240 (-29.41%)
Mutual labels:  cmdb, django, demo, celery, devops, ops
Opman Django
💯✅自动化运维平台:CMDB、CI/CD、DevOps、资产管理、任务编排、持续交付、系统监控、运维管理、配置管理
Stars: ✭ 539 (+58.53%)
Mutual labels:  cmdb, mysql, django, devops, uwsgi, nginx
Opendevops
CODO是一款为用户提供企业多混合云、一站式DevOps、自动化运维、完全开源的云管理平台、自动化运维平台
Stars: ✭ 2,990 (+779.41%)
Mutual labels:  cmdb, demo, devops, ops, tornado
Archer
基于inception的自动化SQL操作平台,支持SQL执行、LDAP认证、发邮件、OSC、SQL查询、SQL优化建议、权限管理等功能,支持docker镜像
Stars: ✭ 1,239 (+264.41%)
Mutual labels:  mysql, django, inception, devops
Baize
白泽自动化运维系统:配置管理、网络探测、资产管理、业务管理、CMDB、CD、DevOps、作业编排、任务编排等功能,未来将添加监控、报警、日志分析、大数据分析等部分内容
Stars: ✭ 296 (-12.94%)
Mutual labels:  cmdb, django, devops, ops
Dailyfresh
Django-天天生鲜电商学习项目
Stars: ✭ 127 (-62.65%)
Mutual labels:  mysql, django, celery, nginx
Adminset
自动化运维平台:CMDB、CD、DevOps、资产管理、任务编排、持续交付、系统监控、运维管理、配置管理
Stars: ✭ 2,985 (+777.94%)
Mutual labels:  cmdb, django, devops, ops
Incepiton Mysql
🍭A web platform designed for mysql inception
Stars: ✭ 90 (-73.53%)
Mutual labels:  mysql, inception, celery
See
基于开源组件(Inception & SQLAdvisor & SOAR)的SQL审核&SQL优化的Web平台
Stars: ✭ 1,187 (+249.12%)
Mutual labels:  mysql, django, inception
Pychat
webchat via WebSockets/WebRTC that allows messaging/video call/screen sharing
Stars: ✭ 152 (-55.29%)
Mutual labels:  mysql, django, tornado
Spug
开源运维平台:面向中小型企业设计的轻量级无Agent的自动化运维平台,整合了主机管理、主机批量执行、主机在线终端、文件在线上传下载、应用发布部署、在线任务计划、配置中心、监控、报警等一系列功能。
Stars: ✭ 6,810 (+1902.94%)
Mutual labels:  cmdb, devops, ops
Shorty
🔗 A URL shortening service built using Flask and MySQL
Stars: ✭ 78 (-77.06%)
Mutual labels:  mysql, uwsgi, nginx
Yasql
基于Python开发的MySQL WEB版本的工单审核执行和SQL查询平台
Stars: ✭ 463 (+36.18%)
Mutual labels:  mysql, django, devops
Ops
基于centos6+python3.6+django2+ansible2.4+celery4.2 运维管理系统,目前实现功能:用户和用户组管理、资产管理、集成ansible2.4、简易堡垒机(主机分配支持rdp以及vnc、用户分配、文件上传下载、配置禁用命令清单、操作录像回放功能)、CI/CD(支持git仓库和svn仓库)、数据库管理(一部分)、celery任务编排、知识库及文件共享
Stars: ✭ 502 (+47.65%)
Mutual labels:  cmdb, django, celery
Opscloud
运维管理平台(阿里云),自动同步阿里云配置信息,堡垒机(容器),批量运维,Kubernetes,Zabbix管理等功能
Stars: ✭ 788 (+131.76%)
Mutual labels:  cmdb, devops, ops
Gather Deployment
Gathers scalable tensorflow and infrastructure deployment
Stars: ✭ 326 (-4.12%)
Mutual labels:  inception, celery, nginx
Django Celery Docker Example
Example Docker setup for a Django app behind an Nginx proxy with Celery workers
Stars: ✭ 149 (-56.18%)
Mutual labels:  django, celery, nginx
Docker Django
A project to get you started with Docker and Django.
Stars: ✭ 170 (-50%)
Mutual labels:  django, uwsgi, nginx
Opsmanage
自动化运维平台: 代码及应用部署CI/CD、资产管理CMDB、计划任务管理平台、SQL审核|回滚、任务调度、站内WIKI
Stars: ✭ 2,849 (+737.94%)
Mutual labels:  cmdb, inception, celery

AutoOps

项目停止

本项目已停止开发!因长时间未对代码进行维护,可能会造成项目在不同环境上无法部署、运行BUG等问题,请知晓!项目仅供参考!

因本人工作原因,此项目以后不提供更新及维护,项目仅供参考。

介绍

AutoOps 是一款基于 2.0 版本django 开发的,主要面向linux运维工程师使用,管理linux资产信息,Mysql数据库,批量执行命令、脚本,获取流量图,web ssh管理,技术文档等功能。

欢迎大家测试使用,有问题可反馈。

Demo

  • 交流群号: 620176501 欢迎交流!
  • 博客: http://hequan.blog.51cto.com/
  • github: https://github.com/hequan2017/autoops/
  • 码云: https://gitee.com/hequan2020/autoops

架构图

DEMO

更新记录

  • 1.8 最后一次更新, 修改ansible api,以支持playbook,需要自己测试。

  • 1.7.8 更换后台为xadmin

    • 注意: xadmin暂时不支持 对象权限组件django-guardian,需要设置的时候,可以登陆dadmin(为默认admin)
    • 注意: xadmin 认不到 tasks任务的名字,需要的名字如下:
      • tasks.task.任务
      • tasks.task.monitor_job #定时获取CPU、内存 、流量
      • tasks.task.clean_history_host_monitor #清除1周前的主机性能历史记录数据
      • tasks.task.cmd_job #可定时执行命令,输入 host,命令 即可。
  • 1.7.7 更换webssh启动方式。

  • 1.7.6 代码库功能上线,带分发。

  • 1.7.4 更新ansible版本。 增强命令行 功能。具体方法参考ansible 模块。

  • 1.6 Mysql数据库操作: 自动审核 + 执行 (目前只适用于Mysql)

  • 1.4 更新django 为2.0

  • 1.3 新增 技术文档 板块。

  • 1.2 权限管理完善。 增加附件上传下载功能。

  • 1.1.5 新增 权限管理。 根据后台用户组,区分不同权限。如:在后台先建一个 测试机 组,把普通用户加入到此组。在前端添加资产时,在产品线中会出现测试机 。 测试机组下的用户 只管管理测试机产品线的资产。

  • 1.1 新增 平台登录记录、web登录记录、密码修改等功能。


功能

  • asset资产

    • api http://114.115.132.147:8003/asset/api/asset.html
    • 自动获取服务器信息
    • 全部导出
    • CPU 内存 流量图
  • names 用户(预留模块)

    • 加密解密 password_crypt.py ## 如果是自己的生产环境,建议更换里面的密钥。
  • tasks任务

    • 命令行
    • 工具
      • shell
      • python
  • webssh 登陆

  • library 技术文档 (真正运维人员的管理平台,自带技术文档,有问题不用再去别的地方找)

    • DjangoUeditor 富文本编辑器
  • 代码库

    • 代码库
    • 主机分发
  • 数据库自动审核-- 命令执行 回滚

    • Inception
  • 后台管理

    • admin
    • 根据后台用户组进行区分。admin有最高权限。
    • 例如:新建 运维组、开发组 , 新建 运维组 里面的 hequan 账号
    • 那么 hequan 只能看见 运维组下面的服务器、数据库,执行工具也只能选择 运维组的。 hequan 无法添加服务器、数据库。

环境

  • Python 3.6.4 #可以参考 script/install_python3.6.4.py

  • Django 2.0

  • Python 2.7 (用来启动 supervisor)

  • Centos 7.4

  • supervisor 管理无法

    • uwsgi web服务启动
    • webssh
    • celeryd 队列任务
    • celerybeat
    • celerycam
    • celeryflower
    • Inception mysql 数据库审核

安装

  • 开发环境部署:

  1. 下载,安装基本环境,安装目录为/opt下,如是其他目录,请修改supervisor.conf中的相应设置即可。

cd /opt
yum install git   sshpass    redis  -y 
systemctl enable redis.service 
systemctl start  redis.service 
git  clone  https://github.com/hequan2017/autoops.git
    
cd   autoops/
pip3 install -r requirements.txt       

cd /usr/local/src
wget https://codeload.github.com/sshwsfc/xadmin/zip/django2
unzip django2
cd xadmin-django2/
python setup.py  install

添加的资产里面, 建议执行 yum install ipmitool dmidecode -y以获取更多信息

  1. 安装 supervisor
chmod +x    /opt/autoops/script/inception/bin/*
pip2   install    supervisor          ## 没有pip2 版本的 ,可以参考 script/install_pip2.sh
echo_supervisord_conf    > /etc/supervisord.conf 
mkdir /etc/supervisord.d/
     
vim /etc/supervisord.conf      ##进行相关设置
         
[inet_http_server]             ##HTTP登录账号密码
port=0.0.0.0:9001 
username=user
password=321

[include]
files = /etc/supervisord.d/*.conf
cp   /opt/autoops/script/supervisor.conf               /etc/supervisord.d/        

环境设置

  • 数据库: 请修改 autops/settings文件, 如果没有mysql,请选择上面那种。如果有,则可以启用mysql,设置相关连接地址。 关于mysql安装方法,可参考我的博客 http://hequan.blog.51cto.com/5701886/1982428
DATABASES = {
     'default': {
        'ENGINE': 'django.db.backends.sqlite3',
         'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
     }
 }
 
 
DATABASES = {
       'default': {
           'ENGINE': 'django.db.backends.mysql',
           'NAME': 'autoops',
           'USER': 'root',
           'PASSWORD': '123456',
           'HOST': '192.168.10.24',
           'PORT': '3306',
        }
}
  • 修改 autoops/settings 自定义参数
DEBUG = True                            ## 实际生产环境使用,请关闭    False

BROKER_URL = 'redis://127.0.0.1:6379/0'                  ##Redis地址,一般情况不用修改


Webssh_ip = '114.115.132.147'      ##WebSSH 软件的 访问IP,也就是本机外网IP,改这个地方就好了。
Webssh_port='9000'             ##端口号,默认即可。如有修改,需要修改  webssh/main.py文件 define('port', default=9000, help='listen port', type=int)

Inception_ip = '127.0.0.1'         ## 此为 Inception 软件地址,  默认为本机地址,一般不用修改
Inception_port = '6669'            ## 此为 Inception 软件端口号


inception_remote_system_password='654321'    ## 设置回滚备份(mysql)服务器相关参数,并同步修改一下 script/inc.cnf 里面的设置
inception_remote_system_user='root'
inception_remote_backup_port='3306'
inception_remote_backup_host='192.168.10.100'   ##设置备份数据库地址
  • 修改一个文件 /usr/local/lib/python3.6/site-packages/django/db/backends/mysql/base.py 注释35 36 以下两行,找不到可以忽略。
if version < (1, 3, 3):
    raise ImproperlyConfigured("mysqlclient 1.3.3 or newer is required; you have %s" % Database.__version__)
  • 由于Inception 并不原生支持pymysql,所以需更改pymysql相关源码。

在script/ 文件夹下有已经修改的connections.py 和 cursors.py 直接替换即可。
替换位置为 /usr/local/lib/python3.6/site-packages/pymysql 下的 connections.py 和 cursors.py 两个文件 注: 如果想知道,修改了哪里,可参考script/备注。

cp /opt/autoops/script/connections.py   /usr/local/lib/python3.6/site-packages/pymysql/connections.py
cp /opt/autoops/script/cursors.py    /usr/local/lib/python3.6/site-packages/pymysql/cursors.py 
  • 初始化数据库(可删除文件夹的 db.sqlite3)
python manage.py makemigrations
python manage.py  migrate
python manage.py  createsuperuser             ##创建管理员
  • autoops 登陆的端口号 在 supervisor.conf 里面 第2行 ,默认是 0.0.0.0:8003 。如有修改端口号,请把supervisor 里的uwsgi 服务关闭,再启动。

  • 启动supervisor进程管理

/usr/bin/python2.7   /usr/bin/supervisord -c /etc/supervisord.conf

加到linux 开机启动里面 chmod +x /etc/rc.d/rc.local 把上面的命令放到这个文件里面

  • 启动: 统一用supervisor 管理进程, 打开 0.0.0.0:9001 账号user 密码321 进入进程管理界面,管理uwsgi,webssh,celery,Inception 等启动关闭。 DEMO

  • 登陆后台,设置定时获取主机图,设置数据中心、用户组。

  • 设置定时获取主机信息任务。 先创建执行的时间频率,再创建任务,创建后,观察队列任务是否执行成功。 如不成功,重启所有supervisor中的 celery服务。 DEMO


开发设置

  • 如果想在windows 下的 pycharm打开, 先pip 安装好模块,ansbile无法装在windows上,忽略掉。然后注释下面的代码。 注释xadmin
asset/views.py
from   tasks.ansible_2420.runner import AdHocRunner, CommandRunner
from  tasks.ansible_2420.inventory import BaseInventory

tasks/views.py   
from   tasks.ansible_2420.runner import AdHocRunner, CommandRunner
from  tasks.ansible_2420.inventory import BaseInventory

release/views.py
from   tasks.ansible_2420.runner import AdHocRunner
from  tasks.ansible_2420.inventory import BaseInventory

生产环境

  • 如果想在生产环境部署、启动, 用nginx去处理。 可以参考 http://hequan.blog.51cto.com/5701886/1982769 , 请把supervisor.conf 中 关于uwsgi的部分删除掉, 用以下方式控制UWSGI的启动 关闭.
uwsgi  --ini    /opt/autoops/script/uwsgi.ini     # 启动uwsgi配置  也可以把这个命令写到开机的文件里面
uwsgi  --stop   /opt/autoops/script/uwsgi.pid    # 关闭uwsgi
uwsgi  --reload  /opt/autoops/script/uwsgi.pid   #重新加载
  • nginx 配置文件修改如下。 此方法也要启动 uwsgi。
root         /opt/autoops;
   
   
    location / {
        include uwsgi_params;
        uwsgi_connect_timeout 30;
        uwsgi_pass unix:/opt/autoops/script/uwsgi.sock;
        
    }
    
    location /static/   {
            alias  /opt/autoops/static/;
            index  index.html index.htm;
    }     

截图

DEMO DEMO DEMO DEMO DEMO DEMO


贡献者

1.0

  • 何全
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].